@sebastianwessel/quickjs
Version:
A typescript package to execute JavaScript and TypeScript code in a WebAssembly QuickJS sandbox
3 lines (2 loc) • 1.28 kB
TypeScript
declare const _default: "\nexport const setTimeout = (delay, value, options) => new Promise((resolve, reject) => {\n const id = globalThis.setTimeout(() => resolve(value), delay);\n if (options && options.signal) {\n const abortHandler = () => {\n globalThis.clearTimeout(id);\n reject(options.signal.reason ?? new Error('AbortError'));\n };\n if (options.signal.aborted) {\n abortHandler();\n return;\n }\n options.signal.addEventListener('abort', abortHandler, { once: true });\n }\n});\n\nexport const setImmediate = (value, options) => new Promise((resolve, reject) => {\n const id = globalThis.setTimeout(() => resolve(value), 0);\n if (options && options.signal) {\n const abortHandler = () => {\n globalThis.clearTimeout(id);\n reject(options.signal.reason ?? new Error('AbortError'));\n };\n if (options.signal.aborted) {\n abortHandler();\n return;\n }\n options.signal.addEventListener('abort', abortHandler, { once: true });\n }\n});\n\nexport async function* setInterval(delay, value) {\n while (true) {\n await new Promise((resolve) => globalThis.setTimeout(resolve, delay));\n yield value;\n }\n}\n\nexport default { setTimeout, setImmediate, setInterval }\n";
export default _default;