@pawells/typescript-common 1.1.1 → 1.1.5
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/README.md +1 -118
- package/package.json +16 -5
- package/build/array/array.test.d.ts +0 -2
- package/build/array/array.test.d.ts.map +0 -1
- package/build/array/array.test.js +0 -347
- package/build/array/array.test.js.map +0 -1
- package/build/enum/enum.test.d.ts +0 -2
- package/build/enum/enum.test.d.ts.map +0 -1
- package/build/enum/enum.test.js +0 -122
- package/build/enum/enum.test.js.map +0 -1
- package/build/function/function.test.d.ts +0 -2
- package/build/function/function.test.d.ts.map +0 -1
- package/build/function/function.test.js +0 -158
- package/build/function/function.test.js.map +0 -1
- package/build/object/object.test.d.ts +0 -2
- package/build/object/object.test.d.ts.map +0 -1
- package/build/object/object.test.js +0 -432
- package/build/object/object.test.js.map +0 -1
- package/build/string/string.test.d.ts +0 -2
- package/build/string/string.test.d.ts.map +0 -1
- package/build/string/string.test.js +0 -321
- package/build/string/string.test.js.map +0 -1
- package/build/time/time.test.d.ts +0 -2
- package/build/time/time.test.d.ts.map +0 -1
- package/build/time/time.test.js +0 -211
- package/build/time/time.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -186,124 +186,7 @@ Cross-cutting assertions not tied to a single type, plus the shared assertion in
|
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
188
|
yarn install # Install dependencies
|
|
189
|
-
yarn build # Compile TypeScript → ./build/
|
|
190
|
-
yarn dev # Build + run
|
|
191
|
-
yarn watch # Watch mode
|
|
192
|
-
yarn typecheck # Type check without building
|
|
193
|
-
yarn lint # ESLint
|
|
194
|
-
yarn lint:fix # ESLint with auto-fix
|
|
195
|
-
yarn test # Run tests
|
|
196
|
-
yarn test:ui # Interactive Vitest UI
|
|
197
|
-
yarn test:coverage # Tests with coverage report
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## Requirements
|
|
201
|
-
|
|
202
|
-
- Node.js >= 24.0.0
|
|
203
|
-
|
|
204
|
-
## License
|
|
205
|
-
|
|
206
|
-
MIT — See [LICENSE](./LICENSE) for details.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
## API
|
|
210
|
-
|
|
211
|
-
### Array utilities — `ArrayUtils`
|
|
212
|
-
|
|
213
|
-
| Export | Description |
|
|
214
|
-
|--------|-------------|
|
|
215
|
-
| `ArrayChunk(array, size)` | Split an array into chunks of a given size |
|
|
216
|
-
| `ArrayContains(array, predicate)` | Check if any element satisfies a predicate |
|
|
217
|
-
| `ArrayFilter(array, predicate)` | Type-safe array filter |
|
|
218
|
-
| `ArrayGroupBy(array, keyFn)` | Group array elements by a key function |
|
|
219
|
-
| `ArrayIntersection(a, b)` | Return elements present in both arrays |
|
|
220
|
-
| `ArrayShuffle(array)` | Return a shuffled copy of an array |
|
|
221
|
-
| `Unique(array)` | Remove duplicate values |
|
|
222
|
-
| `ArrayDifference(a, b)` | Elements in `a` not present in `b` |
|
|
223
|
-
| `ArrayFlatten(array, depth?)` | Flatten a nested array to a given depth |
|
|
224
|
-
| `ArrayCompact(array)` | Remove `null`/`undefined`, narrowing the type |
|
|
225
|
-
| `ArrayPartition(array, predicate)` | Split into `[matches, rest]` |
|
|
226
|
-
| `ArrayZip(...arrays)` | Zip multiple arrays into tuples |
|
|
227
|
-
| `ArrayRange(start, end, step?)` | Generate a numeric sequence |
|
|
228
|
-
| `ArraySortBy(array, keyFn, direction?)` | Immutable sort by a computed key |
|
|
229
|
-
| `ArrayCountBy(array, keyFn)` | Count elements per group key |
|
|
230
|
-
| `ArraySample(array, n?)` | Random element or `n` random elements |
|
|
231
|
-
|
|
232
|
-
### Object utilities — `ObjectUtils`
|
|
233
|
-
|
|
234
|
-
| Export | Description |
|
|
235
|
-
|--------|-------------|
|
|
236
|
-
| `AssertObject(value)` | Assert a value is a non-null object |
|
|
237
|
-
| `ObjectClone(obj)` | Deep-clone an object |
|
|
238
|
-
| `ObjectEquals(a, b)` | Deep equality check |
|
|
239
|
-
| `ObjectFilter(obj, predicate)` | Filter object entries by predicate |
|
|
240
|
-
| `FilterObject(obj, keys)` | Keep only specified keys |
|
|
241
|
-
| `ObjectPick(obj, keys)` | Pick a subset of keys |
|
|
242
|
-
| `ObjectOmit(obj, keys)` | Omit specified keys |
|
|
243
|
-
| `ObjectMerge(target, ...sources)` | Deep merge objects |
|
|
244
|
-
| `MapObject(obj, fn)` | Map over object values |
|
|
245
|
-
| `TransformObject(obj, fn)` | Transform object entries |
|
|
246
|
-
| `ObjectHash(obj)` | Compute a stable hash of an object |
|
|
247
|
-
| `ObjectSortKeys(obj)` | Return object with keys sorted |
|
|
248
|
-
| `ObjectFromKeyValuePairs(pairs)` | Build an object from `[key, value]` pairs |
|
|
249
|
-
| `ObjectToKeyValuePairs(obj)` | Convert an object to `[key, value]` pairs |
|
|
250
|
-
| `ObjectGetPropertyByPath(obj, path)` | Get a nested property by dot-path |
|
|
251
|
-
| `ObjectSetPropertyByPath(obj, path, value)` | Set a nested property by dot-path |
|
|
252
|
-
| `ObjectInvert(obj)` | Swap keys and values |
|
|
253
|
-
| `ObjectFlatten(obj, separator?)` | Flatten nested object to dot-separated keys |
|
|
254
|
-
| `ObjectDiff(objA, objB)` | Compute added/removed/changed keys between two objects |
|
|
255
|
-
|
|
256
|
-
### String utilities — `StringUtils`
|
|
257
|
-
|
|
258
|
-
| Export | Description |
|
|
259
|
-
|--------|-------------|
|
|
260
|
-
| `CamelCase(str)` | Convert a string to camelCase |
|
|
261
|
-
| `PASCAL_CASE(str)` | Convert a string to PascalCase |
|
|
262
|
-
| `KEBAB_CASE(str)` | Convert a string to kebab-case |
|
|
263
|
-
| `SNAKE_CASE(str)` | Convert a string to snake_case |
|
|
264
|
-
| `SCREAMING_SNAKE_CASE(str)` | Convert a string to SCREAMING_SNAKE_CASE |
|
|
265
|
-
| `FormatString(template, values)` | Simple string template formatting |
|
|
266
|
-
| `EscapeHTML(str)` | Escape HTML special characters |
|
|
267
|
-
| `StripHTML(str)` | Remove all HTML tags from a string |
|
|
268
|
-
| `Pluralize(word, count, plural?)` | Return singular or plural form based on count |
|
|
269
|
-
| `WordCount(str)` | Count the number of words in a string |
|
|
270
|
-
| `CountOccurrences(str, substr)` | Count non-overlapping occurrences of a substring |
|
|
271
|
-
|
|
272
|
-
### Time utilities — `TimeUtils`
|
|
273
|
-
|
|
274
|
-
| Export | Description |
|
|
275
|
-
|--------|-------------|
|
|
276
|
-
| `ElapsedTime` | Measure elapsed time with human-readable output |
|
|
277
|
-
| `Stopwatch` | Lap-based stopwatch for benchmarking |
|
|
278
|
-
|
|
279
|
-
### Enum utilities — `EnumUtils`
|
|
280
|
-
|
|
281
|
-
| Export | Description |
|
|
282
|
-
|--------|-------------|
|
|
283
|
-
| `EnumKeys(enumObj)` | Get keys of a TypeScript enum |
|
|
284
|
-
| `EnumValues(enumObj)` | Get values of a TypeScript enum |
|
|
285
|
-
| `EnumEntries(enumObj)` | Get key-value pairs of a TypeScript enum |
|
|
286
|
-
| `ValidateEnumValue(enumObj, value)` | Check if a value is a valid enum member |
|
|
287
|
-
| `EnumKeyByValue(enumObj, value)` | Look up an enum key by its value |
|
|
288
|
-
| `EnumSafeValue(enumObj, value)` | Return the value if valid, or `undefined` |
|
|
289
|
-
|
|
290
|
-
### Function utilities — `FunctionUtils`
|
|
291
|
-
|
|
292
|
-
| Export | Description |
|
|
293
|
-
|--------|-------------|
|
|
294
|
-
| `Debounce(fn, ms)` | Delay execution until `ms` ms after the last call |
|
|
295
|
-
| `Throttle(fn, ms)` | Limit execution to at most once per `ms` ms |
|
|
296
|
-
| `Memoize(fn, keyFn?)` | Cache results by serialised arguments |
|
|
297
|
-
| `Once(fn)` | Execute a function at most once, caching the result |
|
|
298
|
-
| `Pipe(...fns)` | Compose functions left-to-right |
|
|
299
|
-
| `Compose(...fns)` | Compose functions right-to-left |
|
|
300
|
-
| `Sleep(ms)` | Return a `Promise` that resolves after `ms` ms |
|
|
301
|
-
|
|
302
|
-
## Development
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
yarn install # Install dependencies
|
|
306
|
-
yarn build # Compile TypeScript → ./build/
|
|
189
|
+
yarn build # Compile TypeScript (tsconfig.build.json) → ./build/
|
|
307
190
|
yarn dev # Build + run
|
|
308
191
|
yarn watch # Watch mode
|
|
309
192
|
yarn typecheck # Type check without building
|
package/package.json
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pawells/typescript-common",
|
|
3
3
|
"displayName": "TypeScript Common Utilities",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.5",
|
|
5
5
|
"description": "Shared TypeScript utility library — array, object, string, time, and enum helpers. ESM-only, no runtime dependencies.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./build/index.js",
|
|
8
|
+
"types": "./build/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./build/index.d.ts",
|
|
12
|
+
"import": "./build/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
8
15
|
"scripts": {
|
|
9
|
-
"build": "tsc",
|
|
16
|
+
"build": "tsc --project tsconfig.build.json",
|
|
10
17
|
"start": "node build/index.js",
|
|
11
18
|
"dev": "tsc && node build/index.js",
|
|
12
19
|
"watch": "tsc --watch",
|
|
@@ -19,7 +26,6 @@
|
|
|
19
26
|
"prepublishOnly": "npm run build",
|
|
20
27
|
"prepare": "husky"
|
|
21
28
|
},
|
|
22
|
-
"dependencies": {},
|
|
23
29
|
"devDependencies": {
|
|
24
30
|
"@eslint/js": "^10.0.1",
|
|
25
31
|
"@stylistic/eslint-plugin": "^5.9.0",
|
|
@@ -63,8 +69,13 @@
|
|
|
63
69
|
"engines": {
|
|
64
70
|
"node": ">=24.0.0"
|
|
65
71
|
},
|
|
72
|
+
"packageManager": "yarn@4.12.0",
|
|
66
73
|
"files": [
|
|
67
|
-
"build
|
|
74
|
+
"build/**/*.js",
|
|
75
|
+
"build/**/*.d.ts",
|
|
76
|
+
"build/**/*.js.map",
|
|
77
|
+
"build/**/*.d.ts.map",
|
|
78
|
+
"!build/**/*.test.*",
|
|
68
79
|
"README.md",
|
|
69
80
|
"LICENSE",
|
|
70
81
|
".env.example"
|
|
@@ -72,4 +83,4 @@
|
|
|
72
83
|
"publishConfig": {
|
|
73
84
|
"access": "public"
|
|
74
85
|
}
|
|
75
|
-
}
|
|
86
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array.test.d.ts","sourceRoot":"","sources":["../../src/array/array.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { ArrayChunk } from './array-chunk.js';
|
|
3
|
-
import { ArrayContains } from './array-contains.js';
|
|
4
|
-
import { ArrayFilter } from './array-filter.js';
|
|
5
|
-
import { ArrayGroupBy } from './array-group-by.js';
|
|
6
|
-
import { ArrayIntersection } from './array-intersection.js';
|
|
7
|
-
import { ArrayShuffle } from './array-shuffle.js';
|
|
8
|
-
import { Unique } from './unique.js';
|
|
9
|
-
import { ArrayDifference } from './array-difference.js';
|
|
10
|
-
import { ArrayFlatten } from './array-flatten.js';
|
|
11
|
-
import { ArrayCompact } from './array-compact.js';
|
|
12
|
-
import { ArrayPartition } from './array-partition.js';
|
|
13
|
-
import { ArrayZip } from './array-zip.js';
|
|
14
|
-
import { ArrayRange } from './array-range.js';
|
|
15
|
-
import { ArraySortBy } from './array-sort-by.js';
|
|
16
|
-
import { ArrayCountBy } from './array-count-by.js';
|
|
17
|
-
import { ArraySample } from './array-sample.js';
|
|
18
|
-
describe('ArrayChunk', () => {
|
|
19
|
-
it('splits an array into equal-size chunks', () => {
|
|
20
|
-
expect(ArrayChunk([1, 2, 3, 4], 2)).toEqual([[1, 2], [3, 4]]);
|
|
21
|
-
});
|
|
22
|
-
it('handles a remainder chunk', () => {
|
|
23
|
-
expect(ArrayChunk([1, 2, 3, 4, 5], 2)).toEqual([[1, 2], [3, 4], [5]]);
|
|
24
|
-
});
|
|
25
|
-
it('returns the whole array in one chunk when size >= length', () => {
|
|
26
|
-
expect(ArrayChunk([1, 2, 3], 10)).toEqual([[1, 2, 3]]);
|
|
27
|
-
});
|
|
28
|
-
it('returns empty array for empty input', () => {
|
|
29
|
-
expect(ArrayChunk([], 2)).toEqual([]);
|
|
30
|
-
});
|
|
31
|
-
it('returns empty array for size <= 0', () => {
|
|
32
|
-
expect(ArrayChunk([1, 2, 3], 0)).toEqual([]);
|
|
33
|
-
expect(ArrayChunk([1, 2, 3], -1)).toEqual([]);
|
|
34
|
-
});
|
|
35
|
-
it('returns empty array for null/undefined input', () => {
|
|
36
|
-
expect(ArrayChunk(null, 2)).toEqual([]);
|
|
37
|
-
});
|
|
38
|
-
it('handles chunk size of 1', () => {
|
|
39
|
-
expect(ArrayChunk([1, 2, 3], 1)).toEqual([[1], [2], [3]]);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe('ArrayContains', () => {
|
|
43
|
-
it('returns true when an element passes the predicate', () => {
|
|
44
|
-
expect(ArrayContains([1, 2, 3], (x) => x > 2)).toBe(true);
|
|
45
|
-
});
|
|
46
|
-
it('returns false when no element passes the predicate', () => {
|
|
47
|
-
expect(ArrayContains([1, 2, 3], (x) => x > 10)).toBe(false);
|
|
48
|
-
});
|
|
49
|
-
it('returns false for an empty array', () => {
|
|
50
|
-
expect(ArrayContains([], () => true)).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
it('returns false for null/undefined input', () => {
|
|
53
|
-
expect(ArrayContains(null, () => true)).toBe(false);
|
|
54
|
-
});
|
|
55
|
-
it('works with object arrays', () => {
|
|
56
|
-
const users = [{ name: 'Alice' }, { name: 'Bob' }];
|
|
57
|
-
expect(ArrayContains(users, (u) => u.name === 'Bob')).toBe(true);
|
|
58
|
-
expect(ArrayContains(users, (u) => u.name === 'Charlie')).toBe(false);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('ArrayFilter', () => {
|
|
62
|
-
it('filters using a predicate function', () => {
|
|
63
|
-
expect(ArrayFilter([1, 2, 3, 4], (n) => n > 2)).toEqual([3, 4]);
|
|
64
|
-
});
|
|
65
|
-
it('filters using object criteria', () => {
|
|
66
|
-
const users = [
|
|
67
|
-
{ name: 'Alice', age: 25 },
|
|
68
|
-
{ name: 'Bob', age: 30 },
|
|
69
|
-
];
|
|
70
|
-
expect(ArrayFilter(users, { age: 30 })).toEqual([{ name: 'Bob', age: 30 }]);
|
|
71
|
-
});
|
|
72
|
-
it('filters using nested property criteria', () => {
|
|
73
|
-
const data = [
|
|
74
|
-
{ user: { name: 'Alice', active: true } },
|
|
75
|
-
{ user: { name: 'Bob', active: false } },
|
|
76
|
-
];
|
|
77
|
-
expect(ArrayFilter(data, { 'user.name': 'Alice' })).toEqual([data[0]]);
|
|
78
|
-
});
|
|
79
|
-
it('filters using array property criteria', () => {
|
|
80
|
-
const posts = [
|
|
81
|
-
{ tags: ['js', 'web'] },
|
|
82
|
-
{ tags: ['ts', 'node'] },
|
|
83
|
-
];
|
|
84
|
-
expect(ArrayFilter(posts, { tags: 'js' })).toEqual([posts[0]]);
|
|
85
|
-
});
|
|
86
|
-
it('returns empty array when nothing matches', () => {
|
|
87
|
-
expect(ArrayFilter([1, 2, 3], (n) => n > 100)).toEqual([]);
|
|
88
|
-
});
|
|
89
|
-
it('returns all elements when everything matches', () => {
|
|
90
|
-
expect(ArrayFilter([1, 2, 3], (n) => n > 0)).toEqual([1, 2, 3]);
|
|
91
|
-
});
|
|
92
|
-
it('handles multiple criteria keys', () => {
|
|
93
|
-
const users = [
|
|
94
|
-
{ name: 'Alice', role: 'admin' },
|
|
95
|
-
{ name: 'Bob', role: 'user' },
|
|
96
|
-
{ name: 'Alice', role: 'user' },
|
|
97
|
-
];
|
|
98
|
-
expect(ArrayFilter(users, { name: 'Alice', role: 'admin' })).toEqual([users[0]]);
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('ArrayGroupBy', () => {
|
|
102
|
-
it('groups by a string key', () => {
|
|
103
|
-
const items = [
|
|
104
|
-
{ category: 'fruit', name: 'apple' },
|
|
105
|
-
{ category: 'veggie', name: 'carrot' },
|
|
106
|
-
{ category: 'fruit', name: 'banana' },
|
|
107
|
-
];
|
|
108
|
-
const grouped = ArrayGroupBy(items, (item) => item.category);
|
|
109
|
-
expect(grouped['fruit']).toHaveLength(2);
|
|
110
|
-
expect(grouped['veggie']).toHaveLength(1);
|
|
111
|
-
});
|
|
112
|
-
it('returns an empty object for an empty array', () => {
|
|
113
|
-
expect(ArrayGroupBy([], (x) => x)).toEqual({});
|
|
114
|
-
});
|
|
115
|
-
it('returns empty object for null input', () => {
|
|
116
|
-
expect(ArrayGroupBy(null, (x) => x)).toEqual({});
|
|
117
|
-
});
|
|
118
|
-
it('groups numbers', () => {
|
|
119
|
-
const result = ArrayGroupBy([1, 2, 3, 4, 5, 6], (n) => (n % 2 === 0 ? 'even' : 'odd'));
|
|
120
|
-
expect(result['even']).toEqual([2, 4, 6]);
|
|
121
|
-
expect(result['odd']).toEqual([1, 3, 5]);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
describe('ArrayIntersection', () => {
|
|
125
|
-
it('returns elements in both arrays', () => {
|
|
126
|
-
expect(ArrayIntersection([1, 2, 3], [2, 3, 4])).toEqual([2, 3]);
|
|
127
|
-
});
|
|
128
|
-
it('returns empty when there is no overlap', () => {
|
|
129
|
-
expect(ArrayIntersection([1, 2], [3, 4])).toEqual([]);
|
|
130
|
-
});
|
|
131
|
-
it('handles empty arrays', () => {
|
|
132
|
-
expect(ArrayIntersection([], [1, 2])).toEqual([]);
|
|
133
|
-
expect(ArrayIntersection([1, 2], [])).toEqual([]);
|
|
134
|
-
});
|
|
135
|
-
it('handles null inputs', () => {
|
|
136
|
-
expect(ArrayIntersection(null, [1, 2])).toEqual([]);
|
|
137
|
-
expect(ArrayIntersection([1, 2], null)).toEqual([]);
|
|
138
|
-
});
|
|
139
|
-
it('uses a custom comparator', () => {
|
|
140
|
-
const a = [{ id: 1 }, { id: 2 }];
|
|
141
|
-
const b = [{ id: 2 }, { id: 3 }];
|
|
142
|
-
const result = ArrayIntersection(a, b, (x, y) => x.id === y.id);
|
|
143
|
-
expect(result).toEqual([{ id: 2 }]);
|
|
144
|
-
});
|
|
145
|
-
it('handles duplicates using set deduplication', () => {
|
|
146
|
-
expect(ArrayIntersection([1, 1, 2], [1, 2, 2])).toEqual([1, 1, 2]);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
describe('ArrayShuffle', () => {
|
|
150
|
-
it('returns a new array with the same elements', () => {
|
|
151
|
-
const original = [1, 2, 3, 4, 5];
|
|
152
|
-
const shuffled = ArrayShuffle(original);
|
|
153
|
-
expect(shuffled).toHaveLength(original.length);
|
|
154
|
-
expect(shuffled.sort()).toEqual([...original].sort());
|
|
155
|
-
});
|
|
156
|
-
it('does not mutate the original array', () => {
|
|
157
|
-
const original = [1, 2, 3];
|
|
158
|
-
const copy = [...original];
|
|
159
|
-
ArrayShuffle(original);
|
|
160
|
-
expect(original).toEqual(copy);
|
|
161
|
-
});
|
|
162
|
-
it('returns empty array for null input', () => {
|
|
163
|
-
expect(ArrayShuffle(null)).toEqual([]);
|
|
164
|
-
});
|
|
165
|
-
it('handles single-element arrays', () => {
|
|
166
|
-
expect(ArrayShuffle([42])).toEqual([42]);
|
|
167
|
-
});
|
|
168
|
-
it('handles empty arrays', () => {
|
|
169
|
-
expect(ArrayShuffle([])).toEqual([]);
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
describe('Unique', () => {
|
|
173
|
-
it('removes duplicate primitives', () => {
|
|
174
|
-
expect(Unique([1, 2, 2, 3, 3, 3])).toEqual([1, 2, 3]);
|
|
175
|
-
});
|
|
176
|
-
it('removes duplicate strings', () => {
|
|
177
|
-
expect(Unique(['a', 'b', 'a', 'c'])).toEqual(['a', 'b', 'c']);
|
|
178
|
-
});
|
|
179
|
-
it('returns the same array when no duplicates', () => {
|
|
180
|
-
expect(Unique([1, 2, 3])).toEqual([1, 2, 3]);
|
|
181
|
-
});
|
|
182
|
-
it('returns empty array for empty input', () => {
|
|
183
|
-
expect(Unique([])).toEqual([]);
|
|
184
|
-
});
|
|
185
|
-
it('returns empty array for null input', () => {
|
|
186
|
-
expect(Unique(null)).toEqual([]);
|
|
187
|
-
});
|
|
188
|
-
it('uses reference equality for objects', () => {
|
|
189
|
-
const obj = { a: 1 };
|
|
190
|
-
expect(Unique([obj, obj])).toEqual([obj]);
|
|
191
|
-
expect(Unique([{ a: 1 }, { a: 1 }])).toHaveLength(2);
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
describe('ArrayDifference', () => {
|
|
195
|
-
it('returns elements in first array not in second', () => {
|
|
196
|
-
expect(ArrayDifference([1, 2, 3, 4], [2, 4])).toEqual([1, 3]);
|
|
197
|
-
});
|
|
198
|
-
it('returns a copy of array1 when array2 is empty', () => {
|
|
199
|
-
expect(ArrayDifference([1, 2, 3], [])).toEqual([1, 2, 3]);
|
|
200
|
-
});
|
|
201
|
-
it('returns empty when all elements are excluded', () => {
|
|
202
|
-
expect(ArrayDifference([1, 2], [1, 2, 3])).toEqual([]);
|
|
203
|
-
});
|
|
204
|
-
it('uses a custom comparator', () => {
|
|
205
|
-
const a = [{ id: 1 }, { id: 2 }];
|
|
206
|
-
const b = [{ id: 2 }];
|
|
207
|
-
expect(ArrayDifference(a, b, (x, y) => x.id === y.id)).toEqual([{ id: 1 }]);
|
|
208
|
-
});
|
|
209
|
-
it('returns empty for null input', () => {
|
|
210
|
-
expect(ArrayDifference(null, [1])).toEqual([]);
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
describe('ArrayFlatten', () => {
|
|
214
|
-
it('flattens one level by default', () => {
|
|
215
|
-
expect(ArrayFlatten([1, [2, [3]]])).toEqual([1, 2, 3]);
|
|
216
|
-
});
|
|
217
|
-
it('flattens to a specified depth', () => {
|
|
218
|
-
expect(ArrayFlatten([1, [2, [3, [4]]]], 1)).toEqual([1, 2, [3, [4]]]);
|
|
219
|
-
});
|
|
220
|
-
it('handles already-flat arrays', () => {
|
|
221
|
-
expect(ArrayFlatten([1, 2, 3])).toEqual([1, 2, 3]);
|
|
222
|
-
});
|
|
223
|
-
it('returns empty for null input', () => {
|
|
224
|
-
expect(ArrayFlatten(null)).toEqual([]);
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
describe('ArrayCompact', () => {
|
|
228
|
-
it('removes null and undefined', () => {
|
|
229
|
-
expect(ArrayCompact([1, null, 2, undefined, 3])).toEqual([1, 2, 3]);
|
|
230
|
-
});
|
|
231
|
-
it('keeps falsy-but-defined values like 0 and empty string', () => {
|
|
232
|
-
expect(ArrayCompact([0, '', false, null, undefined])).toEqual([0, '', false]);
|
|
233
|
-
});
|
|
234
|
-
it('returns empty for null input', () => {
|
|
235
|
-
expect(ArrayCompact(null)).toEqual([]);
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
describe('ArrayPartition', () => {
|
|
239
|
-
it('splits into matches and non-matches', () => {
|
|
240
|
-
const [evens, odds] = ArrayPartition([1, 2, 3, 4, 5], (n) => n % 2 === 0);
|
|
241
|
-
expect(evens).toEqual([2, 4]);
|
|
242
|
-
expect(odds).toEqual([1, 3, 5]);
|
|
243
|
-
});
|
|
244
|
-
it('handles all matching', () => {
|
|
245
|
-
const [t, f] = ArrayPartition([2, 4], (n) => n % 2 === 0);
|
|
246
|
-
expect(t).toEqual([2, 4]);
|
|
247
|
-
expect(f).toEqual([]);
|
|
248
|
-
});
|
|
249
|
-
it('handles no matches', () => {
|
|
250
|
-
const [t, f] = ArrayPartition([1, 3], (n) => n % 2 === 0);
|
|
251
|
-
expect(t).toEqual([]);
|
|
252
|
-
expect(f).toEqual([1, 3]);
|
|
253
|
-
});
|
|
254
|
-
it('returns [[], []] for null input', () => {
|
|
255
|
-
expect(ArrayPartition(null, () => true)).toEqual([[], []]);
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
describe('ArrayZip', () => {
|
|
259
|
-
it('zips two arrays', () => {
|
|
260
|
-
expect(ArrayZip([1, 2, 3], ['a', 'b', 'c'])).toEqual([[1, 'a'], [2, 'b'], [3, 'c']]);
|
|
261
|
-
});
|
|
262
|
-
it('stops at the shortest array', () => {
|
|
263
|
-
expect(ArrayZip([1, 2, 3], ['a', 'b'])).toEqual([[1, 'a'], [2, 'b']]);
|
|
264
|
-
});
|
|
265
|
-
it('zips three arrays', () => {
|
|
266
|
-
expect(ArrayZip([1, 2], ['a', 'b'], [true, false])).toEqual([[1, 'a', true], [2, 'b', false]]);
|
|
267
|
-
});
|
|
268
|
-
it('returns empty for no arguments', () => {
|
|
269
|
-
expect(ArrayZip()).toEqual([]);
|
|
270
|
-
});
|
|
271
|
-
});
|
|
272
|
-
describe('ArrayRange', () => {
|
|
273
|
-
it('generates ascending range', () => {
|
|
274
|
-
expect(ArrayRange(0, 5)).toEqual([0, 1, 2, 3, 4]);
|
|
275
|
-
});
|
|
276
|
-
it('generates range with step', () => {
|
|
277
|
-
expect(ArrayRange(0, 10, 2)).toEqual([0, 2, 4, 6, 8]);
|
|
278
|
-
});
|
|
279
|
-
it('generates descending range', () => {
|
|
280
|
-
expect(ArrayRange(5, 0, -1)).toEqual([5, 4, 3, 2, 1]);
|
|
281
|
-
});
|
|
282
|
-
it('returns empty for step of 0', () => {
|
|
283
|
-
expect(ArrayRange(0, 5, 0)).toEqual([]);
|
|
284
|
-
});
|
|
285
|
-
it('returns empty when start >= end for positive step', () => {
|
|
286
|
-
expect(ArrayRange(5, 5)).toEqual([]);
|
|
287
|
-
expect(ArrayRange(6, 5)).toEqual([]);
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
describe('ArraySortBy', () => {
|
|
291
|
-
it('sorts objects by a string key ascending', () => {
|
|
292
|
-
const result = ArraySortBy([{ name: 'Charlie' }, { name: 'Alice' }, { name: 'Bob' }], (u) => u.name);
|
|
293
|
-
expect(result.map((u) => u.name)).toEqual(['Alice', 'Bob', 'Charlie']);
|
|
294
|
-
});
|
|
295
|
-
it('sorts numbers descending', () => {
|
|
296
|
-
expect(ArraySortBy([3, 1, 4, 1, 5], (n) => n, 'desc')).toEqual([5, 4, 3, 1, 1]);
|
|
297
|
-
});
|
|
298
|
-
it('does not mutate the original', () => {
|
|
299
|
-
const original = [3, 1, 2];
|
|
300
|
-
const sorted = ArraySortBy(original, (n) => n);
|
|
301
|
-
expect(original).toEqual([3, 1, 2]);
|
|
302
|
-
expect(sorted).toEqual([1, 2, 3]);
|
|
303
|
-
});
|
|
304
|
-
it('returns empty for null input', () => {
|
|
305
|
-
expect(ArraySortBy(null, (_n) => 0)).toEqual([]);
|
|
306
|
-
});
|
|
307
|
-
});
|
|
308
|
-
describe('ArrayCountBy', () => {
|
|
309
|
-
it('counts by string key', () => {
|
|
310
|
-
const result = ArrayCountBy(['a', 'b', 'a', 'c', 'b', 'b'], (s) => s);
|
|
311
|
-
expect(result).toEqual({ a: 2, b: 3, c: 1 });
|
|
312
|
-
});
|
|
313
|
-
it('counts by computed key', () => {
|
|
314
|
-
const result = ArrayCountBy([1, 2, 3, 4, 5, 6], (n) => (n % 2 === 0 ? 'even' : 'odd'));
|
|
315
|
-
expect(result).toEqual({ even: 3, odd: 3 });
|
|
316
|
-
});
|
|
317
|
-
it('returns empty object for null input', () => {
|
|
318
|
-
expect(ArrayCountBy(null, (_n) => '')).toEqual({});
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
describe('ArraySample', () => {
|
|
322
|
-
it('returns a single element within the array', () => {
|
|
323
|
-
const arr = [1, 2, 3, 4, 5];
|
|
324
|
-
const result = ArraySample(arr);
|
|
325
|
-
expect(arr).toContain(result);
|
|
326
|
-
});
|
|
327
|
-
it('returns undefined for empty array', () => {
|
|
328
|
-
expect(ArraySample([])).toBeUndefined();
|
|
329
|
-
});
|
|
330
|
-
it('returns n elements', () => {
|
|
331
|
-
const arr = [1, 2, 3, 4, 5];
|
|
332
|
-
const result = ArraySample(arr, 3);
|
|
333
|
-
expect(result).toHaveLength(3);
|
|
334
|
-
result.forEach((v) => expect(arr).toContain(v));
|
|
335
|
-
});
|
|
336
|
-
it('returns no more than array length', () => {
|
|
337
|
-
expect(ArraySample([1, 2], 10)).toHaveLength(2);
|
|
338
|
-
});
|
|
339
|
-
it('returns no duplicates when sampling n', () => {
|
|
340
|
-
const result = ArraySample([1, 2, 3, 4, 5], 5);
|
|
341
|
-
expect(new Set(result).size).toBe(5);
|
|
342
|
-
});
|
|
343
|
-
it('returns empty array when n=0', () => {
|
|
344
|
-
expect(ArraySample([1, 2, 3], 0)).toEqual([]);
|
|
345
|
-
});
|
|
346
|
-
});
|
|
347
|
-
//# sourceMappingURL=array.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array.test.js","sourceRoot":"","sources":["../../src/array/array.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enum.test.d.ts","sourceRoot":"","sources":["../../src/enum/enum.test.ts"],"names":[],"mappings":""}
|