// Hardcoded module "node:timers/promises" // https://github.com/niksy/isomorphic-timers-promises/blob/master/index.js const symbolAsyncIterator = Symbol.asyncIterator; class ERR_INVALID_ARG_TYPE extends Error { constructor(name, expected, actual) { super(`${name} must be ${expected}, ${typeof actual} given`); this.code = "ERR_INVALID_ARG_TYPE"; } } class AbortError extends Error { constructor() { super("The operation was aborted"); this.code = "ABORT_ERR"; } } function validateObject(object, name) { if (object === null || typeof object !== "object") { throw new ERR_INVALID_ARG_TYPE(name, "Object", object); } } function validateBoolean(value, name) { if (typeof value !== "boolean") { throw new ERR_INVALID_ARG_TYPE(name, "boolean", value); } } function validateAbortSignal(signal, name) { if (typeof signal !== "undefined" && (signal === null || typeof signal !== "object" || !("aborted" in signal))) { throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal); } } function asyncIterator({ next: nextFunction, return: returnFunction }) { const result = {}; if (typeof nextFunction === "function") { result.next = nextFunction; } if (typeof returnFunction === "function") { result.return = returnFunction; } result[symbolAsyncIterator] = function () { return this; }; return result; } function setTimeoutPromise(after = 1, value, options = {}) { const arguments_ = [].concat(value ?? []); try { validateObject(options, "options"); } catch (error) { return Promise.reject(error); } const { signal, ref: reference = true } = options; try { validateAbortSignal(signal, "options.signal"); } catch (error) { return Promise.reject(error); } try { validateBoolean(reference, "options.ref"); } catch (error) { return Promise.reject(error); } if (signal?.aborted) { return Promise.reject(new AbortError()); } let onCancel; const returnValue = new Promise((resolve, reject) => { const timeout = setTimeout(() => resolve(value), after, ...arguments_); if (!reference) { timeout?.unref?.(); } if (signal) { onCancel = () => { clearTimeout(timeout); reject(new AbortError()); }; signal.addEventListener("abort", onCancel); } }); if (typeof onCancel !== "undefined") { returnValue.finally(() => signal.removeEventListener("abort", onCancel)); } return returnValue; } function setImmediatePromise(value, options = {}) { try { validateObject(options, "options"); } catch (error) { return Promise.reject(error); } const { signal, ref: reference = true } = options; try { validateAbortSignal(signal, "options.signal"); } catch (error) { return Promise.reject(error); } try { validateBoolean(reference, "options.ref"); } catch (error) { return Promise.reject(error); } if (signal?.aborted) { return Promise.reject(new AbortError()); } let onCancel; const returnValue = new Promise((resolve, reject) => { const immediate = setImmediate(() => resolve(value)); if (!reference) { immediate?.unref?.(); } if (signal) { onCancel = () => { clearImmediate(immediate); reject(new AbortError()); }; signal.addEventListener("abort", onCancel); } }); if (typeof onCancel !== "undefined") { returnValue.finally(() => signal.removeEventListener("abort", onCancel)); } return returnValue; } function setIntervalPromise(after = 1, value, options = {}) { /* eslint-disable no-undefined, no-unreachable-loop, no-loop-func */ try { validateObject(options, "options"); } catch (error) { return asyncIterator({ next: function () { return Promise.reject(error); }, }); } const { signal, ref: reference = true } = options; try { validateAbortSignal(signal, "options.signal"); } catch (error) { return asyncIterator({ next: function () { return Promise.reject(error); }, }); } try { validateBoolean(reference, "options.ref"); } catch (error) { return asyncIterator({ next: function () { return Promise.reject(error); }, }); } if (signal?.aborted) { return asyncIterator({ next: function () { return Promise.reject(new AbortError()); }, }); } let onCancel, interval; try { let notYielded = 0; let callback; interval = setInterval(() => { notYielded++; if (callback) { callback(); callback = undefined; } }, after); if (!reference) { interval?.unref?.(); } if (signal) { onCancel = () => { clearInterval(interval); if (callback) { callback(); callback = undefined; } }; signal.addEventListener("abort", onCancel); } return asyncIterator({ next: function () { return new Promise((resolve, reject) => { if (!signal?.aborted) { if (notYielded === 0) { callback = resolve; } else { resolve(); } } else if (notYielded === 0) { reject(new AbortError()); } else { resolve(); } }).then(() => { if (notYielded > 0) { notYielded = notYielded - 1; return { done: false, value: value }; } return { done: true }; }); }, return: function () { clearInterval(interval); signal?.removeEventListener("abort", onCancel); return Promise.resolve({}); }, }); } catch (error) { return asyncIterator({ next: function () { clearInterval(interval); signal?.removeEventListener("abort", onCancel); }, }); } } export default { setTimeout: setTimeoutPromise, setImmediate: setImmediatePromise, setInterval: setIntervalPromise, scheduler: { wait: (delay, options) => setTimeoutPromise(delay, undefined, options), yield: setImmediatePromise, }, }; ='jarred/bundle-workspace-packages'>jarred/bundle-workspace-packages Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/bunjs-only-snippets/fs-stream.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-01-19Update Dockerfile.baseGravatar Jarred Sumner 1-1/+1
2022-01-19Update release.shGravatar Jarred Sumner 1-1/+1
2022-01-19small bugfixGravatar Jarred Sumner 1-6/+6
2022-01-19Update fs.test.jsGravatar Jarred Sumner 1-12/+6
2022-01-19O3Gravatar Jarred Sumner 1-1/+1
2022-01-19`fs.*Sync()`, `bun wiptest`, and More ™ (#106)Gravatar Jarred Sumner 186-2836/+17233
2022-01-05Fix bug preventing multiple framework overridesGravatar Jarred Sumner 1-2/+3
2022-01-05Reduce memory usageGravatar Jarred Sumner 1-2/+2
2022-01-05Fix crash that sometimes happens after 30 secondsGravatar Jarred Sumner 5-106/+185
2022-01-05[bun bun][bun dev] Fix crash affecting large projectsGravatar Jarred Sumner 1-26/+119
2022-01-05move some code aroundGravatar Jarred Sumner 2-281/+284
2022-01-05we want the opposite of thisGravatar Jarred Sumner 1-1/+0
2022-01-05[JS Parser] Reduce memory usage by ~8%Gravatar Jarred Sumner 6-7/+42
2022-01-05minimal integration tests for macrosGravatar Jarred Sumner 4-0/+47
2022-01-05Update resolver.zigGravatar Jarred Sumner 1-3/+0
2022-01-05Update options.zigGravatar Jarred Sumner 1-2/+25
2022-01-05Update http.zigGravatar Jarred Sumner 1-1/+1
2022-01-05Add module condition to the node platform (#104)Gravatar Mateusz Burzyński 1-1/+4
2022-01-05Drop redundant comments (#103)Gravatar Mateusz Burzyński 1-23/+0
2022-01-05Tweak default main fields for the bun platform to match other popular bundler...Gravatar Mateusz Burzyński 1-10/+7
2022-01-04:skull: dead codeGravatar Jarred Sumner 1-13/+0
2022-01-04[bun dev] Print error in status line textGravatar Jarred Sumner 1-3/+13
2022-01-04noramlize some errorsGravatar Jarred Sumner 3-3/+4
2022-01-04[Bun.js][bun dev] Support macros inside of Bun.jsGravatar Jarred Sumner 5-51/+103
2022-01-04[bun bun] Fix error when regenerating node_modules.bun after moving itGravatar Jarred Sumner 1-1/+17
2022-01-04Improve how we detect if terminal colors are supportedGravatar Jarred Sumner 3-11/+66
2022-01-04Improve error handling when out of file handlesGravatar Jarred Sumner 5-58/+248
2022-01-04Update build-idGravatar Jarred Sumner 1-1/+1
2022-01-04Downgrade mimalloc due to crashesGravatar Jarred Sumner 1-0/+0
2022-01-04Upload compressed `.dSYM` for every releaseGravatar Jarred Sumner 2-4/+34
2022-01-04Update .gitignoreGravatar Jarred Sumner 1-0/+3
2022-01-04[bun install] Fix more cases where bytes are printed instead of stringsGravatar Jarred Sumner 1-10/+38
2022-01-04minor perf optimization: remove this loop on macOSGravatar Jarred Sumner 2-4/+8
2022-01-03Update crash_reporter_linux.zigbun-v0.0.66Gravatar Jarred Sumner 1-1/+1
2022-01-03:confused:Gravatar Jarred Sumner 5-0/+1
2022-01-03:nail_care:Gravatar Jarred Sumner 3-1652/+1826
2022-01-03Update crash_reporter_linux.zigGravatar Jarred Sumner 1-1/+1
2022-01-03Update PLCrashReport.mGravatar Jarred Sumner 1-1/+1
2022-01-03Update PLCrashReport.mGravatar Jarred Sumner 1-2/+1
2022-01-03:lock:Gravatar Jarred Sumner 4-1/+1
2022-01-03dead codeGravatar Jarred Sumner 13-1881/+1660