UNPKG

@effect-ts/system

Version:

Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.

74 lines (53 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.arraySpliceIn = arraySpliceIn; exports.arraySpliceOut = arraySpliceOut; exports.arrayUpdate = arrayUpdate; // ets_tracing: off function arrayUpdate(mutate, at, v, arr) { let out = arr; if (!mutate) { const len = arr.length; out = new Array(len); for (let i = 0; i < len; ++i) out[i] = arr[i]; } out[at] = v; return out; } function arraySpliceOut(mutate, at, arr) { const newLen = arr.length - 1; let i = 0; let g = 0; let out = arr; if (mutate) { i = g = at; } else { out = new Array(newLen); while (i < at) out[g++] = arr[i++]; } ++i; while (i <= newLen) out[g++] = arr[i++]; if (mutate) { out.length = newLen; } return out; } function arraySpliceIn(mutate, at, v, arr) { const len = arr.length; if (mutate) { let i = len; while (i >= at) arr[i--] = arr[i]; arr[at] = v; return arr; } let i = 0, g = 0; const out = new Array(len + 1); while (i < at) out[g++] = arr[i++]; out[at] = v; while (i < len) out[++g] = arr[i++]; return out; } //# sourceMappingURL=index.js.map