UNPKG

@lion/ui

Version:

A package of extendable web components

62 lines (56 loc) 1.37 kB
/** * @type {Object.<String, Object>} */ let fakeImports = {}; /** * @param {string} path * @param {Object} data */ export function setupFakeImport(path, data) { const fakeExports = { ...data }; Object.defineProperty(fakeExports, '__esModule', { value: true }); fakeImports[path] = fakeExports; } /** * @param {string[]} namespaces * @param {string[]} locales */ export function setupEmptyFakeImportsFor(namespaces, locales) { namespaces.forEach(namespace => { locales.forEach(locale => { setupFakeImport(`./${namespace}/${locale}.js`, { default: { foo: `bar-${locale}` }, }); }); }); } export function resetFakeImport() { fakeImports = {}; } /** * @param {Object} result * @param {Function} resolve * @param {Function} reject */ function resolveOrReject(result, resolve, reject) { if (result) { resolve(result); } else { reject(); } } /** * @param {string} path * @param {number} [ms=0] * @returns {Promise.<Object>} */ export async function fakeImport(path, ms = 0) { const result = fakeImports[path]; if (ms > 0) { return new Promise((resolve, reject) => { setTimeout(() => resolveOrReject(result, resolve, reject), ms); }); } // eslint-disable-next-line no-promise-executor-return return new Promise((resolve, reject) => resolveOrReject(result, resolve, reject)); }