seralization class for resolver cache
This commit is contained in:
parent
d834475d33
commit
cb543a444c
|
@ -6,6 +6,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const LazySet = require("../util/LazySet");
|
const LazySet = require("../util/LazySet");
|
||||||
|
const makeSerializable = require("../util/makeSerializable");
|
||||||
|
|
||||||
/** @typedef {import("enhanced-resolve/lib/Resolver")} Resolver */
|
/** @typedef {import("enhanced-resolve/lib/Resolver")} Resolver */
|
||||||
/** @typedef {import("../Compiler")} Compiler */
|
/** @typedef {import("../Compiler")} Compiler */
|
||||||
|
@ -13,14 +14,39 @@ const LazySet = require("../util/LazySet");
|
||||||
/** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */
|
/** @typedef {import("../FileSystemInfo").Snapshot} Snapshot */
|
||||||
/** @template T @typedef {import("../util/LazySet")<T>} LazySet<T> */
|
/** @template T @typedef {import("../util/LazySet")<T>} LazySet<T> */
|
||||||
|
|
||||||
/**
|
class CacheEntry {
|
||||||
* @typedef {Object} CacheEntry
|
constructor(
|
||||||
* @property {Object} result
|
result,
|
||||||
* @property {LazySet<string>} fileDependencies
|
fileDependencies,
|
||||||
* @property {LazySet<string>} contextDependencies
|
contextDependencies,
|
||||||
* @property {LazySet<string>} missingDependencies
|
missingDependencies,
|
||||||
* @property {Snapshot} snapshot
|
snapshot
|
||||||
*/
|
) {
|
||||||
|
this.result = result;
|
||||||
|
this.fileDependencies = fileDependencies;
|
||||||
|
this.contextDependencies = contextDependencies;
|
||||||
|
this.missingDependencies = missingDependencies;
|
||||||
|
this.snapshot = snapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
serialize({ write }) {
|
||||||
|
write(this.result);
|
||||||
|
write(this.fileDependencies);
|
||||||
|
write(this.contextDependencies);
|
||||||
|
write(this.missingDependencies);
|
||||||
|
write(this.snapshot);
|
||||||
|
}
|
||||||
|
|
||||||
|
deserialize({ read }) {
|
||||||
|
this.result = read();
|
||||||
|
this.fileDependencies = read();
|
||||||
|
this.contextDependencies = read();
|
||||||
|
this.missingDependencies = read();
|
||||||
|
this.snapshot = read();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
makeSerializable(CacheEntry, "webpack/lib/cache/ResolverCachePlugin");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @template T
|
* @template T
|
||||||
|
@ -146,13 +172,13 @@ class ResolverCachePlugin {
|
||||||
cache.store(
|
cache.store(
|
||||||
identifier,
|
identifier,
|
||||||
null,
|
null,
|
||||||
/** @type {CacheEntry} */ {
|
new CacheEntry(
|
||||||
result,
|
result,
|
||||||
fileDependencies: newResolveContext.fileDependencies,
|
newResolveContext.fileDependencies,
|
||||||
contextDependencies: newResolveContext.contextDependencies,
|
newResolveContext.contextDependencies,
|
||||||
missingDependencies: newResolveContext.missingDependencies,
|
newResolveContext.missingDependencies,
|
||||||
snapshot
|
snapshot
|
||||||
},
|
),
|
||||||
storeErr => {
|
storeErr => {
|
||||||
if (storeErr) return callback(storeErr);
|
if (storeErr) return callback(storeErr);
|
||||||
if (result) return callback(null, result);
|
if (result) return callback(null, result);
|
||||||
|
|
|
@ -16,6 +16,7 @@ module.exports = {
|
||||||
ContextModule: () => require("../ContextModule"),
|
ContextModule: () => require("../ContextModule"),
|
||||||
"cache/PackFileCacheStrategy": () =>
|
"cache/PackFileCacheStrategy": () =>
|
||||||
require("../cache/PackFileCacheStrategy"),
|
require("../cache/PackFileCacheStrategy"),
|
||||||
|
"cache/ResolverCachePlugin": () => require("../cache/ResolverCachePlugin"),
|
||||||
"dependencies/AMDDefineDependency": () =>
|
"dependencies/AMDDefineDependency": () =>
|
||||||
require("../dependencies/AMDDefineDependency"),
|
require("../dependencies/AMDDefineDependency"),
|
||||||
"dependencies/AMDRequireArrayDependency": () =>
|
"dependencies/AMDRequireArrayDependency": () =>
|
||||||
|
|
Loading…
Reference in New Issue