Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/@surma
/rollup-plugin-off-main-thread
/loader.ejs
| /** | |
| * Copyright 2018 Google Inc. All Rights Reserved. | |
| * 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. | |
| */ | |
| // If the loader is already loaded, just stop. | |
| if (!self.<%- amdFunctionName %>) { | |
| let registry = {}; | |
| // Used for `eval` and `importScripts` where we can't get script URL by other means. | |
| // In both cases, it's safe to use a global var because those functions are synchronous. | |
| let nextDefineUri; | |
| const singleRequire = (uri, parentUri) => { | |
| uri = new URL(uri + ".js", parentUri).href; | |
| return registry[uri] || ( | |
| <% if (useEval) { %> | |
| fetch(uri) | |
| .then(resp => resp.text()) | |
| .then(code => { | |
| nextDefineUri = uri; | |
| eval(code); | |
| }) | |
| <% } else { %> | |
| new Promise(resolve => { | |
| if ("document" in self) { | |
| const script = document.createElement("script"); | |
| script.src = uri; | |
| script.onload = resolve; | |
| document.head.appendChild(script); | |
| } else { | |
| nextDefineUri = uri; | |
| importScripts(uri); | |
| resolve(); | |
| } | |
| }) | |
| <% } %> | |
| .then(() => { | |
| let promise = registry[uri]; | |
| if (!promise) { | |
| throw new Error(`Module ${uri} didn’t register its module`); | |
| } | |
| return promise; | |
| }) | |
| ); | |
| }; | |
| self.<%- amdFunctionName %> = (depsNames, factory) => { | |
| const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href; | |
| if (registry[uri]) { | |
| // Module is already loading or loaded. | |
| return; | |
| } | |
| let exports = {}; | |
| const require = depUri => singleRequire(depUri, uri); | |
| const specialDeps = { | |
| module: { uri }, | |
| exports, | |
| require | |
| }; | |
| registry[uri] = Promise.all(depsNames.map( | |
| depName => specialDeps[depName] || require(depName) | |
| )).then(deps => { | |
| factory(...deps); | |
| return exports; | |
| }); | |
| }; | |
| } | |