UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

51 lines (50 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadScript = loadScript; exports.loadCSS = loadCSS; const env_1 = require("../env"); const types_1 = require("../types"); /** * opt.async defaults to `true`. * No other options are set by default. */ async function loadScript(src, opt) { if ((0, env_1.isServerSide)()) return; return await new Promise((resolve, reject) => { const s = (0, types_1._objectAssign)(document.createElement('script'), { src, async: true, ...opt, onload: resolve, onerror: (_event, _source, _lineno, _colno, err) => { reject(err || new Error(`loadScript failed: ${src}`)); }, }); document.head.append(s); }); } /** * Default options: * rel: 'stylesheet' * * No other options are set by default. */ async function loadCSS(href, opt) { if ((0, env_1.isServerSide)()) return; return await new Promise((resolve, reject) => { const link = (0, types_1._objectAssign)(document.createElement('link'), { href, rel: 'stylesheet', // type seems to be unnecessary: https://stackoverflow.com/a/5409146/4919972 // type: 'text/css', ...opt, onload: resolve, onerror: (_event, _source, _lineno, _colno, err) => { reject(err || new Error(`loadCSS failed: ${href}`)); }, }); document.head.append(link); }); }