forked from mozilla/pdf.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
systemjs.config.js
95 lines (89 loc) · 3.13 KB
/
systemjs.config.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
89
90
91
92
93
94
95
/* Copyright 2017 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
"use strict";
(function() {
var baseLocation;
if (typeof document !== "undefined") {
baseLocation = new URL("./", document.currentScript.src);
} else if (typeof location !== "undefined") {
// Probably worker -- walking subfolders until we will reach root.
baseLocation = location;
while (baseLocation.href.includes("/src/")) {
baseLocation = new URL("..", baseLocation);
}
} else {
throw new Error("Cannot configure SystemJS");
}
var PluginBabelPath = "node_modules/systemjs-plugin-babel/plugin-babel.js";
var SystemJSPluginBabelPath =
"node_modules/systemjs-plugin-babel/systemjs-babel-browser.js";
var PluginBabelCachePath = "external/systemjs/plugin-babel-cached.js";
var isCachingPossible =
typeof indexedDB !== "undefined" &&
typeof TextEncoder !== "undefined" &&
typeof crypto !== "undefined" &&
typeof crypto.subtle !== "undefined";
// When we create a bundle, webpack is run on the source and it will replace
// require with __webpack_require__. When we want to use the real require,
// __non_webpack_require__ has to be used.
// In this target, we don't create a bundle, so we have to replace the
// occurences of __non_webpack_require__ ourselves.
function babelPluginReplaceNonWebPackRequire(babel) {
return {
visitor: {
Identifier(path, state) {
if (path.node.name === "__non_webpack_require__") {
path.replaceWith(babel.types.identifier("require"));
}
},
},
};
}
SystemJS.config({
packages: {
"": {
defaultExtension: "js",
},
},
paths: {
pdfjs: new URL("src", baseLocation).href,
"pdfjs-web": new URL("web", baseLocation).href,
"pdfjs-test": new URL("test", baseLocation).href,
"pdfjs-lib": new URL("src/pdf", baseLocation).href,
"core-js": new URL("node_modules/core-js", baseLocation).href,
"web-streams-polyfill": new URL(
"node_modules/web-streams-polyfill",
baseLocation
).href,
},
meta: {
"*": {
scriptLoad: false,
esModule: true,
babelOptions: {
env: false,
plugins: [babelPluginReplaceNonWebPackRequire],
},
},
},
map: {
"plugin-babel": new URL(PluginBabelPath, baseLocation).href,
"systemjs-babel-build": new URL(SystemJSPluginBabelPath, baseLocation)
.href,
"plugin-babel-cached": new URL(PluginBabelCachePath, baseLocation).href,
},
transpiler: isCachingPossible ? "plugin-babel-cached" : "plugin-babel",
});
})();