/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloadExplorerAppx = downloadExplorerAppx; const fs = require("fs"); const debug = require("debug"); const extract = require("extract-zip"); const path = require("path"); const get_1 = require("@electron/get"); const root = path.dirname(path.dirname(__dirname)); const d = debug('explorer-appx-fetcher'); async function downloadExplorerAppx(outDir, quality = 'stable', targetArch = 'x64') { const fileNamePrefix = quality === 'insider' ? 'code_insiders' : 'code'; const fileName = `${fileNamePrefix}_explorer_${targetArch}.zip`; if (await fs.existsSync(path.resolve(outDir, 'resources.pri'))) { return; } if (!await fs.existsSync(outDir)) { await fs.mkdirSync(outDir, { recursive: true }); } d(`downloading ${fileName}`); const artifact = await (0, get_1.downloadArtifact)({ isGeneric: true, version: '3.0.4', artifactName: fileName, unsafelyDisableChecksums: true, mirrorOptions: { mirror: 'https://github.com/microsoft/vscode-explorer-command/releases/download/', customDir: '3.0.4', customFilename: fileName } }); d(`unpacking from ${fileName}`); await extract(artifact, { dir: fs.realpathSync(outDir) }); } async function main(outputDir) { const arch = process.env['VSCODE_ARCH']; if (!outputDir) { throw new Error('Required build env not set'); } const product = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8')); await downloadExplorerAppx(outputDir, product.quality, arch); } if (require.main === module) { main(process.argv[2]).catch(err => { console.error(err); process.exit(1); }); } //# sourceMappingURL=explorer-appx-fetcher.js.map