UNPKG

@naturalcycles/js-lib

Version:

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

47 lines (46 loc) 1.4 kB
import { isServerSide } from '../env.js'; import { _objectAssign } from '../types.js'; /** * opt.async defaults to `true`. * No other options are set by default. */ export async function loadScript(src, opt) { if (isServerSide()) return; return await new Promise((resolve, reject) => { const s = _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. */ export async function loadCSS(href, opt) { if (isServerSide()) return; return await new Promise((resolve, reject) => { const link = _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); }); }