![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/webpack/lib/ |
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const { ConcatSource, RawSource } = require("webpack-sources"); const stringifySafe = data => { const stringified = JSON.stringify(data); if (!stringified) { return undefined; // Invalid JSON } return stringified.replace(/\u2028|\u2029/g, str => str === "\u2029" ? "\\u2029" : "\\u2028" ); // invalid in JavaScript but valid JSON }; class JsonGenerator { generate(module, dependencyTemplates, runtimeTemplate) { const source = new ConcatSource(); const data = module.buildInfo.jsonData; if (data === undefined) { return new RawSource( runtimeTemplate.missingModuleStatement({ request: module.rawRequest }) ); } let finalJson; if ( Array.isArray(module.buildMeta.providedExports) && !module.isUsed("default") ) { // Only some exports are used: We can optimize here, by only generating a part of the JSON const reducedJson = {}; for (const exportName of module.buildMeta.providedExports) { if (exportName === "default") continue; const used = module.isUsed(exportName); if (used) { reducedJson[used] = data[exportName]; } } finalJson = reducedJson; } else { finalJson = data; } // Use JSON because JSON.parse() is much faster than JavaScript evaluation const jsonSource = JSON.stringify(stringifySafe(finalJson)); const jsonExpr = `JSON.parse(${jsonSource})`; source.add(`${module.moduleArgument}.exports = ${jsonExpr};`); return source; } } module.exports = JsonGenerator;