kimi-code / apps /vscode /scripts /vsix-publish.mjs
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
6a2bc3b verified
Raw History Blame Contribute Delete
1.41 kB
#!/usr/bin/env node
import { existsSync } from 'node:fs';
import { runLocalCli } from './local-cli.mjs';
import { parsePublishArguments, publishUsage } from './publish-args.mjs';
import { extensionRoot, isMainModule } from './vsix-targets.mjs';
import { verifyVsix } from './vsix-verify.mjs';
async function main() {
const options = parsePublishArguments(process.argv.slice(2));
if (options.help) {
console.log(publishUsage('Visual Studio Marketplace'));
return;
}
if (!process.env.VSCE_PAT) throw new Error('VSCE_PAT is required to publish.');
await verifyInputs(options);
for (const file of options.files) {
console.log(`Publishing verified package ${file}...`);
runLocalCli(
'@vscode/vsce',
'vsce',
['publish', '--packagePath', file, '--skip-duplicate'],
{ cwd: extensionRoot },
);
}
}
async function verifyInputs(options) {
for (let index = 0; index < options.targets.length; index += 1) {
const file = options.files[index];
if (!existsSync(file)) {
throw new Error(`Missing VSIX ${file}. Run pnpm run package:platform first.`);
}
await verifyVsix(file, options.targets[index], { sourceRoot: extensionRoot });
}
}
if (isMainModule(import.meta.url)) {
main().catch((error) => {
console.error(`Marketplace publish failed: ${error instanceof Error ? error.message : String(error)}`);
process.exitCode = 1;
});
}