@ts-fns/stdlib 0.1.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/LICENSE +7 -0
- package/README.md +132 -0
- package/dist/array/index.cjs +551 -0
- package/dist/array/index.cjs.map +1 -0
- package/dist/array/index.d.cts +334 -0
- package/dist/array/index.d.cts.map +1 -0
- package/dist/array/index.d.mts +334 -0
- package/dist/array/index.d.mts.map +1 -0
- package/dist/array/index.mjs +498 -0
- package/dist/array/index.mjs.map +1 -0
- package/dist/errors-CJsLpYo9.d.cts +25 -0
- package/dist/errors-CJsLpYo9.d.cts.map +1 -0
- package/dist/errors-CJsLpYo9.d.mts +25 -0
- package/dist/errors-CJsLpYo9.d.mts.map +1 -0
- package/dist/errors-Dw1kitu_.mjs +39 -0
- package/dist/errors-Dw1kitu_.mjs.map +1 -0
- package/dist/errors-O-d_Vemi.cjs +74 -0
- package/dist/errors-O-d_Vemi.cjs.map +1 -0
- package/dist/function/index.cjs +15 -0
- package/dist/function/index.d.cts +107 -0
- package/dist/function/index.d.cts.map +1 -0
- package/dist/function/index.d.mts +107 -0
- package/dist/function/index.d.mts.map +1 -0
- package/dist/function/index.mjs +3 -0
- package/dist/function-CB82a2GS.cjs +186 -0
- package/dist/function-CB82a2GS.cjs.map +1 -0
- package/dist/function-DnI2v0p3.mjs +121 -0
- package/dist/function-DnI2v0p3.mjs.map +1 -0
- package/dist/get-CWL_cu6G.mjs +27 -0
- package/dist/get-CWL_cu6G.mjs.map +1 -0
- package/dist/get-yrs1Kqho.cjs +38 -0
- package/dist/get-yrs1Kqho.cjs.map +1 -0
- package/dist/guard/index.cjs +43 -0
- package/dist/guard/index.cjs.map +1 -0
- package/dist/guard/index.d.cts +52 -0
- package/dist/guard/index.d.cts.map +1 -0
- package/dist/guard/index.d.mts +52 -0
- package/dist/guard/index.d.mts.map +1 -0
- package/dist/guard/index.mjs +40 -0
- package/dist/guard/index.mjs.map +1 -0
- package/dist/index-BJlKyBJH.d.cts +18 -0
- package/dist/index-BJlKyBJH.d.cts.map +1 -0
- package/dist/index-DGrnGMDt.d.mts +18 -0
- package/dist/index-DGrnGMDt.d.mts.map +1 -0
- package/dist/isNotNil-DrF-ohem.cjs +28 -0
- package/dist/isNotNil-DrF-ohem.cjs.map +1 -0
- package/dist/isNotNil-R5f1hC53.mjs +23 -0
- package/dist/isNotNil-R5f1hC53.mjs.map +1 -0
- package/dist/iterator/index.cjs +160 -0
- package/dist/iterator/index.cjs.map +1 -0
- package/dist/iterator/index.d.cts +71 -0
- package/dist/iterator/index.d.cts.map +1 -0
- package/dist/iterator/index.d.mts +71 -0
- package/dist/iterator/index.d.mts.map +1 -0
- package/dist/iterator/index.mjs +148 -0
- package/dist/iterator/index.mjs.map +1 -0
- package/dist/lens/index.cjs +199 -0
- package/dist/lens/index.cjs.map +1 -0
- package/dist/lens/index.d.cts +109 -0
- package/dist/lens/index.d.cts.map +1 -0
- package/dist/lens/index.d.mts +109 -0
- package/dist/lens/index.d.mts.map +1 -0
- package/dist/lens/index.mjs +187 -0
- package/dist/lens/index.mjs.map +1 -0
- package/dist/map/index.cjs +86 -0
- package/dist/map/index.cjs.map +1 -0
- package/dist/map/index.d.cts +41 -0
- package/dist/map/index.d.cts.map +1 -0
- package/dist/map/index.d.mts +41 -0
- package/dist/map/index.d.mts.map +1 -0
- package/dist/map/index.mjs +75 -0
- package/dist/map/index.mjs.map +1 -0
- package/dist/number/index.cjs +179 -0
- package/dist/number/index.cjs.map +1 -0
- package/dist/number/index.d.cts +112 -0
- package/dist/number/index.d.cts.map +1 -0
- package/dist/number/index.d.mts +112 -0
- package/dist/number/index.d.mts.map +1 -0
- package/dist/number/index.mjs +159 -0
- package/dist/number/index.mjs.map +1 -0
- package/dist/object/index.cjs +190 -0
- package/dist/object/index.cjs.map +1 -0
- package/dist/object/index.d.cts +118 -0
- package/dist/object/index.d.cts.map +1 -0
- package/dist/object/index.d.mts +118 -0
- package/dist/object/index.d.mts.map +1 -0
- package/dist/object/index.mjs +169 -0
- package/dist/object/index.mjs.map +1 -0
- package/dist/orThrow-V91Jw2lF.mjs +15 -0
- package/dist/orThrow-V91Jw2lF.mjs.map +1 -0
- package/dist/orThrow-ejzcQYAI.cjs +20 -0
- package/dist/orThrow-ejzcQYAI.cjs.map +1 -0
- package/dist/order/index.cjs +50 -0
- package/dist/order/index.cjs.map +1 -0
- package/dist/order/index.d.cts +3 -0
- package/dist/order/index.d.mts +3 -0
- package/dist/order/index.mjs +42 -0
- package/dist/order/index.mjs.map +1 -0
- package/dist/order.constants-BWSCg3C7.d.cts +11 -0
- package/dist/order.constants-BWSCg3C7.d.cts.map +1 -0
- package/dist/order.constants-BWSCg3C7.d.mts +11 -0
- package/dist/order.constants-BWSCg3C7.d.mts.map +1 -0
- package/dist/purry-B2_0DGLV.cjs +28 -0
- package/dist/purry-B2_0DGLV.cjs.map +1 -0
- package/dist/purry-BOWmqwDB.mjs +23 -0
- package/dist/purry-BOWmqwDB.mjs.map +1 -0
- package/dist/set/index.cjs +131 -0
- package/dist/set/index.cjs.map +1 -0
- package/dist/set/index.d.cts +61 -0
- package/dist/set/index.d.cts.map +1 -0
- package/dist/set/index.d.mts +61 -0
- package/dist/set/index.d.mts.map +1 -0
- package/dist/set/index.mjs +115 -0
- package/dist/set/index.mjs.map +1 -0
- package/dist/string/index.cjs +288 -0
- package/dist/string/index.cjs.map +1 -0
- package/dist/string/index.d.cts +144 -0
- package/dist/string/index.d.cts.map +1 -0
- package/dist/string/index.d.mts +144 -0
- package/dist/string/index.d.mts.map +1 -0
- package/dist/string/index.mjs +254 -0
- package/dist/string/index.mjs.map +1 -0
- package/dist/tuple/index.cjs +135 -0
- package/dist/tuple/index.cjs.map +1 -0
- package/dist/tuple/index.d.cts +207 -0
- package/dist/tuple/index.d.cts.map +1 -0
- package/dist/tuple/index.d.mts +207 -0
- package/dist/tuple/index.d.mts.map +1 -0
- package/dist/tuple/index.mjs +122 -0
- package/dist/tuple/index.mjs.map +1 -0
- package/dist/types-D8f67ZCe.d.cts +54 -0
- package/dist/types-D8f67ZCe.d.cts.map +1 -0
- package/dist/types-D8f67ZCe.d.mts +54 -0
- package/dist/types-D8f67ZCe.d.mts.map +1 -0
- package/package.json +177 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_purry = require("../purry-B2_0DGLV.cjs");
|
|
3
|
+
//#region src/tuple/at.ts
|
|
4
|
+
function at2Implementation(tuple, index) {
|
|
5
|
+
if (index < 0) throw new RangeError(`Tuple.at() :: ${index} must be a positive integer`);
|
|
6
|
+
if (index >= tuple.length) throw new RangeError(`Tuple.at() :: ${index} is out of bounds`);
|
|
7
|
+
return tuple[index];
|
|
8
|
+
}
|
|
9
|
+
function at(...args) {
|
|
10
|
+
return require_purry.purry(at2Implementation, args);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/tuple/fanOut.ts
|
|
14
|
+
function fanOutImplementation(value, fn1, fn2) {
|
|
15
|
+
return [fn1(value), fn2(value)];
|
|
16
|
+
}
|
|
17
|
+
function fanOut(...args) {
|
|
18
|
+
return require_purry.purry(fanOutImplementation, args);
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/tuple/first.ts
|
|
22
|
+
/**
|
|
23
|
+
* Returns the first element of a tuple with at least one element.
|
|
24
|
+
*
|
|
25
|
+
* @param tuple - A non-empty tuple.
|
|
26
|
+
* @returns The element at index `0`.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* first([1, 2]); // 1
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @throws {RangeError} When the tuple has fewer than one element.
|
|
34
|
+
*/
|
|
35
|
+
function first(tuple) {
|
|
36
|
+
if (tuple.length < 1) throw new RangeError("Tuple.first() :: received a tuple with less than 1 element");
|
|
37
|
+
return tuple[0];
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/tuple/insert.ts
|
|
41
|
+
function updateImplementation(tuple, index, value) {
|
|
42
|
+
return tuple.with(index, value);
|
|
43
|
+
}
|
|
44
|
+
function insert(...args) {
|
|
45
|
+
return require_purry.purry(updateImplementation, args);
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region src/tuple/mapBoth.ts
|
|
49
|
+
/**
|
|
50
|
+
* Maps both elements of a homogeneous pair with the same function.
|
|
51
|
+
*/
|
|
52
|
+
function mapBothImplementation(tuple, fn) {
|
|
53
|
+
return [fn(tuple[0]), fn(tuple[1])];
|
|
54
|
+
}
|
|
55
|
+
function mapBoth(...args) {
|
|
56
|
+
return require_purry.purry(mapBothImplementation, args);
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/tuple/mapEach.ts
|
|
60
|
+
function mapEachImplementation(tuple, fnA, fnB) {
|
|
61
|
+
return [fnA(tuple[0]), fnB(tuple[1])];
|
|
62
|
+
}
|
|
63
|
+
function mapEach(...args) {
|
|
64
|
+
return require_purry.purry(mapEachImplementation, args);
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/tuple/mapFirst.ts
|
|
68
|
+
/**
|
|
69
|
+
* Maps the first element of a pair; leaves the second unchanged.
|
|
70
|
+
*/
|
|
71
|
+
function mapFirstImplementation(tuple, fn) {
|
|
72
|
+
return [fn(tuple[0]), tuple[1]];
|
|
73
|
+
}
|
|
74
|
+
function mapFirst(...args) {
|
|
75
|
+
return require_purry.purry(mapFirstImplementation, args);
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/tuple/mapSecond.ts
|
|
79
|
+
function mapSecondImplementation(tuple, fn) {
|
|
80
|
+
return [tuple[0], fn(tuple[1])];
|
|
81
|
+
}
|
|
82
|
+
function mapSecond(...args) {
|
|
83
|
+
return require_purry.purry(mapSecondImplementation, args);
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/tuple/second.ts
|
|
87
|
+
/**
|
|
88
|
+
* Returns the second element of a tuple with at least two elements.
|
|
89
|
+
*
|
|
90
|
+
* @param tuple - A tuple with at least two elements.
|
|
91
|
+
* @returns The element at index `1`.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* second([1, 2]); // 2
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
99
|
+
*/
|
|
100
|
+
function second(tuple) {
|
|
101
|
+
if (tuple.length < 2) throw new RangeError("Tuple.second() :: received a tuple with less than 2 elements");
|
|
102
|
+
return tuple[1];
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/tuple/swap.ts
|
|
106
|
+
/**
|
|
107
|
+
* Swaps the two elements of a pair.
|
|
108
|
+
*
|
|
109
|
+
* @param data - A two-element tuple.
|
|
110
|
+
* @returns The tuple with elements reversed.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* swap([1, 'a']); // ['a', 1]
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
function swap(data) {
|
|
118
|
+
return [data[1], data[0]];
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
exports.at = at;
|
|
122
|
+
exports.fanOut = fanOut;
|
|
123
|
+
exports.fanOutImplementation = fanOutImplementation;
|
|
124
|
+
exports.first = first;
|
|
125
|
+
exports.insert = insert;
|
|
126
|
+
exports.mapBoth = mapBoth;
|
|
127
|
+
exports.mapBothImplementation = mapBothImplementation;
|
|
128
|
+
exports.mapEach = mapEach;
|
|
129
|
+
exports.mapFirst = mapFirst;
|
|
130
|
+
exports.mapFirstImplementation = mapFirstImplementation;
|
|
131
|
+
exports.mapSecond = mapSecond;
|
|
132
|
+
exports.second = second;
|
|
133
|
+
exports.swap = swap;
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
//#region src/tuple/at.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Get an element from a tuple by index.
|
|
4
|
+
*
|
|
5
|
+
* @param tuple - The tuple to get the element from.
|
|
6
|
+
* @param index - The index of the element to get.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* at(0, [1, 2, 3]) // 1
|
|
11
|
+
* at(1, [1, 2, 3]) // 2
|
|
12
|
+
* at([1, 2, 3], 0) // 1
|
|
13
|
+
* at([1, 2, 3], 1) // 2
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @throws {RangeError}
|
|
17
|
+
*/
|
|
18
|
+
declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
|
|
19
|
+
declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
|
|
20
|
+
declare function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;
|
|
21
|
+
declare function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
22
|
+
declare function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
23
|
+
declare function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
24
|
+
declare function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
25
|
+
declare function at<T>(tuple: [T, ...unknown[]], index: 0): T;
|
|
26
|
+
declare function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;
|
|
27
|
+
declare function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;
|
|
28
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;
|
|
29
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;
|
|
30
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;
|
|
31
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/tuple/fanOut.d.ts
|
|
34
|
+
declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
35
|
+
/**
|
|
36
|
+
* Takes a value and two functions and returns a tuple of the results of the functions.
|
|
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.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
|
|
50
|
+
declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/tuple/first.d.ts
|
|
53
|
+
/**
|
|
54
|
+
* Returns the first element of a tuple with at least one element.
|
|
55
|
+
*
|
|
56
|
+
* @param tuple - A non-empty tuple.
|
|
57
|
+
* @returns The element at index `0`.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* first([1, 2]); // 1
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @throws {RangeError} When the tuple has fewer than one element.
|
|
65
|
+
*/
|
|
66
|
+
declare function first<T>(tuple: [T, ...unknown[]]): T;
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/tuple/insert.d.ts
|
|
69
|
+
/**
|
|
70
|
+
* 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.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* insert([1, 2, 3], 1, 99); // [1, 99, 3]
|
|
79
|
+
* insert(1, 99)([1, 2, 3]); // [1, 99, 3]
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
|
|
83
|
+
*/
|
|
84
|
+
declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
|
|
85
|
+
declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
86
|
+
declare function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
87
|
+
declare function insert<T>(index: 3, value: T): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
88
|
+
declare function insert<T>(index: 4, value: T): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
89
|
+
declare function insert<T>(index: 5, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
90
|
+
declare function insert<T>(index: 6, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
91
|
+
declare function insert<T>(index: 7, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
92
|
+
declare function insert<T>(index: 8, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
93
|
+
declare function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;
|
|
94
|
+
declare function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;
|
|
95
|
+
declare function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;
|
|
96
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 3, value: T): U;
|
|
97
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 4, value: T): U;
|
|
98
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 5, value: T): U;
|
|
99
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 6, value: T): U;
|
|
100
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 7, value: T): U;
|
|
101
|
+
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
|
+
//#endregion
|
|
103
|
+
//#region src/tuple/mapBoth.d.ts
|
|
104
|
+
/**
|
|
105
|
+
* Maps both elements of a homogeneous pair with the same function.
|
|
106
|
+
*/
|
|
107
|
+
declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
108
|
+
/**
|
|
109
|
+
* Maps both elements of a homogeneous pair with the same function.
|
|
110
|
+
*
|
|
111
|
+
* @param fn - Function applied to each element
|
|
112
|
+
* @param tuple - A two-element tuple of the same type
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* mapBoth([1, 2], (n) => n * 2); // [2, 4]
|
|
117
|
+
* mapBoth((n) => n * 2)([1, 2]); // [2, 4]
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
declare function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];
|
|
121
|
+
declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
122
|
+
//#endregion
|
|
123
|
+
//#region src/tuple/mapEach.d.ts
|
|
124
|
+
/**
|
|
125
|
+
* Maps the first and second elements of a pair with two functions.
|
|
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
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']
|
|
134
|
+
* mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];
|
|
138
|
+
declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/tuple/mapFirst.d.ts
|
|
141
|
+
/**
|
|
142
|
+
* Maps the first element of a pair; leaves the second unchanged.
|
|
143
|
+
*/
|
|
144
|
+
declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
145
|
+
/**
|
|
146
|
+
* Maps the first element of a pair; leaves the second unchanged.
|
|
147
|
+
*
|
|
148
|
+
* @param fn - Function applied to the first element
|
|
149
|
+
* @param tuple - A two-element tuple
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
|
|
154
|
+
* mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
declare function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];
|
|
158
|
+
declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region src/tuple/mapSecond.d.ts
|
|
161
|
+
/**
|
|
162
|
+
* Maps the second element of a pair; leaves the first unchanged.
|
|
163
|
+
*
|
|
164
|
+
* @param fn - Function applied to the second element
|
|
165
|
+
* @param tuple - A two-element tuple (data-first overload).
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
|
|
170
|
+
* mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
declare function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];
|
|
174
|
+
declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region src/tuple/second.d.ts
|
|
177
|
+
/**
|
|
178
|
+
* 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`.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```ts
|
|
185
|
+
* second([1, 2]); // 2
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
189
|
+
*/
|
|
190
|
+
declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
191
|
+
//#endregion
|
|
192
|
+
//#region src/tuple/swap.d.ts
|
|
193
|
+
/**
|
|
194
|
+
* Swaps the two elements of a pair.
|
|
195
|
+
*
|
|
196
|
+
* @param data - A two-element tuple.
|
|
197
|
+
* @returns The tuple with elements reversed.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* swap([1, 'a']); // ['a', 1]
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
declare function swap<A, B>(data: [A, B]): [B, A];
|
|
205
|
+
//#endregion
|
|
206
|
+
export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
207
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +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":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
//#region src/tuple/at.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Get an element from a tuple by index.
|
|
4
|
+
*
|
|
5
|
+
* @param tuple - The tuple to get the element from.
|
|
6
|
+
* @param index - The index of the element to get.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* at(0, [1, 2, 3]) // 1
|
|
11
|
+
* at(1, [1, 2, 3]) // 2
|
|
12
|
+
* at([1, 2, 3], 0) // 1
|
|
13
|
+
* at([1, 2, 3], 1) // 2
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @throws {RangeError}
|
|
17
|
+
*/
|
|
18
|
+
declare function at<T>(index: 0): (tuple: [T, ...unknown[]]) => T;
|
|
19
|
+
declare function at<T>(index: 1): (tuple: [unknown, T, ...unknown[]]) => T;
|
|
20
|
+
declare function at<T>(index: 2): (tuple: [unknown, unknown, T, ...unknown[]]) => T;
|
|
21
|
+
declare function at<T>(index: 3): (tuple: [unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
22
|
+
declare function at<T>(index: 4): (tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
23
|
+
declare function at<T>(index: 5): (tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
24
|
+
declare function at<T>(index: 6): (tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]) => T;
|
|
25
|
+
declare function at<T>(tuple: [T, ...unknown[]], index: 0): T;
|
|
26
|
+
declare function at<T>(tuple: [unknown, T, ...unknown[]], index: 1): T;
|
|
27
|
+
declare function at<T>(tuple: [unknown, unknown, T, ...unknown[]], index: 2): T;
|
|
28
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, T, ...unknown[]], index: 3): T;
|
|
29
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, T, ...unknown[]], index: 4): T;
|
|
30
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 5): T;
|
|
31
|
+
declare function at<T>(tuple: [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]], index: 6): T;
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/tuple/fanOut.d.ts
|
|
34
|
+
declare function fanOutImplementation<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
35
|
+
/**
|
|
36
|
+
* Takes a value and two functions and returns a tuple of the results of the functions.
|
|
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.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* fanOut((x) => x * 2, (x) => x + 1, 2); // [4, 3]
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
declare function fanOut<A, C, D>(fn1: (value: A) => C, fn2: (value: A) => D): (value: A) => [C, D];
|
|
50
|
+
declare function fanOut<A, C, D>(value: A, fn1: (value: A) => C, fn2: (value: A) => D): [C, D];
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/tuple/first.d.ts
|
|
53
|
+
/**
|
|
54
|
+
* Returns the first element of a tuple with at least one element.
|
|
55
|
+
*
|
|
56
|
+
* @param tuple - A non-empty tuple.
|
|
57
|
+
* @returns The element at index `0`.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* first([1, 2]); // 1
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @throws {RangeError} When the tuple has fewer than one element.
|
|
65
|
+
*/
|
|
66
|
+
declare function first<T>(tuple: [T, ...unknown[]]): T;
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/tuple/insert.d.ts
|
|
69
|
+
/**
|
|
70
|
+
* 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.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```ts
|
|
78
|
+
* insert([1, 2, 3], 1, 99); // [1, 99, 3]
|
|
79
|
+
* insert(1, 99)([1, 2, 3]); // [1, 99, 3]
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @throws {RangeError} When `index` is negative or out of bounds (from the underlying `with` call).
|
|
83
|
+
*/
|
|
84
|
+
declare function insert<T>(index: 0, value: T): <U extends readonly [T, ...unknown[]]>(tuple: U) => U;
|
|
85
|
+
declare function insert<T>(index: 1, value: T): <U extends readonly [unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
86
|
+
declare function insert<T>(index: 2, value: T): <U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
87
|
+
declare function insert<T>(index: 3, value: T): <U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
88
|
+
declare function insert<T>(index: 4, value: T): <U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
89
|
+
declare function insert<T>(index: 5, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
90
|
+
declare function insert<T>(index: 6, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
91
|
+
declare function insert<T>(index: 7, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
92
|
+
declare function insert<T>(index: 8, value: T): <U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U) => U;
|
|
93
|
+
declare function insert<T, U extends readonly [T, ...unknown[]]>(tuple: U, index: 0, value: T): U;
|
|
94
|
+
declare function insert<T, U extends readonly [unknown, T, ...unknown[]]>(tuple: U, index: 1, value: T): U;
|
|
95
|
+
declare function insert<T, U extends readonly [unknown, unknown, T, ...unknown[]]>(tuple: U, index: 2, value: T): U;
|
|
96
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 3, value: T): U;
|
|
97
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 4, value: T): U;
|
|
98
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 5, value: T): U;
|
|
99
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 6, value: T): U;
|
|
100
|
+
declare function insert<T, U extends readonly [unknown, unknown, unknown, unknown, unknown, unknown, unknown, T, ...unknown[]]>(tuple: U, index: 7, value: T): U;
|
|
101
|
+
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
|
+
//#endregion
|
|
103
|
+
//#region src/tuple/mapBoth.d.ts
|
|
104
|
+
/**
|
|
105
|
+
* Maps both elements of a homogeneous pair with the same function.
|
|
106
|
+
*/
|
|
107
|
+
declare function mapBothImplementation<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
108
|
+
/**
|
|
109
|
+
* Maps both elements of a homogeneous pair with the same function.
|
|
110
|
+
*
|
|
111
|
+
* @param fn - Function applied to each element
|
|
112
|
+
* @param tuple - A two-element tuple of the same type
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* mapBoth([1, 2], (n) => n * 2); // [2, 4]
|
|
117
|
+
* mapBoth((n) => n * 2)([1, 2]); // [2, 4]
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
declare function mapBoth<T, U>(fn: (value: T) => U): (tuple: [T, T]) => [U, U];
|
|
121
|
+
declare function mapBoth<T, U>(tuple: [T, T], fn: (value: T) => U): [U, U];
|
|
122
|
+
//#endregion
|
|
123
|
+
//#region src/tuple/mapEach.d.ts
|
|
124
|
+
/**
|
|
125
|
+
* Maps the first and second elements of a pair with two functions.
|
|
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
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```ts
|
|
133
|
+
* mapEach([1, 'a'], String, (s) => s.toUpperCase()); // ['1', 'A']
|
|
134
|
+
* mapEach(String, (s) => s.toUpperCase())([1, 'a']); // ['1', 'A']
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
declare function mapEach<A, B, X, Y>(fnA: (value: A) => X, fnB: (value: B) => Y): (tuple: [A, B]) => [X, Y];
|
|
138
|
+
declare function mapEach<A, B, X, Y>(tuple: [A, B], fnA: (value: A) => X, fnB: (value: B) => Y): [X, Y];
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/tuple/mapFirst.d.ts
|
|
141
|
+
/**
|
|
142
|
+
* Maps the first element of a pair; leaves the second unchanged.
|
|
143
|
+
*/
|
|
144
|
+
declare function mapFirstImplementation<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
145
|
+
/**
|
|
146
|
+
* Maps the first element of a pair; leaves the second unchanged.
|
|
147
|
+
*
|
|
148
|
+
* @param fn - Function applied to the first element
|
|
149
|
+
* @param tuple - A two-element tuple
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* mapFirst([1, 'a'], (n) => n + 1); // [2, 'a']
|
|
154
|
+
* mapFirst((n) => n + 1)([1, 'a']); // [2, 'a']
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
declare function mapFirst<A, B, X>(fn: (value: A) => X): (tuple: [A, B]) => [X, B];
|
|
158
|
+
declare function mapFirst<A, B, X>(tuple: [A, B], fn: (value: A) => X): [X, B];
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region src/tuple/mapSecond.d.ts
|
|
161
|
+
/**
|
|
162
|
+
* Maps the second element of a pair; leaves the first unchanged.
|
|
163
|
+
*
|
|
164
|
+
* @param fn - Function applied to the second element
|
|
165
|
+
* @param tuple - A two-element tuple (data-first overload).
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* mapSecond([1, 'a'], (s) => s.toUpperCase()); // [1, 'A']
|
|
170
|
+
* mapSecond((s) => s.toUpperCase())([1, 'a']); // [1, 'A']
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
declare function mapSecond<A, B, Y>(fn: (value: B) => Y): (tuple: [A, B]) => [A, Y];
|
|
174
|
+
declare function mapSecond<A, B, Y>(tuple: [A, B], fn: (value: B) => Y): [A, Y];
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region src/tuple/second.d.ts
|
|
177
|
+
/**
|
|
178
|
+
* 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`.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```ts
|
|
185
|
+
* second([1, 2]); // 2
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @throws {RangeError} When the tuple has fewer than two elements.
|
|
189
|
+
*/
|
|
190
|
+
declare function second<T>(tuple: [unknown, T, ...unknown[]]): T;
|
|
191
|
+
//#endregion
|
|
192
|
+
//#region src/tuple/swap.d.ts
|
|
193
|
+
/**
|
|
194
|
+
* Swaps the two elements of a pair.
|
|
195
|
+
*
|
|
196
|
+
* @param data - A two-element tuple.
|
|
197
|
+
* @returns The tuple with elements reversed.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* swap([1, 'a']); // ['a', 1]
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
declare function swap<A, B>(data: [A, B]): [B, A];
|
|
205
|
+
//#endregion
|
|
206
|
+
export { at, fanOut, fanOutImplementation, first, insert, mapBoth, mapBothImplementation, mapEach, mapFirst, mapFirstImplementation, mapSecond, second, swap };
|
|
207
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +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":";;AA6BA;;;;;;;;;;AAAgE;AAChE;;;;iBADgB,EAAA,IAAM,KAAA,OAAY,KAAA,GAAQ,CAAA,oBAAqB,CAAC;AAAA,iBAChD,EAAA,IAAM,KAAA,OAAY,KAAA,YAAiB,CAAA,oBAAqB,CAAC;AAAA,iBACzD,EAAA,IAAM,KAAA,OAAY,KAAA,qBAA0B,CAAA,oBAAqB,CAAC;AAAA,iBAClE,EAAA,IAAM,KAAA,OAAY,KAAA,8BAAmC,CAAA,oBAAqB,CAAC;AAAA,iBAC3E,EAAA,IAAM,KAAA,OAAY,KAAA,uCAA4C,CAAA,oBAAqB,CAAC;AAAA,iBACpF,EAAA,IAAM,KAAA,OAAY,KAAA,gDAAqD,CAAA,oBAAqB,CAAC;AAAA,iBAC7F,EAAA,IAAM,KAAA,OAAY,KAAA,yDAA8D,CAAA,oBAAqB,CAAC;AAAA,iBACtG,EAAA,IAAM,KAAA,GAAQ,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBAC5C,EAAA,IAAM,KAAA,YAAiB,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBACrD,EAAA,IAAM,KAAA,qBAA0B,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBAC9D,EAAA,IAAM,KAAA,8BAAmC,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBACvE,EAAA,IAAM,KAAA,uCAA4C,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBAChF,EAAA,IAAM,KAAA,gDAAqD,CAAA,iBAAkB,KAAA,MAAW,CAAC;AAAA,iBACzF,EAAA,IAAM,KAAA,yDAA8D,CAAA,iBAAkB,KAAA,MAAW,CAAC;;;iBCxClG,oBAAA,UAA8B,KAAA,EAAO,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;AD2BzG;;;;;;;;;;AAAgE;AAChE;;;AADA,iBCTgB,MAAA,UAAgB,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,EAAO,CAAA,MAAO,CAAA,EAAG,CAAA;AAAA,iBAC/E,MAAA,UAAgB,KAAA,EAAO,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;ADQ3F;;;;;;;;;;AAAgE;AAChE;iBEjBgB,KAAA,IAAS,KAAA,GAAQ,CAAA,kBAAmB,CAAC;;;;AFgBrD;;;;;;;;;;AAAgE;AAChE;;;iBGRgB,MAAA,IAAU,KAAA,KAAU,KAAA,EAAO,CAAA,wBAAyB,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBACnF,MAAA,IAAU,KAAA,KAAU,KAAA,EAAO,CAAA,iCAAkC,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBAC5F,MAAA,IAAU,KAAA,KAAU,KAAA,EAAO,CAAA,0CAA2C,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBACrG,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,mDAC0C,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBAClE,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,4DACmD,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBAC3E,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,qEAC4D,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBACpF,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,8EACqE,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBAC7F,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,uFAC8E,CAAA,iBAAkB,KAAA,EAAO,CAAA,KAAM,CAAA;AAAA,iBACtG,MAAA,IACd,KAAA,KACA,KAAA,EAAO,CAAA,gGACuF,CAAA,iBAC9F,KAAA,EAAO,CAAA,KACJ,CAAA;AAAA,iBACW,MAAA,wBAA8B,CAAA,iBAAkB,KAAA,EAAO,CAAA,EAAG,KAAA,KAAU,KAAA,EAAO,CAAA,GAAI,CAAA;AAAA,iBAC/E,MAAA,iCAAuC,CAAA,iBAAkB,KAAA,EAAO,CAAA,EAAG,KAAA,KAAU,KAAA,EAAO,CAAA,GAAI,CAAA;AAAA,iBACxF,MAAA,0CAAgD,CAAA,iBAAkB,KAAA,EAAO,CAAA,EAAG,KAAA,KAAU,KAAA,EAAO,CAAA,GAAI,CAAA;AAAA,iBACjG,MAAA,mDAAyD,CAAA,iBACvE,KAAA,EAAO,CAAA,EACP,KAAA,KACA,KAAA,EAAO,CAAA,GACN,CAAA;AAAA,iBACa,MAAA,4DAAkE,CAAA,iBAChF,KAAA,EAAO,CAAA,EACP,KAAA,KACA,KAAA,EAAO,CAAA,GACN,CAAA;AAAA,iBACa,MAAA,qEAA2E,CAAA,iBACzF,KAAA,EAAO,CAAA,EACP,KAAA,KACA,KAAA,EAAO,CAAA,GACN,CAAA;AAAA,iBACa,MAAA,8EAAoF,CAAA,iBAClG,KAAA,EAAO,CAAA,EACP,KAAA,KACA,KAAA,EAAO,CAAA,GACN,CAAA;AAAA,iBACa,MAAA,uFAEqE,CAAA,iBACnF,KAAA,EAAO,CAAA,EAAG,KAAA,KAAU,KAAA,EAAO,CAAA,GAAI,CAAA;AAAA,iBACjB,MAAA,gGAE8E,CAAA,iBAC5F,KAAA,EAAO,CAAA,EAAG,KAAA,KAAU,KAAA,EAAO,CAAA,GAAI,CAAA;;;;AHpDjC;;iBIxBgB,qBAAA,OAA4B,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;;;;;AJwBrB;AAChE;;;;iBITgB,OAAA,OAAc,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,GAAQ,CAAA,EAAG,CAAA,OAAQ,CAAA,EAAG,CAAA;AAAA,iBAC3D,OAAA,OAAc,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;AJOvE;;;;;;;;;;AAAgE;AAChE;iBKXgB,OAAA,aAAoB,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,GAAQ,CAAA,EAAG,CAAA,OAAQ,CAAA,EAAG,CAAA;AAAA,iBACxF,OAAA,aAAoB,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,EAAG,GAAA,GAAM,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;ALSpG;;iBMxBgB,sBAAA,UAAgC,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;;;;;ANwBzB;AAChE;;;;iBMTgB,QAAA,UAAkB,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,GAAQ,CAAA,EAAG,CAAA,OAAQ,CAAA,EAAG,CAAA;AAAA,iBAC/D,QAAA,UAAkB,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;ANO3E;;;;;;;;;;AAAgE;iBOXhD,SAAA,UAAmB,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,KAAA,GAAQ,CAAA,EAAG,CAAA,OAAQ,CAAA,EAAG,CAAA;AAAA,iBAChE,SAAA,UAAmB,KAAA,GAAQ,CAAA,EAAG,CAAA,GAAI,EAAA,GAAK,KAAA,EAAO,CAAA,KAAM,CAAA,IAAK,CAAA,EAAG,CAAA;;;;APU5E;;;;;;;;;;AAAgE;AAChE;iBQjBgB,MAAA,IAAU,KAAA,YAAiB,CAAA,kBAAmB,CAAC;;;;ARgB/D;;;;;;;;;;iBSlBgB,IAAA,OAAW,IAAA,GAAO,CAAA,EAAG,CAAA,KAAM,CAAA,EAAG,CAAA"}
|