123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- "use strict";
- const makeSerializable = require("../util/makeSerializable");
- const NullDependency = require("./NullDependency");
- const getExportsFromData = data => {
- if (data && typeof data === "object") {
- if (Array.isArray(data)) {
- return data.length < 100
- ? data.map((item, idx) => {
- return {
- name: `${idx}`,
- canMangle: true,
- exports: getExportsFromData(item)
- };
- })
- : undefined;
- } else {
- const exports = [];
- for (const key of Object.keys(data)) {
- exports.push({
- name: key,
- canMangle: true,
- exports: getExportsFromData(data[key])
- });
- }
- return exports;
- }
- }
- return undefined;
- };
- class JsonExportsDependency extends NullDependency {
-
- constructor(data) {
- super();
- this.data = data;
- }
- get type() {
- return "json exports";
- }
-
- getExports(moduleGraph) {
- return {
- exports: getExportsFromData(this.data && this.data.get()),
- dependencies: undefined
- };
- }
-
- updateHash(hash, context) {
- this.data.updateHash(hash);
- }
-
- serialize(context) {
- const { write } = context;
- write(this.data);
- super.serialize(context);
- }
-
- deserialize(context) {
- const { read } = context;
- this.data = read();
- super.deserialize(context);
- }
- }
- makeSerializable(
- JsonExportsDependency,
- "webpack/lib/dependencies/JsonExportsDependency"
- );
- module.exports = JsonExportsDependency;
|