@softwareventures/array 7.0.0 → 8.0.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.md +1 -1
- package/index.d.ts +6 -0
- package/index.js +193 -211
- package/index.js.map +1 -1
- package/index.test.d.ts +1 -0
- package/index.test.js +336 -0
- package/index.test.js.map +1 -0
- package/package.json +30 -30
- package/.husky/common.sh +0 -8
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -6
package/index.test.js
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const ava_1 = tslib_1.__importDefault(require("ava"));
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
(0, ava_1.default)("isArray", t => {
|
|
7
|
+
t.true((0, index_1.isArray)([1, 2, 3]));
|
|
8
|
+
t.false((0, index_1.isArray)({ length: 3 }));
|
|
9
|
+
});
|
|
10
|
+
(0, ava_1.default)("isArrayLike", t => {
|
|
11
|
+
t.true((0, index_1.isArrayLike)([1, 2, 3]));
|
|
12
|
+
t.true((0, index_1.isArrayLike)({ length: 3 }));
|
|
13
|
+
t.false((0, index_1.isArrayLike)({}));
|
|
14
|
+
t.false((0, index_1.isArrayLike)(3));
|
|
15
|
+
});
|
|
16
|
+
(0, ava_1.default)("first", t => {
|
|
17
|
+
t.is((0, index_1.first)([1, 2, 3]), 1);
|
|
18
|
+
t.is((0, index_1.first)([]), null);
|
|
19
|
+
});
|
|
20
|
+
(0, ava_1.default)("tail", t => {
|
|
21
|
+
t.deepEqual((0, index_1.tail)([1, 2, 3, 4]), [2, 3, 4]);
|
|
22
|
+
t.deepEqual((0, index_1.tail)([]), []);
|
|
23
|
+
});
|
|
24
|
+
(0, ava_1.default)("initial", t => {
|
|
25
|
+
t.deepEqual((0, index_1.initial)([1, 2, 3, 4]), [1, 2, 3]);
|
|
26
|
+
t.deepEqual((0, index_1.initial)([]), []);
|
|
27
|
+
});
|
|
28
|
+
(0, ava_1.default)("last", t => {
|
|
29
|
+
t.is((0, index_1.last)([]), null);
|
|
30
|
+
t.is((0, index_1.last)([1, 2, 3]), 3);
|
|
31
|
+
});
|
|
32
|
+
(0, ava_1.default)("only", t => {
|
|
33
|
+
t.is((0, index_1.only)([]), null);
|
|
34
|
+
t.is((0, index_1.only)([4]), 4);
|
|
35
|
+
t.is((0, index_1.only)([3, 4, 5]), null);
|
|
36
|
+
});
|
|
37
|
+
(0, ava_1.default)("empty", t => {
|
|
38
|
+
t.true((0, index_1.empty)([]));
|
|
39
|
+
t.false((0, index_1.empty)([1, 2, 3]));
|
|
40
|
+
});
|
|
41
|
+
(0, ava_1.default)("reverse", t => {
|
|
42
|
+
const a = [1, 2, 4, 3];
|
|
43
|
+
t.deepEqual((0, index_1.reverse)(a), [3, 4, 2, 1]);
|
|
44
|
+
t.deepEqual(a, [1, 2, 4, 3]); // Ensure original array is untouched.
|
|
45
|
+
});
|
|
46
|
+
(0, ava_1.default)("slice", t => {
|
|
47
|
+
t.deepEqual((0, index_1.slice)([1, 2, 3, 4], 1), [2, 3, 4]);
|
|
48
|
+
t.deepEqual((0, index_1.slice)([1, 2, 3, 4, 5], 1, 4), [2, 3, 4]);
|
|
49
|
+
t.deepEqual((0, index_1.slice)([1, 2, 3], 2), [3]);
|
|
50
|
+
t.deepEqual((0, index_1.slice)([1, 2, 3], 0, 2), [1, 2]);
|
|
51
|
+
t.deepEqual((0, index_1.slice)([], 3, 5), []);
|
|
52
|
+
});
|
|
53
|
+
(0, ava_1.default)("takeWhile", t => {
|
|
54
|
+
t.deepEqual((0, index_1.takeWhile)([1, 2, 3, 4, 3, 2, 1], e => e < 4), [1, 2, 3]);
|
|
55
|
+
t.deepEqual((0, index_1.takeWhile)([1, 2, 3], (_, i) => i < 2), [1, 2]);
|
|
56
|
+
});
|
|
57
|
+
(0, ava_1.default)("dropWhile", t => {
|
|
58
|
+
t.deepEqual((0, index_1.dropWhile)([1, 2, 3, 4, 3, 2, 1], e => e < 4), [4, 3, 2, 1]);
|
|
59
|
+
t.deepEqual((0, index_1.dropWhile)([1, 2, 3], (_, i) => i < 2), [3]);
|
|
60
|
+
});
|
|
61
|
+
(0, ava_1.default)("equal", t => {
|
|
62
|
+
t.true((0, index_1.equal)([1, 2, 3], [1, 2, 3]));
|
|
63
|
+
t.false((0, index_1.equal)([1, 2, 3], [1, 2, 3, 4]));
|
|
64
|
+
t.false((0, index_1.equal)([1, 2, 3, 4], [1, 2, 3]));
|
|
65
|
+
t.false((0, index_1.equal)([1, 3, 3], [1, 2, 3]));
|
|
66
|
+
t.true((0, index_1.equal)([
|
|
67
|
+
[1, 2],
|
|
68
|
+
[3, 4]
|
|
69
|
+
], [
|
|
70
|
+
[1, 2],
|
|
71
|
+
[3, 4]
|
|
72
|
+
], index_1.equal));
|
|
73
|
+
t.false((0, index_1.equal)([
|
|
74
|
+
[1, 2],
|
|
75
|
+
[3, 4]
|
|
76
|
+
], [
|
|
77
|
+
[1, 2],
|
|
78
|
+
[3, 4]
|
|
79
|
+
]));
|
|
80
|
+
});
|
|
81
|
+
(0, ava_1.default)("prefixMatch", t => {
|
|
82
|
+
t.true((0, index_1.prefixMatch)([], []));
|
|
83
|
+
t.true((0, index_1.prefixMatch)([1, 2, 3], []));
|
|
84
|
+
t.true((0, index_1.prefixMatch)([1, 2, 3, 4], [1, 2]));
|
|
85
|
+
t.false((0, index_1.prefixMatch)([1, 3, 4], [1, 2]));
|
|
86
|
+
t.false((0, index_1.prefixMatch)([], [1]));
|
|
87
|
+
});
|
|
88
|
+
(0, ava_1.default)("map", t => {
|
|
89
|
+
t.deepEqual((0, index_1.map)([1, 2, 3], e => e + 1), [2, 3, 4]);
|
|
90
|
+
t.deepEqual((0, index_1.map)([1, 2, 3], (e, i) => (i === 1 ? e * 10 : e)), [1, 20, 3]);
|
|
91
|
+
});
|
|
92
|
+
(0, ava_1.default)("filter", t => {
|
|
93
|
+
t.deepEqual((0, index_1.filter)([1, 2, 3], e => e % 2 === 1), [1, 3]);
|
|
94
|
+
t.deepEqual((0, index_1.filter)([1, 3, 2, 4, 5], (_, i) => i % 2 === 0), [1, 2, 5]);
|
|
95
|
+
});
|
|
96
|
+
(0, ava_1.default)("exclude", t => {
|
|
97
|
+
t.deepEqual((0, index_1.exclude)([1, 2, 3, 4, 3, 2, 1], n => n < 3), [3, 4, 3]);
|
|
98
|
+
});
|
|
99
|
+
(0, ava_1.default)("excludeNull", t => {
|
|
100
|
+
t.deepEqual((0, index_1.excludeNull)(["a", null, "b"]), ["a", "b"]);
|
|
101
|
+
});
|
|
102
|
+
(0, ava_1.default)("excludeFirst", t => {
|
|
103
|
+
t.deepEqual((0, index_1.excludeFirst)([1, 2, 3, 4, 3, 2, 1], n => n > 2), [1, 2, 4, 3, 2, 1]);
|
|
104
|
+
});
|
|
105
|
+
(0, ava_1.default)("remove", t => {
|
|
106
|
+
t.deepEqual((0, index_1.remove)([1, 2, 3, 4, 3, 2, 1], 3), [1, 2, 4, 2, 1]);
|
|
107
|
+
});
|
|
108
|
+
(0, ava_1.default)("removeFirst", t => {
|
|
109
|
+
t.deepEqual((0, index_1.removeFirst)([1, 2, 3, 4, 3, 2, 1], 3), [1, 2, 4, 3, 2, 1]);
|
|
110
|
+
});
|
|
111
|
+
(0, ava_1.default)("fold", t => {
|
|
112
|
+
t.is((0, index_1.fold)([1, 2, 3], (a, e, i) => a + e * i, 0), 8);
|
|
113
|
+
});
|
|
114
|
+
(0, ava_1.default)("fold1", t => {
|
|
115
|
+
t.is((0, index_1.fold1)([1, 2, 3], (a, e, i) => a + e * i), 9);
|
|
116
|
+
});
|
|
117
|
+
(0, ava_1.default)("foldMap", t => {
|
|
118
|
+
t.is((0, index_1.foldMap)(["2", "3", "4"], (a, b) => a + b, parseFloat, 2), 11);
|
|
119
|
+
t.is((0, index_1.foldMap)([true, false, false], (a, b) => a.substr(0, a.length - 1) + b.substr(1), String, "jam"), "jarualsalse");
|
|
120
|
+
t.is((0, index_1.foldMap)(["2"], (a, b) => a + b, parseFloat, 0), 2);
|
|
121
|
+
});
|
|
122
|
+
(0, ava_1.default)("contains", t => {
|
|
123
|
+
t.true((0, index_1.contains)([1, 2, 3], 1));
|
|
124
|
+
t.false((0, index_1.contains)([1, 2, 3], 0));
|
|
125
|
+
});
|
|
126
|
+
(0, ava_1.default)("lastIndexOf", t => {
|
|
127
|
+
t.is((0, index_1.lastIndexOf)([1, 2, 3, 4, 3, 2, 1], 3), 4);
|
|
128
|
+
});
|
|
129
|
+
(0, ava_1.default)("findIndex", t => {
|
|
130
|
+
t.is((0, index_1.findIndex)([1, 2, 3, 4, 3, 2, 1], n => n >= 3), 2);
|
|
131
|
+
});
|
|
132
|
+
(0, ava_1.default)("findLastIndex", t => {
|
|
133
|
+
t.is((0, index_1.findLastIndex)([1, 2, 3, 4, 3, 2, 1], n => n >= 3), 4);
|
|
134
|
+
});
|
|
135
|
+
(0, ava_1.default)("find", t => {
|
|
136
|
+
t.is((0, index_1.find)([1, 2, 3, 4, 3, 2, 1], n => n >= 3), 3);
|
|
137
|
+
});
|
|
138
|
+
(0, ava_1.default)("findLast", t => {
|
|
139
|
+
t.is((0, index_1.findLast)([1, 2, 3, 4, 5, 2, 1], n => n >= 3), 5);
|
|
140
|
+
});
|
|
141
|
+
(0, ava_1.default)("maximum", t => {
|
|
142
|
+
t.is((0, index_1.maximum)([1, 2, 3]), 3);
|
|
143
|
+
t.is((0, index_1.maximum)([1, 2, 3, 4, 3, 2, 1]), 4);
|
|
144
|
+
t.is((0, index_1.maximum)([]), null);
|
|
145
|
+
});
|
|
146
|
+
(0, ava_1.default)("minimum", t => {
|
|
147
|
+
t.is((0, index_1.minimum)([1, 2, 3]), 1);
|
|
148
|
+
t.is((0, index_1.minimum)([2, 3, 4, 1, 2, 3]), 1);
|
|
149
|
+
t.is((0, index_1.minimum)([]), null);
|
|
150
|
+
});
|
|
151
|
+
(0, ava_1.default)("sum", t => {
|
|
152
|
+
t.is((0, index_1.sum)([1, 2, 3]), 6);
|
|
153
|
+
t.is((0, index_1.sum)([]), 0);
|
|
154
|
+
});
|
|
155
|
+
(0, ava_1.default)("product", t => {
|
|
156
|
+
t.is((0, index_1.product)([1, 2, 3]), 6);
|
|
157
|
+
t.is((0, index_1.product)([]), 1);
|
|
158
|
+
});
|
|
159
|
+
(0, ava_1.default)("and", t => {
|
|
160
|
+
t.true((0, index_1.and)([true, true, true]));
|
|
161
|
+
t.false((0, index_1.and)([true, false, true]));
|
|
162
|
+
t.true((0, index_1.and)([]));
|
|
163
|
+
});
|
|
164
|
+
(0, ava_1.default)("or", t => {
|
|
165
|
+
t.true((0, index_1.or)([true, false, true]));
|
|
166
|
+
t.false((0, index_1.or)([false, false, false]));
|
|
167
|
+
t.false((0, index_1.or)([]));
|
|
168
|
+
});
|
|
169
|
+
(0, ava_1.default)("any", t => {
|
|
170
|
+
t.true((0, index_1.any)([1, 2, 3], e => e > 2));
|
|
171
|
+
t.false((0, index_1.any)([1, 2, 3], e => e > 4));
|
|
172
|
+
});
|
|
173
|
+
(0, ava_1.default)("all", t => {
|
|
174
|
+
t.true((0, index_1.all)([1, 2, 3], e => e < 4));
|
|
175
|
+
t.false((0, index_1.all)([1, 2, 3], e => e > 2));
|
|
176
|
+
const mixed1 = [1, 2, "hello", 3, "goodbye"];
|
|
177
|
+
const mixed2 = [1, 2, 3];
|
|
178
|
+
const acceptNumbers = (array) => true;
|
|
179
|
+
const isNumber = (v) => typeof v === "number";
|
|
180
|
+
t.false((0, index_1.all)(mixed1, isNumber));
|
|
181
|
+
t.true((0, index_1.all)(mixed2, isNumber));
|
|
182
|
+
t.false((0, index_1.all)(mixed1, isNumber) ? acceptNumbers(mixed1) : false);
|
|
183
|
+
t.true((0, index_1.all)(mixed2, isNumber) ? acceptNumbers(mixed2) : false);
|
|
184
|
+
});
|
|
185
|
+
(0, ava_1.default)("concat", t => {
|
|
186
|
+
t.deepEqual((0, index_1.concat)([[1, 2], [], [3], [4, 5]]), [1, 2, 3, 4, 5]);
|
|
187
|
+
t.deepEqual((0, index_1.concat)([[], []]), []);
|
|
188
|
+
});
|
|
189
|
+
(0, ava_1.default)("prepend", t => {
|
|
190
|
+
t.deepEqual((0, index_1.prepend)([1, 2, 3])([4, 5, 6]), [1, 2, 3, 4, 5, 6]);
|
|
191
|
+
t.deepEqual((0, index_1.prepend)([])([4, 5, 6]), [4, 5, 6]);
|
|
192
|
+
t.deepEqual((0, index_1.prepend)([1, 2, 3])([]), [1, 2, 3]);
|
|
193
|
+
});
|
|
194
|
+
(0, ava_1.default)("append", t => {
|
|
195
|
+
t.deepEqual((0, index_1.append)([4, 5, 6])([1, 2, 3]), [1, 2, 3, 4, 5, 6]);
|
|
196
|
+
t.deepEqual((0, index_1.append)([])([1, 2, 3]), [1, 2, 3]);
|
|
197
|
+
t.deepEqual((0, index_1.append)([4, 5, 6])([]), [4, 5, 6]);
|
|
198
|
+
});
|
|
199
|
+
(0, ava_1.default)("concatMap", t => {
|
|
200
|
+
t.deepEqual((0, index_1.concatMap)(["1,2,3", "4,5,6"], s => s.split(",")), ["1", "2", "3", "4", "5", "6"]);
|
|
201
|
+
});
|
|
202
|
+
(0, ava_1.default)("scan", t => {
|
|
203
|
+
t.deepEqual((0, index_1.scan)([1, 2, 3], (a, e, i) => a + e * i, 0), [0, 2, 8]);
|
|
204
|
+
t.deepEqual((0, index_1.scan)(["a", "b", "c"], (a, e, i) => `${a} ${i} ${e}`, "_"), ["_ 0 a", "_ 0 a 1 b", "_ 0 a 1 b 2 c"]);
|
|
205
|
+
});
|
|
206
|
+
(0, ava_1.default)("scan1", t => {
|
|
207
|
+
t.deepEqual((0, index_1.scan1)([1, 2, 3], (a, e, i) => a + e * i), [1, 3, 9]);
|
|
208
|
+
});
|
|
209
|
+
(0, ava_1.default)("scanRight", t => {
|
|
210
|
+
t.deepEqual((0, index_1.scanRight)(["a", "b", "c"], (a, e, i) => `${a} ${i} ${e}`, "_"), ["_ 2 c 1 b 0 a", "_ 2 c 1 b", "_ 2 c"]);
|
|
211
|
+
});
|
|
212
|
+
(0, ava_1.default)("scanRight1", t => {
|
|
213
|
+
t.deepEqual((0, index_1.scanRight1)(["a", "b", "c"], (a, e, i) => `${a} ${i} ${e}`), ["c 1 b 0 a", "c 1 b", "c"]);
|
|
214
|
+
});
|
|
215
|
+
(0, ava_1.default)("split", t => {
|
|
216
|
+
t.deepEqual((0, index_1.split)([2, 1, 3, 4, 5, 6], 2), [
|
|
217
|
+
[2, 1],
|
|
218
|
+
[3, 4, 5, 6]
|
|
219
|
+
]);
|
|
220
|
+
t.deepEqual((0, index_1.split)([2, 1, 3, 4, 5, 6], 0), [[], [2, 1, 3, 4, 5, 6]]);
|
|
221
|
+
t.deepEqual((0, index_1.split)([2, 1, 3, 4, 5, 6], 10), [[2, 1, 3, 4, 5, 6], []]);
|
|
222
|
+
});
|
|
223
|
+
function isSuccess(result) {
|
|
224
|
+
return result.type === "success";
|
|
225
|
+
}
|
|
226
|
+
(0, ava_1.default)("partition", t => {
|
|
227
|
+
t.deepEqual((0, index_1.partition)([2, 1, 3, 4, 5, 6], e => e % 2 === 1), [
|
|
228
|
+
[1, 3, 5],
|
|
229
|
+
[2, 4, 6]
|
|
230
|
+
]);
|
|
231
|
+
t.deepEqual((0, index_1.partition)(["abc", "def", "ghi"], (_, i) => i % 2 === 0), [["abc", "ghi"], ["def"]]);
|
|
232
|
+
const results = [
|
|
233
|
+
{ type: "success", value: "hello" },
|
|
234
|
+
{ type: "error" },
|
|
235
|
+
{ type: "success", value: "goodbye" }
|
|
236
|
+
];
|
|
237
|
+
const partitionedResults = (0, index_1.partition)(results, isSuccess);
|
|
238
|
+
t.deepEqual(partitionedResults, [
|
|
239
|
+
[
|
|
240
|
+
{ type: "success", value: "hello" },
|
|
241
|
+
{ type: "success", value: "goodbye" }
|
|
242
|
+
],
|
|
243
|
+
[{ type: "error" }]
|
|
244
|
+
]);
|
|
245
|
+
});
|
|
246
|
+
(0, ava_1.default)("partitionWhile", t => {
|
|
247
|
+
t.deepEqual((0, index_1.partitionWhile)([1, 3, 2, 4, 5, 6], e => e % 2 === 1), [
|
|
248
|
+
[1, 3],
|
|
249
|
+
[2, 4, 5, 6]
|
|
250
|
+
]);
|
|
251
|
+
t.deepEqual((0, index_1.partitionWhile)(["abc", "def", "ghi"], (_, i) => i % 2 === 0), [["abc"], ["def", "ghi"]]);
|
|
252
|
+
const results = [
|
|
253
|
+
{ type: "success", value: "hello" },
|
|
254
|
+
{ type: "error" },
|
|
255
|
+
{ type: "success", value: "goodbye" }
|
|
256
|
+
];
|
|
257
|
+
const partitionedResults = (0, index_1.partitionWhile)(results, isSuccess);
|
|
258
|
+
t.deepEqual(partitionedResults, [
|
|
259
|
+
[{ type: "success", value: "hello" }],
|
|
260
|
+
[{ type: "error" }, { type: "success", value: "goodbye" }]
|
|
261
|
+
]);
|
|
262
|
+
});
|
|
263
|
+
(0, ava_1.default)("zip", t => {
|
|
264
|
+
t.deepEqual((0, index_1.zip)([1, 2, 3], [6, 5, 4, 3, 2, 1]), [
|
|
265
|
+
[1, 6],
|
|
266
|
+
[2, 5],
|
|
267
|
+
[3, 4]
|
|
268
|
+
]);
|
|
269
|
+
});
|
|
270
|
+
(0, ava_1.default)("keyBy", t => {
|
|
271
|
+
const map = (0, index_1.keyBy)([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? "even" : "odd"));
|
|
272
|
+
t.deepEqual(map.get("even"), [4, 2, 6]);
|
|
273
|
+
t.deepEqual(map.get("odd"), [1, 3, 5]);
|
|
274
|
+
t.deepEqual(Array.from(map.keys()), ["odd", "even"]);
|
|
275
|
+
});
|
|
276
|
+
(0, ava_1.default)("keyFirstBy", t => {
|
|
277
|
+
const map = (0, index_1.keyFirstBy)([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? "even" : "odd"));
|
|
278
|
+
t.is(map.get("even"), 4);
|
|
279
|
+
t.is(map.get("odd"), 1);
|
|
280
|
+
t.deepEqual(Array.from(map.keys()), ["odd", "even"]);
|
|
281
|
+
});
|
|
282
|
+
(0, ava_1.default)("keyLastBy", t => {
|
|
283
|
+
const map = (0, index_1.keyLastBy)([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? "even" : "odd"));
|
|
284
|
+
t.is(map.get("even"), 6);
|
|
285
|
+
t.is(map.get("odd"), 5);
|
|
286
|
+
t.deepEqual(Array.from(map.keys()), ["odd", "even"]);
|
|
287
|
+
});
|
|
288
|
+
(0, ava_1.default)("mapKeyBy", t => {
|
|
289
|
+
const map = (0, index_1.mapKeyBy)([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? "even" : "odd", String(e)]);
|
|
290
|
+
t.deepEqual(map.get("even"), ["4", "2", "6"]);
|
|
291
|
+
t.deepEqual(map.get("odd"), ["1", "3", "5"]);
|
|
292
|
+
t.deepEqual(Array.from(map.keys()), ["odd", "even"]);
|
|
293
|
+
});
|
|
294
|
+
(0, ava_1.default)("mapKeyFirstBy", t => {
|
|
295
|
+
const map = (0, index_1.mapKeyFirstBy)([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? "even" : "odd", String(e)]);
|
|
296
|
+
t.is(map.get("even"), "4");
|
|
297
|
+
t.is(map.get("odd"), "1");
|
|
298
|
+
t.deepEqual(Array.from(map.keys()), ["odd", "even"]);
|
|
299
|
+
});
|
|
300
|
+
(0, ava_1.default)("mapKeyLastBy", t => {
|
|
301
|
+
const map = (0, index_1.mapKeyLastBy)([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? "even" : "odd", String(e)]);
|
|
302
|
+
t.deepEqual(Array.from(map.entries()), [
|
|
303
|
+
["odd", "5"],
|
|
304
|
+
["even", "6"]
|
|
305
|
+
]);
|
|
306
|
+
});
|
|
307
|
+
(0, ava_1.default)("groupByIdentity", t => {
|
|
308
|
+
t.deepEqual((0, index_1.groupByIdentity)(["abc", "adef", "bghi"], a => a.substr(0, 1)), [["abc", "adef"], ["bghi"]]);
|
|
309
|
+
});
|
|
310
|
+
(0, ava_1.default)("sort", t => {
|
|
311
|
+
t.deepEqual((0, index_1.sort)([2, 4, 3, 1]), [1, 2, 3, 4]);
|
|
312
|
+
t.deepEqual((0, index_1.sort)(["hello", "goodbye"]), ["goodbye", "hello"]);
|
|
313
|
+
t.deepEqual((0, index_1.sort)([-2, 4, -3, 1], (a, b) => Math.abs(a) - Math.abs(b)), [1, -2, -3, 4]);
|
|
314
|
+
});
|
|
315
|
+
(0, ava_1.default)("sortBy", t => {
|
|
316
|
+
t.deepEqual((0, index_1.sortBy)([
|
|
317
|
+
{ x: "a", y: 2 },
|
|
318
|
+
{ x: "b", y: 4 },
|
|
319
|
+
{ x: "c", y: 3 },
|
|
320
|
+
{ x: "d", y: 1 }
|
|
321
|
+
], ({ y }) => y), [
|
|
322
|
+
{ x: "d", y: 1 },
|
|
323
|
+
{ x: "a", y: 2 },
|
|
324
|
+
{ x: "c", y: 3 },
|
|
325
|
+
{ x: "b", y: 4 }
|
|
326
|
+
]);
|
|
327
|
+
t.deepEqual((0, index_1.sortBy)([-2, 4, -3, 1], e => Math.abs(e)), [1, -2, -3, 4]);
|
|
328
|
+
});
|
|
329
|
+
(0, ava_1.default)("forEach", t => {
|
|
330
|
+
const a = ["a", "b", "c"];
|
|
331
|
+
let s = "";
|
|
332
|
+
const b = (0, index_1.forEach)(a, c => (s += c));
|
|
333
|
+
t.is(b, a);
|
|
334
|
+
t.is(s, "abc");
|
|
335
|
+
});
|
|
336
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["index.test.ts"],"names":[],"mappings":"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","sourcesContent":["import test from \"ava\";\nimport {\n all,\n and,\n any,\n append,\n concat,\n concatMap,\n contains,\n dropWhile,\n empty,\n equal,\n exclude,\n excludeFirst,\n excludeNull,\n filter,\n find,\n findIndex,\n findLast,\n findLastIndex,\n first,\n fold,\n fold1,\n foldMap,\n forEach,\n groupByIdentity,\n initial,\n isArray,\n isArrayLike,\n keyBy,\n keyFirstBy,\n keyLastBy,\n last,\n lastIndexOf,\n map,\n mapKeyBy,\n mapKeyFirstBy,\n mapKeyLastBy,\n maximum,\n minimum,\n only,\n or,\n partition,\n partitionWhile,\n prefixMatch,\n prepend,\n product,\n remove,\n removeFirst,\n reverse,\n scan,\n scan1,\n scanRight,\n scanRight1,\n slice,\n sort,\n sortBy,\n split,\n sum,\n tail,\n takeWhile,\n zip\n} from \"./index\";\n\ntest(\"isArray\", t => {\n t.true(isArray([1, 2, 3]));\n t.false(isArray({length: 3}));\n});\n\ntest(\"isArrayLike\", t => {\n t.true(isArrayLike([1, 2, 3]));\n t.true(isArrayLike({length: 3}));\n t.false(isArrayLike({}));\n t.false(isArrayLike(3));\n});\n\ntest(\"first\", t => {\n t.is(first([1, 2, 3]), 1);\n t.is(first([]), null);\n});\n\ntest(\"tail\", t => {\n t.deepEqual(tail([1, 2, 3, 4]), [2, 3, 4]);\n t.deepEqual(tail([]), []);\n});\n\ntest(\"initial\", t => {\n t.deepEqual(initial([1, 2, 3, 4]), [1, 2, 3]);\n t.deepEqual(initial([]), []);\n});\n\ntest(\"last\", t => {\n t.is(last([]), null);\n t.is(last([1, 2, 3]), 3);\n});\n\ntest(\"only\", t => {\n t.is(only([]), null);\n t.is(only([4]), 4);\n t.is(only([3, 4, 5]), null);\n});\n\ntest(\"empty\", t => {\n t.true(empty([]));\n t.false(empty([1, 2, 3]));\n});\n\ntest(\"reverse\", t => {\n const a = [1, 2, 4, 3];\n t.deepEqual(reverse(a), [3, 4, 2, 1]);\n t.deepEqual(a, [1, 2, 4, 3]); // Ensure original array is untouched.\n});\n\ntest(\"slice\", t => {\n t.deepEqual(slice([1, 2, 3, 4], 1), [2, 3, 4]);\n t.deepEqual(slice([1, 2, 3, 4, 5], 1, 4), [2, 3, 4]);\n t.deepEqual(slice([1, 2, 3], 2), [3]);\n t.deepEqual(slice([1, 2, 3], 0, 2), [1, 2]);\n t.deepEqual(slice([], 3, 5), []);\n});\n\ntest(\"takeWhile\", t => {\n t.deepEqual(\n takeWhile([1, 2, 3, 4, 3, 2, 1], e => e < 4),\n [1, 2, 3]\n );\n t.deepEqual(\n takeWhile([1, 2, 3], (_, i) => i < 2),\n [1, 2]\n );\n});\n\ntest(\"dropWhile\", t => {\n t.deepEqual(\n dropWhile([1, 2, 3, 4, 3, 2, 1], e => e < 4),\n [4, 3, 2, 1]\n );\n t.deepEqual(\n dropWhile([1, 2, 3], (_, i) => i < 2),\n [3]\n );\n});\n\ntest(\"equal\", t => {\n t.true(equal([1, 2, 3], [1, 2, 3]));\n t.false(equal([1, 2, 3], [1, 2, 3, 4]));\n t.false(equal([1, 2, 3, 4], [1, 2, 3]));\n t.false(equal([1, 3, 3], [1, 2, 3]));\n t.true(\n equal(\n [\n [1, 2],\n [3, 4]\n ],\n [\n [1, 2],\n [3, 4]\n ],\n equal\n )\n );\n t.false(\n equal(\n [\n [1, 2],\n [3, 4]\n ],\n [\n [1, 2],\n [3, 4]\n ]\n )\n );\n});\n\ntest(\"prefixMatch\", t => {\n t.true(prefixMatch([], []));\n t.true(prefixMatch([1, 2, 3], []));\n t.true(prefixMatch([1, 2, 3, 4], [1, 2]));\n t.false(prefixMatch([1, 3, 4], [1, 2]));\n t.false(prefixMatch([], [1]));\n});\n\ntest(\"map\", t => {\n t.deepEqual(\n map([1, 2, 3], e => e + 1),\n [2, 3, 4]\n );\n t.deepEqual(\n map([1, 2, 3], (e, i) => (i === 1 ? e * 10 : e)),\n [1, 20, 3]\n );\n});\n\ntest(\"filter\", t => {\n t.deepEqual(\n filter([1, 2, 3], e => e % 2 === 1),\n [1, 3]\n );\n t.deepEqual(\n filter([1, 3, 2, 4, 5], (_, i) => i % 2 === 0),\n [1, 2, 5]\n );\n});\n\ntest(\"exclude\", t => {\n t.deepEqual(\n exclude([1, 2, 3, 4, 3, 2, 1], n => n < 3),\n [3, 4, 3]\n );\n});\n\ntest(\"excludeNull\", t => {\n t.deepEqual(excludeNull([\"a\", null, \"b\"]), [\"a\", \"b\"]);\n});\n\ntest(\"excludeFirst\", t => {\n t.deepEqual(\n excludeFirst([1, 2, 3, 4, 3, 2, 1], n => n > 2),\n [1, 2, 4, 3, 2, 1]\n );\n});\n\ntest(\"remove\", t => {\n t.deepEqual(remove([1, 2, 3, 4, 3, 2, 1], 3), [1, 2, 4, 2, 1]);\n});\n\ntest(\"removeFirst\", t => {\n t.deepEqual(removeFirst([1, 2, 3, 4, 3, 2, 1], 3), [1, 2, 4, 3, 2, 1]);\n});\n\ntest(\"fold\", t => {\n t.is(\n fold([1, 2, 3], (a, e, i) => a + e * i, 0),\n 8\n );\n});\n\ntest(\"fold1\", t => {\n t.is(\n fold1([1, 2, 3], (a, e, i) => a + e * i),\n 9\n );\n});\n\ntest(\"foldMap\", t => {\n t.is(\n foldMap([\"2\", \"3\", \"4\"], (a, b) => a + b, parseFloat, 2),\n 11\n );\n t.is(\n foldMap(\n [true, false, false],\n (a, b) => a.substr(0, a.length - 1) + b.substr(1),\n String,\n \"jam\"\n ),\n \"jarualsalse\"\n );\n t.is(\n foldMap([\"2\"], (a, b) => a + b, parseFloat, 0),\n 2\n );\n});\n\ntest(\"contains\", t => {\n t.true(contains([1, 2, 3], 1));\n t.false(contains([1, 2, 3], 0));\n});\n\ntest(\"lastIndexOf\", t => {\n t.is(lastIndexOf([1, 2, 3, 4, 3, 2, 1], 3), 4);\n});\n\ntest(\"findIndex\", t => {\n t.is(\n findIndex([1, 2, 3, 4, 3, 2, 1], n => n >= 3),\n 2\n );\n});\n\ntest(\"findLastIndex\", t => {\n t.is(\n findLastIndex([1, 2, 3, 4, 3, 2, 1], n => n >= 3),\n 4\n );\n});\n\ntest(\"find\", t => {\n t.is(\n find([1, 2, 3, 4, 3, 2, 1], n => n >= 3),\n 3\n );\n});\n\ntest(\"findLast\", t => {\n t.is(\n findLast([1, 2, 3, 4, 5, 2, 1], n => n >= 3),\n 5\n );\n});\n\ntest(\"maximum\", t => {\n t.is(maximum([1, 2, 3]), 3);\n t.is(maximum([1, 2, 3, 4, 3, 2, 1]), 4);\n t.is(maximum([]), null);\n});\n\ntest(\"minimum\", t => {\n t.is(minimum([1, 2, 3]), 1);\n t.is(minimum([2, 3, 4, 1, 2, 3]), 1);\n t.is(minimum([]), null);\n});\n\ntest(\"sum\", t => {\n t.is(sum([1, 2, 3]), 6);\n t.is(sum([]), 0);\n});\n\ntest(\"product\", t => {\n t.is(product([1, 2, 3]), 6);\n t.is(product([]), 1);\n});\n\ntest(\"and\", t => {\n t.true(and([true, true, true]));\n t.false(and([true, false, true]));\n t.true(and([]));\n});\n\ntest(\"or\", t => {\n t.true(or([true, false, true]));\n t.false(or([false, false, false]));\n t.false(or([]));\n});\n\ntest(\"any\", t => {\n t.true(any([1, 2, 3], e => e > 2));\n t.false(any([1, 2, 3], e => e > 4));\n});\n\ntest(\"all\", t => {\n t.true(all([1, 2, 3], e => e < 4));\n t.false(all([1, 2, 3], e => e > 2));\n\n const mixed1: Array<string | number> = [1, 2, \"hello\", 3, \"goodbye\"];\n const mixed2: Array<string | number> = [1, 2, 3];\n\n const acceptNumbers = (array: readonly number[]): boolean => true;\n const isNumber = (v: unknown): v is number => typeof v === \"number\";\n\n t.false(all(mixed1, isNumber));\n t.true(all(mixed2, isNumber));\n\n t.false(all(mixed1, isNumber) ? acceptNumbers(mixed1) : false);\n t.true(all(mixed2, isNumber) ? acceptNumbers(mixed2) : false);\n});\n\ntest(\"concat\", t => {\n t.deepEqual(concat([[1, 2], [], [3], [4, 5]]), [1, 2, 3, 4, 5]);\n t.deepEqual(concat([[], []]), []);\n});\n\ntest(\"prepend\", t => {\n t.deepEqual(prepend([1, 2, 3])([4, 5, 6]), [1, 2, 3, 4, 5, 6]);\n t.deepEqual(prepend<number>([])([4, 5, 6]), [4, 5, 6]);\n t.deepEqual(prepend([1, 2, 3])([]), [1, 2, 3]);\n});\n\ntest(\"append\", t => {\n t.deepEqual(append([4, 5, 6])([1, 2, 3]), [1, 2, 3, 4, 5, 6]);\n t.deepEqual(append<number>([])([1, 2, 3]), [1, 2, 3]);\n t.deepEqual(append([4, 5, 6])([]), [4, 5, 6]);\n});\n\ntest(\"concatMap\", t => {\n t.deepEqual(\n concatMap([\"1,2,3\", \"4,5,6\"], s => s.split(\",\")),\n [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"]\n );\n});\n\ntest(\"scan\", t => {\n t.deepEqual(\n scan([1, 2, 3], (a, e, i) => a + e * i, 0),\n [0, 2, 8]\n );\n t.deepEqual(\n scan([\"a\", \"b\", \"c\"], (a, e, i) => `${a} ${i} ${e}`, \"_\"),\n [\"_ 0 a\", \"_ 0 a 1 b\", \"_ 0 a 1 b 2 c\"]\n );\n});\n\ntest(\"scan1\", t => {\n t.deepEqual(\n scan1([1, 2, 3], (a, e, i) => a + e * i),\n [1, 3, 9]\n );\n});\n\ntest(\"scanRight\", t => {\n t.deepEqual(\n scanRight([\"a\", \"b\", \"c\"], (a, e, i) => `${a} ${i} ${e}`, \"_\"),\n [\"_ 2 c 1 b 0 a\", \"_ 2 c 1 b\", \"_ 2 c\"]\n );\n});\n\ntest(\"scanRight1\", t => {\n t.deepEqual(\n scanRight1([\"a\", \"b\", \"c\"], (a, e, i) => `${a} ${i} ${e}`),\n [\"c 1 b 0 a\", \"c 1 b\", \"c\"]\n );\n});\n\ntest(\"split\", t => {\n t.deepEqual(split([2, 1, 3, 4, 5, 6], 2), [\n [2, 1],\n [3, 4, 5, 6]\n ]);\n t.deepEqual(split([2, 1, 3, 4, 5, 6], 0), [[], [2, 1, 3, 4, 5, 6]]);\n t.deepEqual(split([2, 1, 3, 4, 5, 6], 10), [[2, 1, 3, 4, 5, 6], []]);\n});\n\ntype Result<T> = Success<T> | Error;\n\ninterface Success<T> {\n type: \"success\";\n value: T;\n}\n\ninterface Error {\n type: \"error\";\n}\n\nfunction isSuccess<T>(result: Result<T>): result is Success<T> {\n return result.type === \"success\";\n}\n\ntest(\"partition\", t => {\n t.deepEqual(\n partition([2, 1, 3, 4, 5, 6], e => e % 2 === 1),\n [\n [1, 3, 5],\n [2, 4, 6]\n ]\n );\n\n t.deepEqual(\n partition([\"abc\", \"def\", \"ghi\"], (_: string, i: number) => i % 2 === 0),\n [[\"abc\", \"ghi\"], [\"def\"]]\n );\n\n const results: Array<Result<string>> = [\n {type: \"success\", value: \"hello\"},\n {type: \"error\"},\n {type: \"success\", value: \"goodbye\"}\n ];\n\n const partitionedResults: [Array<Success<string>>, Error[]] = partition(results, isSuccess);\n\n t.deepEqual(partitionedResults, [\n [\n {type: \"success\", value: \"hello\"},\n {type: \"success\", value: \"goodbye\"}\n ],\n [{type: \"error\"}]\n ]);\n});\n\ntest(\"partitionWhile\", t => {\n t.deepEqual(\n partitionWhile([1, 3, 2, 4, 5, 6], e => e % 2 === 1),\n [\n [1, 3],\n [2, 4, 5, 6]\n ]\n );\n\n t.deepEqual(\n partitionWhile([\"abc\", \"def\", \"ghi\"], (_: string, i: number) => i % 2 === 0),\n [[\"abc\"], [\"def\", \"ghi\"]]\n );\n\n const results: Array<Result<string>> = [\n {type: \"success\", value: \"hello\"},\n {type: \"error\"},\n {type: \"success\", value: \"goodbye\"}\n ];\n\n const partitionedResults: [Array<Success<string>>, Array<Result<string>>] = partitionWhile(\n results,\n isSuccess\n );\n\n t.deepEqual(partitionedResults, [\n [{type: \"success\", value: \"hello\"}],\n [{type: \"error\"}, {type: \"success\", value: \"goodbye\"}]\n ]);\n});\n\ntest(\"zip\", t => {\n t.deepEqual(zip([1, 2, 3], [6, 5, 4, 3, 2, 1]), [\n [1, 6],\n [2, 5],\n [3, 4]\n ]);\n});\n\ntest(\"keyBy\", t => {\n const map = keyBy([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? \"even\" : \"odd\"));\n t.deepEqual(map.get(\"even\"), [4, 2, 6]);\n t.deepEqual(map.get(\"odd\"), [1, 3, 5]);\n t.deepEqual(Array.from(map.keys()), [\"odd\", \"even\"]);\n});\n\ntest(\"keyFirstBy\", t => {\n const map = keyFirstBy([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? \"even\" : \"odd\"));\n t.is(map.get(\"even\"), 4);\n t.is(map.get(\"odd\"), 1);\n t.deepEqual(Array.from(map.keys()), [\"odd\", \"even\"]);\n});\n\ntest(\"keyLastBy\", t => {\n const map = keyLastBy([1, 3, 4, 2, 5, 6], e => (e % 2 === 0 ? \"even\" : \"odd\"));\n t.is(map.get(\"even\"), 6);\n t.is(map.get(\"odd\"), 5);\n t.deepEqual(Array.from(map.keys()), [\"odd\", \"even\"]);\n});\n\ntest(\"mapKeyBy\", t => {\n const map = mapKeyBy([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? \"even\" : \"odd\", String(e)]);\n t.deepEqual(map.get(\"even\"), [\"4\", \"2\", \"6\"]);\n t.deepEqual(map.get(\"odd\"), [\"1\", \"3\", \"5\"]);\n t.deepEqual(Array.from(map.keys()), [\"odd\", \"even\"]);\n});\n\ntest(\"mapKeyFirstBy\", t => {\n const map = mapKeyFirstBy([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? \"even\" : \"odd\", String(e)]);\n t.is(map.get(\"even\"), \"4\");\n t.is(map.get(\"odd\"), \"1\");\n t.deepEqual(Array.from(map.keys()), [\"odd\", \"even\"]);\n});\n\ntest(\"mapKeyLastBy\", t => {\n const map = mapKeyLastBy([1, 3, 4, 2, 5, 6], e => [e % 2 === 0 ? \"even\" : \"odd\", String(e)]);\n t.deepEqual(Array.from(map.entries()), [\n [\"odd\", \"5\"],\n [\"even\", \"6\"]\n ]);\n});\n\ntest(\"groupByIdentity\", t => {\n t.deepEqual(\n groupByIdentity([\"abc\", \"adef\", \"bghi\"], a => a.substr(0, 1)),\n [[\"abc\", \"adef\"], [\"bghi\"]]\n );\n});\n\ntest(\"sort\", t => {\n t.deepEqual(sort([2, 4, 3, 1]), [1, 2, 3, 4]);\n t.deepEqual(sort([\"hello\", \"goodbye\"]), [\"goodbye\", \"hello\"]);\n t.deepEqual(\n sort([-2, 4, -3, 1], (a, b) => Math.abs(a) - Math.abs(b)),\n [1, -2, -3, 4]\n );\n});\n\ntest(\"sortBy\", t => {\n t.deepEqual(\n sortBy(\n [\n {x: \"a\", y: 2},\n {x: \"b\", y: 4},\n {x: \"c\", y: 3},\n {x: \"d\", y: 1}\n ],\n ({y}) => y\n ),\n [\n {x: \"d\", y: 1},\n {x: \"a\", y: 2},\n {x: \"c\", y: 3},\n {x: \"b\", y: 4}\n ]\n );\n t.deepEqual(\n sortBy([-2, 4, -3, 1], e => Math.abs(e)),\n [1, -2, -3, 4]\n );\n});\n\ntest(\"forEach\", t => {\n const a = [\"a\", \"b\", \"c\"];\n let s = \"\";\n const b = forEach(a, c => (s += c));\n t.is(b, a);\n t.is(s, \"abc\");\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softwareventures/array",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Pure functional array manipulation and traversal",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"array",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"repository": "github:softwareventures/array",
|
|
15
15
|
"license": "ISC",
|
|
16
16
|
"scripts": {
|
|
17
|
+
"commit": "cz",
|
|
17
18
|
"fix": "tsc --noEmit && eslint . --fix && prettier --write .",
|
|
19
|
+
"_postinstall": "husky",
|
|
18
20
|
"lint": "tsc --noEmit && eslint . && prettier --check .",
|
|
19
|
-
"
|
|
20
|
-
"prepare": "husky install && tsc",
|
|
21
|
-
"semantic-release": "semantic-release",
|
|
21
|
+
"prepack": "tsc",
|
|
22
22
|
"test": "ava"
|
|
23
23
|
},
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"engines": {
|
|
26
|
-
"node": "^
|
|
26
|
+
"node": "^20 || ^22 || ^24 || >=25"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@softwareventures/nullable": "^1.0.0 || ^2.0.0 || ^3.0.0",
|
|
@@ -31,36 +31,35 @@
|
|
|
31
31
|
"tslib": "^2.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
34
|
+
"@commitlint/cli": "19.8.1",
|
|
35
|
+
"@commitlint/config-conventional": "19.8.1",
|
|
36
|
+
"@commitlint/cz-commitlint": "19.8.1",
|
|
37
|
+
"@eslint/js": "9.39.4",
|
|
38
|
+
"@softwareventures/eslint-config": "10.0.0-alpha.2",
|
|
39
|
+
"@softwareventures/precise-commits": "4.0.23",
|
|
36
40
|
"@softwareventures/prettier-config": "4.0.0",
|
|
37
|
-
"@softwareventures/
|
|
38
|
-
"@
|
|
39
|
-
"@typescript-eslint/eslint-plugin": "
|
|
40
|
-
"@typescript-eslint/parser": "
|
|
41
|
-
"ava": "
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"eslint": "
|
|
45
|
-
"eslint-
|
|
46
|
-
"eslint-plugin-
|
|
47
|
-
"eslint-plugin-jsdoc": "46.9.0",
|
|
41
|
+
"@softwareventures/tsconfig": "8.1.1",
|
|
42
|
+
"@types/node": "18.19.130",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "8.56.1",
|
|
44
|
+
"@typescript-eslint/parser": "8.56.1",
|
|
45
|
+
"ava": "6.4.0",
|
|
46
|
+
"commitizen": "4.3.1",
|
|
47
|
+
"eslint": "9.39.4",
|
|
48
|
+
"eslint-config-prettier": "10.1.8",
|
|
49
|
+
"eslint-plugin-import": "2.32.0",
|
|
50
|
+
"eslint-plugin-jsdoc": "62.7.1",
|
|
48
51
|
"eslint-plugin-prefer-arrow": "1.2.3",
|
|
49
|
-
"eslint-plugin-sonarjs": "0.
|
|
50
|
-
"husky": "
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"ts-node": "10.9.
|
|
54
|
-
"typescript": "5.
|
|
55
|
-
},
|
|
56
|
-
"eslintConfig": {
|
|
57
|
-
"root": true,
|
|
58
|
-
"extends": "@softwareventures"
|
|
52
|
+
"eslint-plugin-sonarjs": "4.0.1",
|
|
53
|
+
"husky": "9.1.7",
|
|
54
|
+
"inquirer": "9.3.8",
|
|
55
|
+
"prettier": "3.8.1",
|
|
56
|
+
"ts-node": "10.9.2",
|
|
57
|
+
"typescript": "5.9.3"
|
|
59
58
|
},
|
|
60
59
|
"prettier": "@softwareventures/prettier-config",
|
|
61
60
|
"config": {
|
|
62
61
|
"commitizen": {
|
|
63
|
-
"path": "
|
|
62
|
+
"path": "@commitlint/cz-commitlint"
|
|
64
63
|
}
|
|
65
64
|
},
|
|
66
65
|
"ava": {
|
|
@@ -73,5 +72,6 @@
|
|
|
73
72
|
},
|
|
74
73
|
"release": {
|
|
75
74
|
"extends": "@softwareventures/semantic-release-config"
|
|
76
|
-
}
|
|
75
|
+
},
|
|
76
|
+
"packageManager": "yarn@4.12.0"
|
|
77
77
|
}
|
package/.husky/common.sh
DELETED
package/.husky/pre-commit
DELETED