97 строки
3.2 KiB
JavaScript
97 строки
3.2 KiB
JavaScript
/* 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.
|
|
*/
|
|
/* eslint-disable no-var */
|
|
|
|
"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
|
|
// occurrences 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",
|
|
});
|
|
})();
|