UNPKG

oc-template-react

Version:
33 lines (32 loc) 1.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const vm_1 = __importDefault(require("vm")); const getJsFromUrl = ({ model, url, key, componentKey, globals, timeout = 5000, extractor, }) => async () => { const controller = new AbortController(); const signal = controller.signal; setTimeout(() => controller.abort(), timeout); let jsAsText; try { const response = await fetch(url, { signal }); jsAsText = await response.text(); } catch (err) { throw { status: err, response: { error: `request ${url} failed`, }, }; } const context = Object.assign({}, globals); vm_1.default.runInNewContext(` ${jsAsText} oc.components['${key}'](${JSON.stringify(model)}); `, context); const cached = extractor(componentKey, context); return cached; }; exports.default = getJsFromUrl;