DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
1.4 kB
'use strict';
const { absoluteURL, entries, isArray, isCSS, js_modules } = require('../utils.js');
const { base } = require('../interpreter/_utils.js');
const has = (modules, name) => modules.has(name);
const ownKeys = modules => [...modules.keys()];
const proxy = (modules, window, sync, baseURL) => new Proxy(modules, {
has,
ownKeys,
get: (modules, name) => {
let value = modules.get(name);
if (isArray(value)) {
let sources = value;
value = null;
for (let source of sources) {
source = absoluteURL(source, baseURL);
if (isCSS(source)) sync.importCSS(source);
else {
sync.importJS(source, name);
value = window[js_modules].get(name);
}
}
modules.set(name, value);
}
return value;
},
});
module.exports = (window, sync, mainModules) => {
let modules = globalThis[js_modules], baseURL = '';
if (mainModules) {
baseURL = base.get(mainModules);
for (let [source, module] of entries(mainModules)) {
let value = modules.get(module);
if (!value || isArray(value)) {
modules.set(module, value || (value = []));
value.push(source);
}
}
}
return proxy(modules, window, sync, baseURL);
};