|
4 | 4 | * Licensed under the MIT License. See License.txt in the project root for license information. |
5 | 5 | *--------------------------------------------------------------------------------------------*/ |
6 | 6 | Object.defineProperty(exports, "__esModule", { value: true }); |
7 | | -exports.packageMarketplaceWebExtensionsStream = exports.packageMarketplaceExtensionsStream = exports.packageLocalWebExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0; |
| 7 | +exports.scanBuiltinExtensions = exports.packageMarketplaceWebExtensionsStream = exports.packageMarketplaceExtensionsStream = exports.packageLocalWebExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0; |
8 | 8 | const es = require("event-stream"); |
9 | 9 | const fs = require("fs"); |
10 | 10 | const glob = require("glob"); |
@@ -261,3 +261,27 @@ function packageMarketplaceWebExtensionsStream(builtInExtensions) { |
261 | 261 | return es.merge(extensions); |
262 | 262 | } |
263 | 263 | exports.packageMarketplaceWebExtensionsStream = packageMarketplaceWebExtensionsStream; |
| 264 | +function scanBuiltinExtensions(extensionsRoot, forWeb) { |
| 265 | + const scannedExtensions = []; |
| 266 | + const extensionsFolders = fs.readdirSync(extensionsRoot); |
| 267 | + for (const extensionFolder of extensionsFolders) { |
| 268 | + const packageJSON = JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, 'package.json')).toString('utf8')); |
| 269 | + const extensionKind = packageJSON['extensionKind'] || []; |
| 270 | + if (forWeb && extensionKind.indexOf('web') === -1) { |
| 271 | + continue; |
| 272 | + } |
| 273 | + const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder)); |
| 274 | + const packageNLS = children.filter(child => child === 'package.nls.json')[0]; |
| 275 | + const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0]; |
| 276 | + const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0]; |
| 277 | + scannedExtensions.push({ |
| 278 | + extensionPath: extensionFolder, |
| 279 | + packageJSON: packageJSON, |
| 280 | + packagsNLSPath: packageNLS ? path.join(extensionFolder, packageNLS) : undefined, |
| 281 | + readmePath: readme ? path.join(extensionFolder, readme) : undefined, |
| 282 | + changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined, |
| 283 | + }); |
| 284 | + } |
| 285 | + return scannedExtensions; |
| 286 | +} |
| 287 | +exports.scanBuiltinExtensions = scanBuiltinExtensions; |
0 commit comments