Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/build/azure-pipelines/distro/mixin-quality.js
3520 views
1
"use strict";
2
var __importDefault = (this && this.__importDefault) || function (mod) {
3
return (mod && mod.__esModule) ? mod : { "default": mod };
4
};
5
Object.defineProperty(exports, "__esModule", { value: true });
6
/*---------------------------------------------------------------------------------------------
7
* Copyright (c) Microsoft Corporation. All rights reserved.
8
* Licensed under the MIT License. See License.txt in the project root for license information.
9
*--------------------------------------------------------------------------------------------*/
10
const fs_1 = __importDefault(require("fs"));
11
const path_1 = __importDefault(require("path"));
12
function log(...args) {
13
console.log(`[${new Date().toLocaleTimeString('en', { hour12: false })}]`, '[distro]', ...args);
14
}
15
function main() {
16
const quality = process.env['VSCODE_QUALITY'];
17
if (!quality) {
18
throw new Error('Missing VSCODE_QUALITY, skipping mixin');
19
}
20
log(`Mixing in distro quality...`);
21
const basePath = `.build/distro/mixin/${quality}`;
22
for (const name of fs_1.default.readdirSync(basePath)) {
23
const distroPath = path_1.default.join(basePath, name);
24
const ossPath = path_1.default.relative(basePath, distroPath);
25
if (ossPath === 'product.json') {
26
const distro = JSON.parse(fs_1.default.readFileSync(distroPath, 'utf8'));
27
const oss = JSON.parse(fs_1.default.readFileSync(ossPath, 'utf8'));
28
let builtInExtensions = oss.builtInExtensions;
29
if (Array.isArray(distro.builtInExtensions)) {
30
log('Overwriting built-in extensions:', distro.builtInExtensions.map(e => e.name));
31
builtInExtensions = distro.builtInExtensions;
32
}
33
else if (distro.builtInExtensions) {
34
const include = distro.builtInExtensions['include'] ?? [];
35
const exclude = distro.builtInExtensions['exclude'] ?? [];
36
log('OSS built-in extensions:', builtInExtensions.map(e => e.name));
37
log('Including built-in extensions:', include.map(e => e.name));
38
log('Excluding built-in extensions:', exclude);
39
builtInExtensions = builtInExtensions.filter(ext => !include.find(e => e.name === ext.name) && !exclude.find(name => name === ext.name));
40
builtInExtensions = [...builtInExtensions, ...include];
41
log('Final built-in extensions:', builtInExtensions.map(e => e.name));
42
}
43
else {
44
log('Inheriting OSS built-in extensions', builtInExtensions.map(e => e.name));
45
}
46
const result = { webBuiltInExtensions: oss.webBuiltInExtensions, ...distro, builtInExtensions };
47
fs_1.default.writeFileSync(ossPath, JSON.stringify(result, null, '\t'), 'utf8');
48
}
49
else {
50
fs_1.default.cpSync(distroPath, ossPath, { force: true, recursive: true });
51
}
52
log(distroPath, '✔︎');
53
}
54
}
55
main();
56
//# sourceMappingURL=mixin-quality.js.map
57