-
-
Notifications
You must be signed in to change notification settings - Fork 384
/
Copy pathCssDependency.js
88 lines (74 loc) · 1.92 KB
/
CssDependency.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import webpack from 'webpack';
class CssDependency extends webpack.Dependency {
constructor(
{ identifier, content, media, sourceMap },
context,
identifierIndex
) {
super();
this.identifier = identifier;
this.identifierIndex = identifierIndex;
this.content = content;
this.media = media;
this.sourceMap = sourceMap;
this.context = context;
// eslint-disable-next-line no-undefined
this.assets = undefined;
// eslint-disable-next-line no-undefined
this.assetsInfo = undefined;
}
getResourceIdentifier() {
return `css-module-${this.identifier}-${this.identifierIndex}`;
}
// eslint-disable-next-line class-methods-use-this
getModuleEvaluationSideEffectsState() {
return webpack.ModuleGraphConnection.TRANSITIVE_ONLY;
}
serialize(context) {
const { write } = context;
write(this.identifier);
write(this.content);
write(this.media);
write(this.sourceMap);
write(this.context);
write(this.identifierIndex);
write(this.assets);
write(this.assetsInfo);
super.serialize(context);
}
deserialize(context) {
super.deserialize(context);
}
}
if (webpack.util && webpack.util.serialization) {
webpack.util.serialization.register(
CssDependency,
'mini-css-extract-plugin/dist/CssDependency',
null,
{
serialize(instance, context) {
instance.serialize(context);
},
deserialize(context) {
const { read } = context;
const dep = new CssDependency(
{
identifier: read(),
content: read(),
media: read(),
sourceMap: read(),
},
read(),
read()
);
const assets = read();
const assetsInfo = read();
dep.assets = assets;
dep.assetsInfo = assetsInfo;
dep.deserialize(context);
return dep;
},
}
);
}
export default CssDependency;