jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
28 lines • 935 B
JavaScript
import { getNpmCDNRegistry } from '../registry';
import { globalThisPolyfill } from 'jjb-lc-designable/shared';
export const loadScript = async props => {
const options = {
base: getNpmCDNRegistry(),
...props
};
if (globalThisPolyfill[props.root]) return globalThisPolyfill[options.root];
const path = `${options.base}/${options.package}/${options.entry}`;
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.async = false;
script.src = path;
script.onload = () => {
const module = globalThisPolyfill[options.root];
globalThisPolyfill['define'] = define;
resolve(module);
script.remove();
};
script.onerror = err => {
reject(err);
};
const define = globalThisPolyfill['define'];
globalThisPolyfill['define'] = undefined;
document.body.appendChild(script);
});
};