mirror of
https://github.com/Microsoft/vscode
synced 2024-10-05 19:02:54 +00:00
35 lines
1 KiB
JavaScript
35 lines
1 KiB
JavaScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
// @ts-check
|
|
|
|
const webpack = require('webpack');
|
|
const { Mangler } = require('../build/lib/mangleTypeScript');
|
|
|
|
let map;
|
|
/**
|
|
* @param {string} projectPath
|
|
*/
|
|
function getMangledFileContents(projectPath) {
|
|
if (!map) {
|
|
const ts2tsMangler = new Mangler(projectPath, console.log);
|
|
map = ts2tsMangler.computeNewFileContents();
|
|
}
|
|
|
|
return map;
|
|
}
|
|
|
|
/**
|
|
* @type {webpack.LoaderDefinitionFunction}
|
|
*/
|
|
module.exports = async function (source, sourceMap, meta) {
|
|
const options = this.getOptions();
|
|
const callback = this.async();
|
|
|
|
const fileContentsMap = getMangledFileContents(options.configFile);
|
|
|
|
const newContents = fileContentsMap.get(this.resourcePath);
|
|
callback(null, newContents ?? source, sourceMap, meta);
|
|
};
|