summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack/lib/JsonGenerator.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/webpack/lib/JsonGenerator.js')
-rw-r--r--node_modules/webpack/lib/JsonGenerator.js57
1 files changed, 0 insertions, 57 deletions
diff --git a/node_modules/webpack/lib/JsonGenerator.js b/node_modules/webpack/lib/JsonGenerator.js
deleted file mode 100644
index bac87c4..0000000
--- a/node_modules/webpack/lib/JsonGenerator.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- 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;