Skip to content

Conversation

@felipecrs
Copy link
Contributor

@felipecrs felipecrs commented Oct 4, 2025

I tried integrating the API in semantic-release-vsce but found that the Options interfaces are too restrictive.

They don't allow things like:

import { createVSIX, IPackageOptions } from './src/api';

const options: IPackageOptions = {}

if (process.env.SOMETHING === 'false') {
  options.gitTagVersion = true;
}

await createVSIX(options);

Which fails with:

Cannot assign to gitTagVersion because it is a read-only property.

So, after thinking about it, I believe the best solution is to remove the readonly modifier from all properties of Options interfaces. I don't think they serve any purpose, except making the API harder to use in real-world scenarios.

What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant