@ts-fns/stdlib 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/index.cjs +230 -33
- package/dist/array/index.cjs.map +1 -1
- package/dist/array/index.d.cts +434 -32
- package/dist/array/index.d.cts.map +1 -1
- package/dist/array/index.d.mts +434 -32
- package/dist/array/index.d.mts.map +1 -1
- package/dist/array/index.mjs +216 -18
- package/dist/array/index.mjs.map +1 -1
- package/dist/function/index.cjs +4 -2
- package/dist/function/index.d.cts +128 -13
- package/dist/function/index.d.cts.map +1 -1
- package/dist/function/index.d.mts +128 -13
- package/dist/function/index.d.mts.map +1 -1
- package/dist/function/index.mjs +3 -3
- package/dist/{function-DnI2v0p3.mjs → function-CYHPhQCQ.mjs} +84 -6
- package/dist/function-CYHPhQCQ.mjs.map +1 -0
- package/dist/{function-CB82a2GS.cjs → function-DYPifnmg.cjs} +95 -5
- package/dist/function-DYPifnmg.cjs.map +1 -0
- package/dist/{get-yrs1Kqho.cjs → get-1kqkxPFX.cjs} +20 -8
- package/dist/get-1kqkxPFX.cjs.map +1 -0
- package/dist/{get-CWL_cu6G.mjs → get-Dv6ejLZg.mjs} +21 -3
- package/dist/get-Dv6ejLZg.mjs.map +1 -0
- package/dist/guard/index.cjs +5 -12
- package/dist/guard/index.cjs.map +1 -1
- package/dist/guard/index.d.cts +18 -17
- package/dist/guard/index.d.cts.map +1 -1
- package/dist/guard/index.d.mts +18 -17
- package/dist/guard/index.d.mts.map +1 -1
- package/dist/guard/index.mjs +4 -12
- package/dist/guard/index.mjs.map +1 -1
- package/dist/index-MbdqaUt1.d.cts +54 -0
- package/dist/index-MbdqaUt1.d.cts.map +1 -0
- package/dist/index-k-paNOu4.d.mts +54 -0
- package/dist/index-k-paNOu4.d.mts.map +1 -0
- package/dist/iterator/index.cjs +72 -26
- package/dist/iterator/index.cjs.map +1 -1
- package/dist/iterator/index.d.cts +157 -5
- package/dist/iterator/index.d.cts.map +1 -1
- package/dist/iterator/index.d.mts +157 -5
- package/dist/iterator/index.d.mts.map +1 -1
- package/dist/iterator/index.mjs +66 -24
- package/dist/iterator/index.mjs.map +1 -1
- package/dist/lens/index.cjs +3 -3
- package/dist/lens/index.cjs.map +1 -1
- package/dist/lens/index.mjs +3 -3
- package/dist/lens/index.mjs.map +1 -1
- package/dist/map/index.cjs +88 -1
- package/dist/map/index.cjs.map +1 -1
- package/dist/map/index.d.cts +130 -2
- package/dist/map/index.d.cts.map +1 -1
- package/dist/map/index.d.mts +130 -2
- package/dist/map/index.d.mts.map +1 -1
- package/dist/map/index.mjs +86 -2
- package/dist/map/index.mjs.map +1 -1
- package/dist/number/index.cjs +91 -18
- package/dist/number/index.cjs.map +1 -1
- package/dist/number/index.d.cts +134 -19
- package/dist/number/index.d.cts.map +1 -1
- package/dist/number/index.d.mts +134 -19
- package/dist/number/index.d.mts.map +1 -1
- package/dist/number/index.mjs +91 -18
- package/dist/number/index.mjs.map +1 -1
- package/dist/object/index.cjs +111 -7
- package/dist/object/index.cjs.map +1 -1
- package/dist/object/index.d.cts +186 -26
- package/dist/object/index.d.cts.map +1 -1
- package/dist/object/index.d.mts +186 -26
- package/dist/object/index.d.mts.map +1 -1
- package/dist/object/index.mjs +111 -7
- package/dist/object/index.mjs.map +1 -1
- package/dist/orNull-CJNrTjhQ.cjs +45 -0
- package/dist/orNull-CJNrTjhQ.cjs.map +1 -0
- package/dist/orNull-EeXiCxD4.mjs +34 -0
- package/dist/orNull-EeXiCxD4.mjs.map +1 -0
- package/dist/order/index.cjs +22 -1
- package/dist/order/index.cjs.map +1 -1
- package/dist/order/index.d.cts +2 -2
- package/dist/order/index.d.mts +2 -2
- package/dist/order/index.mjs +22 -1
- package/dist/order/index.mjs.map +1 -1
- package/dist/{order.constants-BWSCg3C7.d.cts → order.constants-DpGY-EDp.d.cts} +4 -1
- package/dist/order.constants-DpGY-EDp.d.cts.map +1 -0
- package/dist/{order.constants-BWSCg3C7.d.mts → order.constants-DpGY-EDp.d.mts} +4 -1
- package/dist/order.constants-DpGY-EDp.d.mts.map +1 -0
- package/dist/purry-DXnhXie9.mjs +22 -0
- package/dist/purry-DXnhXie9.mjs.map +1 -0
- package/dist/purry-Dqp_F64t.cjs +27 -0
- package/dist/purry-Dqp_F64t.cjs.map +1 -0
- package/dist/set/index.cjs +59 -1
- package/dist/set/index.cjs.map +1 -1
- package/dist/set/index.d.cts +151 -2
- package/dist/set/index.d.cts.map +1 -1
- package/dist/set/index.d.mts +151 -2
- package/dist/set/index.d.mts.map +1 -1
- package/dist/set/index.mjs +59 -2
- package/dist/set/index.mjs.map +1 -1
- package/dist/string/index.cjs +289 -15
- package/dist/string/index.cjs.map +1 -1
- package/dist/string/index.d.cts +406 -1
- package/dist/string/index.d.cts.map +1 -1
- package/dist/string/index.d.mts +406 -1
- package/dist/string/index.d.mts.map +1 -1
- package/dist/string/index.mjs +271 -4
- package/dist/string/index.mjs.map +1 -1
- package/dist/tuple/index.cjs +20 -21
- package/dist/tuple/index.cjs.map +1 -1
- package/dist/tuple/index.d.cts +27 -58
- package/dist/tuple/index.d.cts.map +1 -1
- package/dist/tuple/index.d.mts +27 -58
- package/dist/tuple/index.d.mts.map +1 -1
- package/dist/tuple/index.mjs +20 -22
- package/dist/tuple/index.mjs.map +1 -1
- package/package.json +5 -6
- package/dist/function-CB82a2GS.cjs.map +0 -1
- package/dist/function-DnI2v0p3.mjs.map +0 -1
- package/dist/get-CWL_cu6G.mjs.map +0 -1
- package/dist/get-yrs1Kqho.cjs.map +0 -1
- package/dist/index-BJlKyBJH.d.cts +0 -18
- package/dist/index-BJlKyBJH.d.cts.map +0 -1
- package/dist/index-DGrnGMDt.d.mts +0 -18
- package/dist/index-DGrnGMDt.d.mts.map +0 -1
- package/dist/isNotNil-DrF-ohem.cjs +0 -28
- package/dist/isNotNil-DrF-ohem.cjs.map +0 -1
- package/dist/isNotNil-R5f1hC53.mjs +0 -23
- package/dist/isNotNil-R5f1hC53.mjs.map +0 -1
- package/dist/orThrow-V91Jw2lF.mjs +0 -15
- package/dist/orThrow-V91Jw2lF.mjs.map +0 -1
- package/dist/orThrow-ejzcQYAI.cjs +0 -20
- package/dist/orThrow-ejzcQYAI.cjs.map +0 -1
- package/dist/order.constants-BWSCg3C7.d.cts.map +0 -1
- package/dist/order.constants-BWSCg3C7.d.mts.map +0 -1
- package/dist/purry-B2_0DGLV.cjs +0 -28
- package/dist/purry-B2_0DGLV.cjs.map +0 -1
- package/dist/purry-BOWmqwDB.mjs +0 -23
- package/dist/purry-BOWmqwDB.mjs.map +0 -1
package/dist/tuple/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nfunction at2Implementation<T>(tuple: T[], index: number): T {\n if (index < 0) {\n throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);\n }\n if (index >= tuple.length) {\n throw new RangeError(`Tuple.at() :: ${index} is out of bounds`);\n }\n\n return tuple[index]!;\n}\n\n/**\n * Get an element from a tuple by index.\n *\n * @param tuple - The tuple to get the element from.\n * @param index - The index of the element to get.\n *\n * @example\n * ```ts\n * at(0, [1, 2, 3]) // 1\n * at(1, [1, 2, 3]) // 2\n * at([1, 2, 3], 0) // 1\n * at([1, 2, 3], 1) // 2\n * ```\n *\n * @throws {RangeError}\n */\nexport function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;\nexport function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(tuple: [T, ...unknown[]], index: 0): T;\nexport function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;\nexport function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(at2Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D] {\n return [fn1(value), fn2(value)];\n}\n\n/**\n * Takes a value and two functions and returns a tuple of the results of the functions.\n *\n * @public\n * @category Tuple\n * @param value - The value to apply the functions to.\n * @param fn1 - The first function to apply to the value.\n * @param fn2 - The second function to apply to the value.\n *\n * @example\n * ```ts\n * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]\n * ```\n */\nexport function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];\nexport function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];\nexport function fanOut(...args: readonly unknown[]): unknown {\n return purry(fanOutImplementation, args);\n}\n","/**\n * Returns the first element of a tuple with at least one element.\n *\n * @param tuple - A non-empty tuple.\n * @returns The element at index `0`.\n *\n * @example\n * ```ts\n * first([1, 2]); // 1\n * ```\n *\n * @throws {RangeError} When the tuple has fewer than one element.\n */\nexport function first<T>(tuple: [T, ...unknown[]]): T {\n if (tuple.length < 1) {\n throw new RangeError('Tuple.first() :: received a tuple with less than 1 element');\n }\n return tuple[0];\n}\n","/* eslint-disable @typescript-eslint/unified-signatures */\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(tuple: T[], index: number, value: T): T[] {\n return tuple.with(index, value);\n}\n\n/**\n * Returns a new tuple with the element at `index` replaced by `value`.\n *\n * @param index - Zero-based index of the element to replace.\n * @param value - Replacement value.\n * @param tuple - The source tuple.\n *\n * @example\n * ```ts\n * insert([1, 2, 3], 1, 99); // [1, 99, 3]\n * insert(1, 99)([1, 2, 3]); // [1, 99, 3]\n * ```\n *\n * @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).\n */\nexport function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 3,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 4,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 5,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 6,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 7,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 8,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n) => U;\nexport function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;\nexport function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 3,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 4,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 5,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 6,\n value: T,\n): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 7, value: T): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 8, value: T): U;\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n","import { purry } from '../function/purry';\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n */\nexport function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U] {\n return [fn(tuple[0]), fn(tuple[1])];\n}\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n *\n * @param fn - Function applied to each element\n * @param tuple - A two-element tuple of the same type\n *\n * @example\n * ```ts\n * mapBoth([1, 2], (n) => n * 2); // [2, 4]\n * mapBoth((n) => n * 2)([1, 2]); // [2, 4]\n * ```\n */\nexport function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];\nexport function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];\nexport function mapBoth(...args: readonly unknown[]): unknown {\n return purry(mapBothImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapEachImplementation<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y] {\n return [fnA(tuple[0]), fnB(tuple[1])];\n}\n\n/**\n * Maps the first and second elements of a pair with two functions.\n *\n * @param fnA - Function applied to the first element\n * @param fnB - Function applied to the second element\n * @param tuple - A two-element tuple\n *\n * @example\n * ```ts\n * mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']\n * mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']\n * ```\n */\nexport function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];\nexport function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];\nexport function mapEach(...args: readonly unknown[]): unknown {\n return purry(mapEachImplementation, args);\n}\n","import { purry } from '../function/purry';\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n */\nexport function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B] {\n return [fn(tuple[0]), tuple[1]];\n}\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n *\n * @param fn - Function applied to the first element\n * @param tuple - A two-element tuple\n *\n * @example\n * ```ts\n * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']\n * mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']\n * ```\n */\nexport function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];\nexport function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];\nexport function mapFirst(...args: readonly unknown[]): unknown {\n return purry(mapFirstImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapSecondImplementation<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y] {\n return [tuple[0], fn(tuple[1])];\n}\n\n/**\n * Maps the second element of a pair; leaves the first unchanged.\n *\n * @param fn - Function applied to the second element\n * @param tuple - A two-element tuple (data-first overload).\n *\n * @example\n * ```ts\n * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']\n * mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']\n * ```\n */\nexport function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];\nexport function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];\nexport function mapSecond(...args: readonly unknown[]): unknown {\n return purry(mapSecondImplementation, args);\n}\n","/**\n * Returns the second element of a tuple with at least two elements.\n *\n * @param tuple - A tuple with at least two elements.\n * @returns The element at index `1`.\n *\n * @example\n * ```ts\n * second([1, 2]); // 2\n * ```\n *\n * @throws {RangeError} When the tuple has fewer than two elements.\n */\nexport function second<T>(tuple: [unknown, T, ...unknown[]]): T {\n if (tuple.length < 2) {\n throw new RangeError('Tuple.second() :: received a tuple with less than 2 elements');\n }\n return tuple[1];\n}\n","/**\n * Swaps the two elements of a pair.\n *\n * @param data - A two-element tuple.\n * @returns The tuple with elements reversed.\n *\n * @example\n * ```ts\n * swap([1, 'a']); // ['a', 1]\n * ```\n */\nexport function swap<A, B>(data: [A, B]): [B, A] {\n return [data[1], data[0]];\n}\n"],"mappings":";;;AAEA,SAAS,kBAAqB,OAAY,OAAkB;CAC1D,IAAI,QAAQ,GACV,MAAM,IAAI,WAAW,iBAAiB,MAAM,4BAA4B;CAE1E,IAAI,SAAS,MAAM,QACjB,MAAM,IAAI,WAAW,iBAAiB,MAAM,kBAAkB;CAGhE,OAAO,MAAM;AACf;AAgCA,SAAgB,GAAG,GAAG,MAAmC;CACvD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;AC3CA,SAAgB,qBAA8B,OAAU,KAAsB,KAA8B;CAC1G,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC;AAChC;AAkBA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;;;;;;;;;;;ACXA,SAAgB,MAAS,OAA6B;CACpD,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,4DAA4D;CAEnF,OAAO,MAAM;AACf;;;ACfA,SAAS,qBAAwB,OAAY,OAAe,OAAe;CACzE,OAAO,MAAM,KAAK,OAAO,KAAK;AAChC;AA6EA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;AC/EA,SAAgB,sBAA4B,OAAe,IAA6B;CACtF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;AACpC;AAgBA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACvBA,SAAS,sBAAkC,OAAe,KAAsB,KAA8B;CAC5G,OAAO,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC;AACtC;AAiBA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;;;;AClBA,SAAgB,uBAAgC,OAAe,IAA6B;CAC1F,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;AAChC;AAgBA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOC,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACvBA,SAAS,wBAAiC,OAAe,IAA6B;CACpF,OAAO,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;AAChC;AAgBA,SAAgB,UAAU,GAAG,MAAmC;CAC9D,OAAOC,cAAAA,MAAM,yBAAyB,IAAI;AAC5C;;;;;;;;;;;;;;;;ACTA,SAAgB,OAAU,OAAsC;CAC9D,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,8DAA8D;CAErF,OAAO,MAAM;AACf;;;;;;;;;;;;;;ACPA,SAAgB,KAAW,MAAsB;CAC/C,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;AAC1B"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nfunction at2Implementation<T>(tuple: T[], index: number): T {\n if (index < 0) {\n throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);\n }\n if (index >= tuple.length) {\n throw new RangeError(`Tuple.at() :: ${index} is out of bounds`);\n }\n\n return tuple[index]!;\n}\n\n/**\n * Gets an element from a tuple by zero-based index.\n * Throws a range error when the index is negative or out of bounds.\n *\n * @example\n * ```ts\n * at(0, [1, 2, 3]); // 1\n * at(1)([1, 2, 3]); // 2\n * at([1, 2, 3], 10); // throws RangeError\n * ```\n */\nexport function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;\nexport function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;\nexport function at<T>(tuple: [T, ...unknown[]], index: 0): T;\nexport function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;\nexport function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;\nexport function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(at2Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D] {\n return [fn1(value), fn2(value)];\n}\n\n/**\n * Applies two functions to the same value and returns the results as a pair.\n *\n * @example\n * ```ts\n * fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]\n * fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]\n * ```\n */\nexport function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];\nexport function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];\nexport function fanOut(...args: readonly unknown[]): unknown {\n return purry(fanOutImplementation, args);\n}\n","/**\n * Builds a two-element tuple from two values.\n *\n * @example\n * ```ts\n * from(1, 'a'); // [1, 'a']\n * ```\n */\nexport function from<A, B>(arg1: A, arg2: B): [A, B] {\n return [arg1, arg2] as const;\n}\n","/**\n * Returns the first element of a non-empty tuple.\n * Throws a range error when the tuple has fewer than one element.\n *\n * @example\n * ```ts\n * first([1, 2]); // 1\n * first([]); // throws RangeError\n * ```\n */\nexport function first<T>(tuple: [T, ...unknown[]]): T {\n if (tuple.length < 1) {\n throw new RangeError('Tuple.first() :: received a tuple with less than 1 element');\n }\n return tuple[0];\n}\n","/* eslint-disable @typescript-eslint/unified-signatures */\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(tuple: T[], index: number, value: T): T[] {\n return tuple.with(index, value);\n}\n\n/**\n * Returns a new tuple with the element at `index` replaced by `value`.\n * Throws a range error when `index` is negative or out of bounds.\n *\n * @example\n * ```ts\n * insert([1, 2, 3], 1, 99); // [1, 99, 3]\n * insert(1, 99)([1, 2, 3]); // [1, 99, 3]\n * insert([1, 2, 3], 10, 99); // throws RangeError\n * ```\n */\nexport function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 3,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 4,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 5,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 6,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 7,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;\nexport function insert<T>(\n index: 8,\n value: T,\n): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n) => U;\nexport function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;\nexport function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 3,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 4,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 5,\n value: T,\n): U;\nexport function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(\n tuple: U,\n index: 6,\n value: T,\n): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 7, value: T): U;\nexport function insert<\n T,\n U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]],\n>(tuple: U, index: 8, value: T): U;\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U] {\n return [fn(tuple[0]), fn(tuple[1])];\n}\n\n/**\n * Maps both elements of a homogeneous pair with the same function.\n *\n * @example\n * ```ts\n * mapBoth([1, 2], (n) => n * 2); // [2, 4]\n * mapBoth((n) => n * 2)([1, 2]); // [2, 4]\n * ```\n */\nexport function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];\nexport function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];\nexport function mapBoth(...args: readonly unknown[]): unknown {\n return purry(mapBothImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapEachImplementation<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y] {\n return [fnA(tuple[0]), fnB(tuple[1])];\n}\n\n/**\n * Maps the first and second elements of a pair with separate functions.\n *\n * @example\n * ```ts\n * mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']\n * mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']\n * ```\n */\nexport function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];\nexport function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];\nexport function mapEach(...args: readonly unknown[]): unknown {\n return purry(mapEachImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B] {\n return [fn(tuple[0]), tuple[1]];\n}\n\n/**\n * Maps the first element of a pair; leaves the second unchanged.\n *\n * @example\n * ```ts\n * mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']\n * mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']\n * ```\n */\nexport function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];\nexport function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];\nexport function mapFirst(...args: readonly unknown[]): unknown {\n return purry(mapFirstImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapSecondImplementation<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y] {\n return [tuple[0], fn(tuple[1])];\n}\n\n/**\n * Maps the second element of a pair; leaves the first unchanged.\n *\n * @example\n * ```ts\n * mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']\n * mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']\n * ```\n */\nexport function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];\nexport function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];\nexport function mapSecond(...args: readonly unknown[]): unknown {\n return purry(mapSecondImplementation, args);\n}\n","/**\n * Returns the second element of a tuple with at least two elements.\n * Throws a range error when the tuple has fewer than two elements.\n *\n * @example\n * ```ts\n * second([1, 2]); // 2\n * second([1]); // throws RangeError\n * ```\n */\nexport function second<T>(tuple: [unknown, T, ...unknown[]]): T {\n if (tuple.length < 2) {\n throw new RangeError('Tuple.second() :: received a tuple with less than 2 elements');\n }\n return tuple[1];\n}\n","/**\n * Swaps the two elements of a pair.\n *\n * @example\n * ```ts\n * swap([1, 'a']); // ['a', 1]\n * ```\n */\nexport function swap<A, B>(data: [A, B]): [B, A] {\n return [data[1], data[0]];\n}\n"],"mappings":";;;AAEA,SAAS,kBAAqB,OAAY,OAAkB;CAC1D,IAAI,QAAQ,GACV,MAAM,IAAI,WAAW,iBAAiB,MAAM,4BAA4B;CAE1E,IAAI,SAAS,MAAM,QACjB,MAAM,IAAI,WAAW,iBAAiB,MAAM,kBAAkB;CAGhE,OAAO,MAAM;AACf;AA2BA,SAAgB,GAAG,GAAG,MAAmC;CACvD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;ACtCA,SAAgB,qBAA8B,OAAU,KAAsB,KAA8B;CAC1G,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC;AAChC;AAaA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;;;;;;;;;ACXA,SAAgB,KAAW,MAAS,MAAiB;CACnD,OAAO,CAAC,MAAM,IAAI;AACpB;;;;;;;;;;;;;ACAA,SAAgB,MAAS,OAA6B;CACpD,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,4DAA4D;CAEnF,OAAO,MAAM;AACf;;;ACZA,SAAS,qBAAwB,OAAY,OAAe,OAAe;CACzE,OAAO,MAAM,KAAK,OAAO,KAAK;AAChC;AAyEA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;AC9EA,SAAgB,sBAA4B,OAAe,IAA6B;CACtF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;AACpC;AAaA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACjBA,SAAS,sBAAkC,OAAe,KAAsB,KAA8B;CAC5G,OAAO,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC;AACtC;AAaA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACjBA,SAAgB,uBAAgC,OAAe,IAA6B;CAC1F,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;AAChC;AAaA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOC,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACjBA,SAAS,wBAAiC,OAAe,IAA6B;CACpF,OAAO,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;AAChC;AAaA,SAAgB,UAAU,GAAG,MAAmC;CAC9D,OAAOC,cAAAA,MAAM,yBAAyB,IAAI;AAC5C;;;;;;;;;;;;;ACTA,SAAgB,OAAU,OAAsC;CAC9D,IAAI,MAAM,SAAS,GACjB,MAAM,IAAI,WAAW,8DAA8D;CAErF,OAAO,MAAM;AACf;;;;;;;;;;;ACPA,SAAgB,KAAW,MAAsB;CAC/C,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;AAC1B"}
|
package/dist/tuple/index.d.cts
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
//#region src/tuple/at.d.ts
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* @param tuple - The tuple to get the element from.
|
|
6
|
-
* @param index - The index of the element to get.
|
|
3
|
+
* Gets an element from a tuple by zero-based index.
|
|
4
|
+
* Throws a range error when the index is negative or out of bounds.
|
|
7
5
|
*
|
|
8
6
|
* @example
|
|
9
7
|
* ```ts
|
|
10
|
-
* at(0, [1, 2, 3]) // 1
|
|
11
|
-
* at(1
|
|
12
|
-
* at([1, 2, 3],
|
|
13
|
-
* at([1, 2, 3], 1) // 2
|
|
8
|
+
* at(0, [1, 2, 3]); // 1
|
|
9
|
+
* at(1)([1, 2, 3]); // 2
|
|
10
|
+
* at([1, 2, 3], 10); // throws RangeError
|
|
14
11
|
* ```
|
|
15
|
-
*
|
|
16
|
-
* @throws {RangeError}
|
|
17
12
|
*/
|
|
18
13
|
declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
|
|
19
14
|
declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
|
|
@@ -33,53 +28,52 @@ declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unkn
|
|
|
33
28
|
//#region src/tuple/fanOut.d.ts
|
|
34
29
|
declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
35
30
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @public
|
|
39
|
-
* @category Tuple
|
|
40
|
-
* @param value - The value to apply the functions to.
|
|
41
|
-
* @param fn1 - The first function to apply to the value.
|
|
42
|
-
* @param fn2 - The second function to apply to the value.
|
|
31
|
+
* Applies two functions to the same value and returns the results as a pair.
|
|
43
32
|
*
|
|
44
33
|
* @example
|
|
45
34
|
* ```ts
|
|
46
35
|
* fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
|
|
36
|
+
* fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]
|
|
47
37
|
* ```
|
|
48
38
|
*/
|
|
49
39
|
declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
|
|
50
40
|
declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
51
41
|
//#endregion
|
|
52
|
-
//#region src/tuple/
|
|
42
|
+
//#region src/tuple/from.d.ts
|
|
53
43
|
/**
|
|
54
|
-
*
|
|
44
|
+
* Builds a two-element tuple from two values.
|
|
55
45
|
*
|
|
56
|
-
* @
|
|
57
|
-
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* from(1, 'a'); // [1, 'a']
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
declare function from<A, B>(arg1: A, arg2: B): [A, B];
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/tuple/first.d.ts
|
|
54
|
+
/**
|
|
55
|
+
* Returns the first element of a non-empty tuple.
|
|
56
|
+
* Throws a range error when the tuple has fewer than one element.
|
|
58
57
|
*
|
|
59
58
|
* @example
|
|
60
59
|
* ```ts
|
|
61
60
|
* first([1, 2]); // 1
|
|
61
|
+
* first([]); // throws RangeError
|
|
62
62
|
* ```
|
|
63
|
-
*
|
|
64
|
-
* @throws {RangeError} When the tuple has fewer than one element.
|
|
65
63
|
*/
|
|
66
64
|
declare function first<T>(tuple: [T, ...unknown[]]): T;
|
|
67
65
|
//#endregion
|
|
68
66
|
//#region src/tuple/insert.d.ts
|
|
69
67
|
/**
|
|
70
68
|
* Returns a new tuple with the element at `index` replaced by `value`.
|
|
71
|
-
*
|
|
72
|
-
* @param index - Zero-based index of the element to replace.
|
|
73
|
-
* @param value - Replacement value.
|
|
74
|
-
* @param tuple - The source tuple.
|
|
69
|
+
* Throws a range error when `index` is negative or out of bounds.
|
|
75
70
|
*
|
|
76
71
|
* @example
|
|
77
72
|
* ```ts
|
|
78
73
|
* insert([1, 2, 3], 1, 99); // [1, 99, 3]
|
|
79
74
|
* insert(1, 99)([1, 2, 3]); // [1, 99, 3]
|
|
75
|
+
* insert([1, 2, 3], 10, 99); // throws RangeError
|
|
80
76
|
* ```
|
|
81
|
-
*
|
|
82
|
-
* @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
|
|
83
77
|
*/
|
|
84
78
|
declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
|
|
85
79
|
declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
@@ -101,16 +95,10 @@ declare function insert<T, U extends readonly [unknown, unknown, unknown, unknow
|
|
|
101
95
|
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 8, value: T): U;
|
|
102
96
|
//#endregion
|
|
103
97
|
//#region src/tuple/mapBoth.d.ts
|
|
104
|
-
/**
|
|
105
|
-
* Maps both elements of a homogeneous pair with the same function.
|
|
106
|
-
*/
|
|
107
98
|
declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
108
99
|
/**
|
|
109
100
|
* Maps both elements of a homogeneous pair with the same function.
|
|
110
101
|
*
|
|
111
|
-
* @param fn - Function applied to each element
|
|
112
|
-
* @param tuple - A two-element tuple of the same type
|
|
113
|
-
*
|
|
114
102
|
* @example
|
|
115
103
|
* ```ts
|
|
116
104
|
* mapBoth([1, 2], (n) => n * 2); // [2, 4]
|
|
@@ -122,11 +110,7 @@ declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
|
122
110
|
//#endregion
|
|
123
111
|
//#region src/tuple/mapEach.d.ts
|
|
124
112
|
/**
|
|
125
|
-
* Maps the first and second elements of a pair with
|
|
126
|
-
*
|
|
127
|
-
* @param fnA - Function applied to the first element
|
|
128
|
-
* @param fnB - Function applied to the second element
|
|
129
|
-
* @param tuple - A two-element tuple
|
|
113
|
+
* Maps the first and second elements of a pair with separate functions.
|
|
130
114
|
*
|
|
131
115
|
* @example
|
|
132
116
|
* ```ts
|
|
@@ -138,16 +122,10 @@ declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y)
|
|
|
138
122
|
declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
|
|
139
123
|
//#endregion
|
|
140
124
|
//#region src/tuple/mapFirst.d.ts
|
|
141
|
-
/**
|
|
142
|
-
* Maps the first element of a pair; leaves the second unchanged.
|
|
143
|
-
*/
|
|
144
125
|
declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
145
126
|
/**
|
|
146
127
|
* Maps the first element of a pair; leaves the second unchanged.
|
|
147
128
|
*
|
|
148
|
-
* @param fn - Function applied to the first element
|
|
149
|
-
* @param tuple - A two-element tuple
|
|
150
|
-
*
|
|
151
129
|
* @example
|
|
152
130
|
* ```ts
|
|
153
131
|
* mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
|
|
@@ -161,9 +139,6 @@ declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
|
161
139
|
/**
|
|
162
140
|
* Maps the second element of a pair; leaves the first unchanged.
|
|
163
141
|
*
|
|
164
|
-
* @param fn - Function applied to the second element
|
|
165
|
-
* @param tuple - A two-element tuple (data-first overload).
|
|
166
|
-
*
|
|
167
142
|
* @example
|
|
168
143
|
* ```ts
|
|
169
144
|
* mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
|
|
@@ -176,16 +151,13 @@ declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
|
|
|
176
151
|
//#region src/tuple/second.d.ts
|
|
177
152
|
/**
|
|
178
153
|
* Returns the second element of a tuple with at least two elements.
|
|
179
|
-
*
|
|
180
|
-
* @param tuple - A tuple with at least two elements.
|
|
181
|
-
* @returns The element at index `1`.
|
|
154
|
+
* Throws a range error when the tuple has fewer than two elements.
|
|
182
155
|
*
|
|
183
156
|
* @example
|
|
184
157
|
* ```ts
|
|
185
158
|
* second([1, 2]); // 2
|
|
159
|
+
* second([1]); // throws RangeError
|
|
186
160
|
* ```
|
|
187
|
-
*
|
|
188
|
-
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
189
161
|
*/
|
|
190
162
|
declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
191
163
|
//#endregion
|
|
@@ -193,9 +165,6 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
|
193
165
|
/**
|
|
194
166
|
* Swaps the two elements of a pair.
|
|
195
167
|
*
|
|
196
|
-
* @param data - A two-element tuple.
|
|
197
|
-
* @returns The tuple with elements reversed.
|
|
198
|
-
*
|
|
199
168
|
* @example
|
|
200
169
|
* ```ts
|
|
201
170
|
* swap([1, 'a']); // ['a', 1]
|
|
@@ -203,5 +172,5 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
|
203
172
|
*/
|
|
204
173
|
declare function swap<A, B>(data: [A, B]): [B, A];
|
|
205
174
|
//#endregion
|
|
206
|
-
export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
175
|
+
export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
207
176
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
|
package/dist/tuple/index.d.mts
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
//#region src/tuple/at.d.ts
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* @param tuple - The tuple to get the element from.
|
|
6
|
-
* @param index - The index of the element to get.
|
|
3
|
+
* Gets an element from a tuple by zero-based index.
|
|
4
|
+
* Throws a range error when the index is negative or out of bounds.
|
|
7
5
|
*
|
|
8
6
|
* @example
|
|
9
7
|
* ```ts
|
|
10
|
-
* at(0, [1, 2, 3]) // 1
|
|
11
|
-
* at(1
|
|
12
|
-
* at([1, 2, 3],
|
|
13
|
-
* at([1, 2, 3], 1) // 2
|
|
8
|
+
* at(0, [1, 2, 3]); // 1
|
|
9
|
+
* at(1)([1, 2, 3]); // 2
|
|
10
|
+
* at([1, 2, 3], 10); // throws RangeError
|
|
14
11
|
* ```
|
|
15
|
-
*
|
|
16
|
-
* @throws {RangeError}
|
|
17
12
|
*/
|
|
18
13
|
declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
|
|
19
14
|
declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
|
|
@@ -33,53 +28,52 @@ declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unkn
|
|
|
33
28
|
//#region src/tuple/fanOut.d.ts
|
|
34
29
|
declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
35
30
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @public
|
|
39
|
-
* @category Tuple
|
|
40
|
-
* @param value - The value to apply the functions to.
|
|
41
|
-
* @param fn1 - The first function to apply to the value.
|
|
42
|
-
* @param fn2 - The second function to apply to the value.
|
|
31
|
+
* Applies two functions to the same value and returns the results as a pair.
|
|
43
32
|
*
|
|
44
33
|
* @example
|
|
45
34
|
* ```ts
|
|
46
35
|
* fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
|
|
36
|
+
* fanOut((x) => x * 2, (x) => x + 1)(2); // [4, 3]
|
|
47
37
|
* ```
|
|
48
38
|
*/
|
|
49
39
|
declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
|
|
50
40
|
declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
51
41
|
//#endregion
|
|
52
|
-
//#region src/tuple/
|
|
42
|
+
//#region src/tuple/from.d.ts
|
|
53
43
|
/**
|
|
54
|
-
*
|
|
44
|
+
* Builds a two-element tuple from two values.
|
|
55
45
|
*
|
|
56
|
-
* @
|
|
57
|
-
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* from(1, 'a'); // [1, 'a']
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
declare function from<A, B>(arg1: A, arg2: B): [A, B];
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/tuple/first.d.ts
|
|
54
|
+
/**
|
|
55
|
+
* Returns the first element of a non-empty tuple.
|
|
56
|
+
* Throws a range error when the tuple has fewer than one element.
|
|
58
57
|
*
|
|
59
58
|
* @example
|
|
60
59
|
* ```ts
|
|
61
60
|
* first([1, 2]); // 1
|
|
61
|
+
* first([]); // throws RangeError
|
|
62
62
|
* ```
|
|
63
|
-
*
|
|
64
|
-
* @throws {RangeError} When the tuple has fewer than one element.
|
|
65
63
|
*/
|
|
66
64
|
declare function first<T>(tuple: [T, ...unknown[]]): T;
|
|
67
65
|
//#endregion
|
|
68
66
|
//#region src/tuple/insert.d.ts
|
|
69
67
|
/**
|
|
70
68
|
* Returns a new tuple with the element at `index` replaced by `value`.
|
|
71
|
-
*
|
|
72
|
-
* @param index - Zero-based index of the element to replace.
|
|
73
|
-
* @param value - Replacement value.
|
|
74
|
-
* @param tuple - The source tuple.
|
|
69
|
+
* Throws a range error when `index` is negative or out of bounds.
|
|
75
70
|
*
|
|
76
71
|
* @example
|
|
77
72
|
* ```ts
|
|
78
73
|
* insert([1, 2, 3], 1, 99); // [1, 99, 3]
|
|
79
74
|
* insert(1, 99)([1, 2, 3]); // [1, 99, 3]
|
|
75
|
+
* insert([1, 2, 3], 10, 99); // throws RangeError
|
|
80
76
|
* ```
|
|
81
|
-
*
|
|
82
|
-
* @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
|
|
83
77
|
*/
|
|
84
78
|
declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
|
|
85
79
|
declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
@@ -101,16 +95,10 @@ declare function insert<T, U extends readonly [unknown, unknown, unknown, unknow
|
|
|
101
95
|
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 8, value: T): U;
|
|
102
96
|
//#endregion
|
|
103
97
|
//#region src/tuple/mapBoth.d.ts
|
|
104
|
-
/**
|
|
105
|
-
* Maps both elements of a homogeneous pair with the same function.
|
|
106
|
-
*/
|
|
107
98
|
declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
108
99
|
/**
|
|
109
100
|
* Maps both elements of a homogeneous pair with the same function.
|
|
110
101
|
*
|
|
111
|
-
* @param fn - Function applied to each element
|
|
112
|
-
* @param tuple - A two-element tuple of the same type
|
|
113
|
-
*
|
|
114
102
|
* @example
|
|
115
103
|
* ```ts
|
|
116
104
|
* mapBoth([1, 2], (n) => n * 2); // [2, 4]
|
|
@@ -122,11 +110,7 @@ declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
|
122
110
|
//#endregion
|
|
123
111
|
//#region src/tuple/mapEach.d.ts
|
|
124
112
|
/**
|
|
125
|
-
* Maps the first and second elements of a pair with
|
|
126
|
-
*
|
|
127
|
-
* @param fnA - Function applied to the first element
|
|
128
|
-
* @param fnB - Function applied to the second element
|
|
129
|
-
* @param tuple - A two-element tuple
|
|
113
|
+
* Maps the first and second elements of a pair with separate functions.
|
|
130
114
|
*
|
|
131
115
|
* @example
|
|
132
116
|
* ```ts
|
|
@@ -138,16 +122,10 @@ declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y)
|
|
|
138
122
|
declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
|
|
139
123
|
//#endregion
|
|
140
124
|
//#region src/tuple/mapFirst.d.ts
|
|
141
|
-
/**
|
|
142
|
-
* Maps the first element of a pair; leaves the second unchanged.
|
|
143
|
-
*/
|
|
144
125
|
declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
145
126
|
/**
|
|
146
127
|
* Maps the first element of a pair; leaves the second unchanged.
|
|
147
128
|
*
|
|
148
|
-
* @param fn - Function applied to the first element
|
|
149
|
-
* @param tuple - A two-element tuple
|
|
150
|
-
*
|
|
151
129
|
* @example
|
|
152
130
|
* ```ts
|
|
153
131
|
* mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
|
|
@@ -161,9 +139,6 @@ declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
|
161
139
|
/**
|
|
162
140
|
* Maps the second element of a pair; leaves the first unchanged.
|
|
163
141
|
*
|
|
164
|
-
* @param fn - Function applied to the second element
|
|
165
|
-
* @param tuple - A two-element tuple (data-first overload).
|
|
166
|
-
*
|
|
167
142
|
* @example
|
|
168
143
|
* ```ts
|
|
169
144
|
* mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
|
|
@@ -176,16 +151,13 @@ declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
|
|
|
176
151
|
//#region src/tuple/second.d.ts
|
|
177
152
|
/**
|
|
178
153
|
* Returns the second element of a tuple with at least two elements.
|
|
179
|
-
*
|
|
180
|
-
* @param tuple - A tuple with at least two elements.
|
|
181
|
-
* @returns The element at index `1`.
|
|
154
|
+
* Throws a range error when the tuple has fewer than two elements.
|
|
182
155
|
*
|
|
183
156
|
* @example
|
|
184
157
|
* ```ts
|
|
185
158
|
* second([1, 2]); // 2
|
|
159
|
+
* second([1]); // throws RangeError
|
|
186
160
|
* ```
|
|
187
|
-
*
|
|
188
|
-
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
189
161
|
*/
|
|
190
162
|
declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
191
163
|
//#endregion
|
|
@@ -193,9 +165,6 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
|
193
165
|
/**
|
|
194
166
|
* Swaps the two elements of a pair.
|
|
195
167
|
*
|
|
196
|
-
* @param data - A two-element tuple.
|
|
197
|
-
* @returns The tuple with elements reversed.
|
|
198
|
-
*
|
|
199
168
|
* @example
|
|
200
169
|
* ```ts
|
|
201
170
|
* swap([1, 'a']); // ['a', 1]
|
|
@@ -203,5 +172,5 @@ declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
|
203
172
|
*/
|
|
204
173
|
declare function swap<A, B>(data: [A, B]): [B, A];
|
|
205
174
|
//#endregion
|
|
206
|
-
export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
175
|
+
export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
207
176
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/tuple/at.ts","../../src/tuple/fanOut.ts","../../src/tuple/from.ts","../../src/tuple/first.ts","../../src/tuple/insert.ts","../../src/tuple/mapBoth.ts","../../src/tuple/mapEach.ts","../../src/tuple/mapFirst.ts","../../src/tuple/mapSecond.ts","../../src/tuple/second.ts","../../src/tuple/swap.ts"],"mappings":"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"}
|
package/dist/tuple/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as purry } from "../purry-
|
|
1
|
+
import { t as purry } from "../purry-DXnhXie9.mjs";
|
|
2
2
|
//#region src/tuple/at.ts
|
|
3
3
|
function at2Implementation(tuple, index) {
|
|
4
4
|
if (index < 0) throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);
|
|
@@ -17,19 +17,29 @@ function fanOut(...args) {
|
|
|
17
17
|
return purry(fanOutImplementation, args);
|
|
18
18
|
}
|
|
19
19
|
//#endregion
|
|
20
|
-
//#region src/tuple/
|
|
20
|
+
//#region src/tuple/from.ts
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* Builds a two-element tuple from two values.
|
|
23
23
|
*
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* from(1, 'a'); // [1, 'a']
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function from(arg1, arg2) {
|
|
30
|
+
return [arg1, arg2];
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/tuple/first.ts
|
|
34
|
+
/**
|
|
35
|
+
* Returns the first element of a non-empty tuple.
|
|
36
|
+
* Throws a range error when the tuple has fewer than one element.
|
|
26
37
|
*
|
|
27
38
|
* @example
|
|
28
39
|
* ```ts
|
|
29
40
|
* first([1, 2]); // 1
|
|
41
|
+
* first([]); // throws RangeError
|
|
30
42
|
* ```
|
|
31
|
-
*
|
|
32
|
-
* @throws {RangeError} When the tuple has fewer than one element.
|
|
33
43
|
*/
|
|
34
44
|
function first(tuple) {
|
|
35
45
|
if (tuple.length < 1) throw new RangeError("Tuple.first() :: received a tuple with less than 1 element");
|
|
@@ -45,9 +55,6 @@ function insert(...args) {
|
|
|
45
55
|
}
|
|
46
56
|
//#endregion
|
|
47
57
|
//#region src/tuple/mapBoth.ts
|
|
48
|
-
/**
|
|
49
|
-
* Maps both elements of a homogeneous pair with the same function.
|
|
50
|
-
*/
|
|
51
58
|
function mapBothImplementation(tuple, fn) {
|
|
52
59
|
return [fn(tuple[0]), fn(tuple[1])];
|
|
53
60
|
}
|
|
@@ -64,9 +71,6 @@ function mapEach(...args) {
|
|
|
64
71
|
}
|
|
65
72
|
//#endregion
|
|
66
73
|
//#region src/tuple/mapFirst.ts
|
|
67
|
-
/**
|
|
68
|
-
* Maps the first element of a pair; leaves the second unchanged.
|
|
69
|
-
*/
|
|
70
74
|
function mapFirstImplementation(tuple, fn) {
|
|
71
75
|
return [fn(tuple[0]), tuple[1]];
|
|
72
76
|
}
|
|
@@ -85,16 +89,13 @@ function mapSecond(...args) {
|
|
|
85
89
|
//#region src/tuple/second.ts
|
|
86
90
|
/**
|
|
87
91
|
* Returns the second element of a tuple with at least two elements.
|
|
88
|
-
*
|
|
89
|
-
* @param tuple - A tuple with at least two elements.
|
|
90
|
-
* @returns The element at index `1`.
|
|
92
|
+
* Throws a range error when the tuple has fewer than two elements.
|
|
91
93
|
*
|
|
92
94
|
* @example
|
|
93
95
|
* ```ts
|
|
94
96
|
* second([1, 2]); // 2
|
|
97
|
+
* second([1]); // throws RangeError
|
|
95
98
|
* ```
|
|
96
|
-
*
|
|
97
|
-
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
98
99
|
*/
|
|
99
100
|
function second(tuple) {
|
|
100
101
|
if (tuple.length < 2) throw new RangeError("Tuple.second() :: received a tuple with less than 2 elements");
|
|
@@ -105,9 +106,6 @@ function second(tuple) {
|
|
|
105
106
|
/**
|
|
106
107
|
* Swaps the two elements of a pair.
|
|
107
108
|
*
|
|
108
|
-
* @param data - A two-element tuple.
|
|
109
|
-
* @returns The tuple with elements reversed.
|
|
110
|
-
*
|
|
111
109
|
* @example
|
|
112
110
|
* ```ts
|
|
113
111
|
* swap([1, 'a']); // ['a', 1]
|
|
@@ -117,6 +115,6 @@ function swap(data) {
|
|
|
117
115
|
return [data[1], data[0]];
|
|
118
116
|
}
|
|
119
117
|
//#endregion
|
|
120
|
-
export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
118
|
+
export { at, fanOut, fanOutImplementation, first, from, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
121
119
|
|
|
122
120
|
//# sourceMappingURL=index.mjs.map
|