diff --git a/src/main/ts/spawn.ts b/src/main/ts/spawn.ts index 608848f..0448894 100644 --- a/src/main/ts/spawn.ts +++ b/src/main/ts/spawn.ts @@ -2,7 +2,7 @@ import * as cp from 'node:child_process' import process from 'node:process' import EventEmitter from 'node:events' import { Readable, Writable, Stream, Transform } from 'node:stream' -import { assign, noop, randomId, g } from './util.js' +import { assign, noop, randomId, g, immediate } from './util.js' export * from './util.js' @@ -102,7 +102,7 @@ export const defaults: TSpawnCtxNormalized = { get stdout(){ return new VoidStream() }, get stderr(){ return new VoidStream() }, stdio: ['pipe', 'pipe', 'pipe'], - run: g.setImmediate, + run: immediate } export const normalizeCtx = (...ctxs: TSpawnCtx[]): TSpawnCtxNormalized => assign({ diff --git a/src/main/ts/util.ts b/src/main/ts/util.ts index 63745a3..977cf47 100644 --- a/src/main/ts/util.ts +++ b/src/main/ts/util.ts @@ -4,6 +4,8 @@ import { Buffer } from 'node:buffer' export const g = (!process.versions.deno && global) || globalThis +export const immediate = g.setImmediate || ((f: any) => g.setTimeout(f, 0)) + export const noop = () => { /* noop */ } export const randomId = () => Math.random().toString(36).slice(2) diff --git a/src/test/smoke/invoke.test.mjs b/src/test/smoke/invoke.test.mjs index 1fed14b..6a35c04 100644 --- a/src/test/smoke/invoke.test.mjs +++ b/src/test/smoke/invoke.test.mjs @@ -1,4 +1,5 @@ import assert from 'node:assert' +import process from 'node:process' import { zurk, $ } from '../../../target/esm/index.mjs' const keepAlive = setInterval(() => {}, 1000 * 60 * 60)