in src/package.ts [1023:1054]
function deduceExtensionKinds(manifest: Manifest): ExtensionKind[] {
// Not an UI extension if it has main
if (manifest.main) {
if (manifest.browser) {
return ['workspace', 'web'];
}
return ['workspace'];
}
if (manifest.browser) {
return ['web'];
}
let result: ExtensionKind[] = ['ui', 'workspace', 'web'];
const isNonEmptyArray = (obj: any) => Array.isArray(obj) && obj.length > 0;
// Extension pack defaults to workspace,web extensionKind
if (isNonEmptyArray(manifest.extensionPack) || isNonEmptyArray(manifest.extensionDependencies)) {
result = ['workspace', 'web'];
}
if (manifest.contributes) {
for (const contribution of Object.keys(manifest.contributes)) {
const supportedExtensionKinds = extensionPointExtensionKindsMap.get(contribution);
if (supportedExtensionKinds) {
result = result.filter(extensionKind => supportedExtensionKinds.indexOf(extensionKind) !== -1);
}
}
}
return result;
}