UNPKG

1.08 kBJavaScriptView Raw
1const ModuleDependency = require('webpack/lib/dependencies/ModuleDependency');
2
3class GoogDependency extends ModuleDependency {
4 constructor(request, insertPosition, isBase = false, isRequireType = false) {
5 super(request);
6 this.insertPosition = insertPosition;
7 this.isBase = isBase;
8 this.isRequireType = isRequireType;
9 }
10
11 get type() {
12 return 'goog.require or goog.module.get';
13 }
14
15 updateHash(hash) {
16 hash.update(this.insertPosition + '');
17 hash.update(this.isBase + '');
18 hash.update(this.isRequireType + '');
19 }
20}
21
22class GoogDependencyTemplate {
23 apply(dep, source) {
24 if (dep.insertPosition === null) {
25 return;
26 }
27
28 // goog.requireType is an implicit dependency and shouldn't be loaded
29 if (dep.isRequireType) {
30 return;
31 }
32
33 let content = `__webpack_require__(${JSON.stringify(dep.module.id)});\n`;
34 if (dep.isBase) {
35 content = `var goog = ${content}`;
36 }
37 source.insert(dep.insertPosition, content);
38 }
39}
40
41module.exports = GoogDependency;
42module.exports.Template = GoogDependencyTemplate;