@gkucmierz/utils 1.1.0 → 1.1.2

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.
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npm test
@@ -0,0 +1,752 @@
1
+ {
2
+ "name": "@gkucmierz/utils",
3
+ "version": "1.1.2",
4
+ "lockfileVersion": 2,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "@gkucmierz/utils",
9
+ "version": "1.1.2",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "jasmine": "^4.4.0",
13
+ "nodemon": "^2.0.20"
14
+ },
15
+ "devDependencies": {
16
+ "husky": "^8.0.1"
17
+ }
18
+ },
19
+ "node_modules/abbrev": {
20
+ "version": "1.1.1",
21
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
22
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
23
+ },
24
+ "node_modules/anymatch": {
25
+ "version": "3.1.2",
26
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
27
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
28
+ "dependencies": {
29
+ "normalize-path": "^3.0.0",
30
+ "picomatch": "^2.0.4"
31
+ },
32
+ "engines": {
33
+ "node": ">= 8"
34
+ }
35
+ },
36
+ "node_modules/balanced-match": {
37
+ "version": "1.0.2",
38
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
39
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
40
+ },
41
+ "node_modules/binary-extensions": {
42
+ "version": "2.2.0",
43
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
44
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
45
+ "engines": {
46
+ "node": ">=8"
47
+ }
48
+ },
49
+ "node_modules/brace-expansion": {
50
+ "version": "1.1.11",
51
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
52
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
53
+ "dependencies": {
54
+ "balanced-match": "^1.0.0",
55
+ "concat-map": "0.0.1"
56
+ }
57
+ },
58
+ "node_modules/braces": {
59
+ "version": "3.0.2",
60
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
61
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
62
+ "dependencies": {
63
+ "fill-range": "^7.0.1"
64
+ },
65
+ "engines": {
66
+ "node": ">=8"
67
+ }
68
+ },
69
+ "node_modules/chokidar": {
70
+ "version": "3.5.3",
71
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
72
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
73
+ "funding": [
74
+ {
75
+ "type": "individual",
76
+ "url": "https://paulmillr.com/funding/"
77
+ }
78
+ ],
79
+ "dependencies": {
80
+ "anymatch": "~3.1.2",
81
+ "braces": "~3.0.2",
82
+ "glob-parent": "~5.1.2",
83
+ "is-binary-path": "~2.1.0",
84
+ "is-glob": "~4.0.1",
85
+ "normalize-path": "~3.0.0",
86
+ "readdirp": "~3.6.0"
87
+ },
88
+ "engines": {
89
+ "node": ">= 8.10.0"
90
+ },
91
+ "optionalDependencies": {
92
+ "fsevents": "~2.3.2"
93
+ }
94
+ },
95
+ "node_modules/concat-map": {
96
+ "version": "0.0.1",
97
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
98
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
99
+ },
100
+ "node_modules/debug": {
101
+ "version": "3.2.7",
102
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
103
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
104
+ "dependencies": {
105
+ "ms": "^2.1.1"
106
+ }
107
+ },
108
+ "node_modules/fill-range": {
109
+ "version": "7.0.1",
110
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
111
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
112
+ "dependencies": {
113
+ "to-regex-range": "^5.0.1"
114
+ },
115
+ "engines": {
116
+ "node": ">=8"
117
+ }
118
+ },
119
+ "node_modules/fs.realpath": {
120
+ "version": "1.0.0",
121
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
122
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
123
+ },
124
+ "node_modules/fsevents": {
125
+ "version": "2.3.2",
126
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
127
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
128
+ "hasInstallScript": true,
129
+ "optional": true,
130
+ "os": [
131
+ "darwin"
132
+ ],
133
+ "engines": {
134
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
135
+ }
136
+ },
137
+ "node_modules/glob": {
138
+ "version": "7.2.3",
139
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
140
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
141
+ "dependencies": {
142
+ "fs.realpath": "^1.0.0",
143
+ "inflight": "^1.0.4",
144
+ "inherits": "2",
145
+ "minimatch": "^3.1.1",
146
+ "once": "^1.3.0",
147
+ "path-is-absolute": "^1.0.0"
148
+ },
149
+ "engines": {
150
+ "node": "*"
151
+ },
152
+ "funding": {
153
+ "url": "https://github.com/sponsors/isaacs"
154
+ }
155
+ },
156
+ "node_modules/glob-parent": {
157
+ "version": "5.1.2",
158
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
159
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
160
+ "dependencies": {
161
+ "is-glob": "^4.0.1"
162
+ },
163
+ "engines": {
164
+ "node": ">= 6"
165
+ }
166
+ },
167
+ "node_modules/has-flag": {
168
+ "version": "3.0.0",
169
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
170
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
171
+ "engines": {
172
+ "node": ">=4"
173
+ }
174
+ },
175
+ "node_modules/husky": {
176
+ "version": "8.0.1",
177
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
178
+ "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
179
+ "dev": true,
180
+ "bin": {
181
+ "husky": "lib/bin.js"
182
+ },
183
+ "engines": {
184
+ "node": ">=14"
185
+ },
186
+ "funding": {
187
+ "url": "https://github.com/sponsors/typicode"
188
+ }
189
+ },
190
+ "node_modules/ignore-by-default": {
191
+ "version": "1.0.1",
192
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
193
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
194
+ },
195
+ "node_modules/inflight": {
196
+ "version": "1.0.6",
197
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
198
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
199
+ "dependencies": {
200
+ "once": "^1.3.0",
201
+ "wrappy": "1"
202
+ }
203
+ },
204
+ "node_modules/inherits": {
205
+ "version": "2.0.4",
206
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
207
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
208
+ },
209
+ "node_modules/is-binary-path": {
210
+ "version": "2.1.0",
211
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
212
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
213
+ "dependencies": {
214
+ "binary-extensions": "^2.0.0"
215
+ },
216
+ "engines": {
217
+ "node": ">=8"
218
+ }
219
+ },
220
+ "node_modules/is-extglob": {
221
+ "version": "2.1.1",
222
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
223
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
224
+ "engines": {
225
+ "node": ">=0.10.0"
226
+ }
227
+ },
228
+ "node_modules/is-glob": {
229
+ "version": "4.0.3",
230
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
231
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
232
+ "dependencies": {
233
+ "is-extglob": "^2.1.1"
234
+ },
235
+ "engines": {
236
+ "node": ">=0.10.0"
237
+ }
238
+ },
239
+ "node_modules/is-number": {
240
+ "version": "7.0.0",
241
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
242
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
243
+ "engines": {
244
+ "node": ">=0.12.0"
245
+ }
246
+ },
247
+ "node_modules/jasmine": {
248
+ "version": "4.4.0",
249
+ "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.4.0.tgz",
250
+ "integrity": "sha512-xrbOyYkkCvgduNw7CKktDtNb+BwwBv/zvQeHpTkbxqQ37AJL5V4sY3jHoMIJPP/hTc3QxLVwOyxc87AqA+kw5g==",
251
+ "dependencies": {
252
+ "glob": "^7.1.6",
253
+ "jasmine-core": "^4.4.0"
254
+ },
255
+ "bin": {
256
+ "jasmine": "bin/jasmine.js"
257
+ }
258
+ },
259
+ "node_modules/jasmine-core": {
260
+ "version": "4.4.0",
261
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.4.0.tgz",
262
+ "integrity": "sha512-+l482uImx5BVd6brJYlaHe2UwfKoZBqQfNp20ZmdNfsjGFTemGfqHLsXjKEW23w9R/m8WYeFc9JmIgjj6dUtAA=="
263
+ },
264
+ "node_modules/minimatch": {
265
+ "version": "3.1.2",
266
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
267
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
268
+ "dependencies": {
269
+ "brace-expansion": "^1.1.7"
270
+ },
271
+ "engines": {
272
+ "node": "*"
273
+ }
274
+ },
275
+ "node_modules/ms": {
276
+ "version": "2.1.3",
277
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
278
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
279
+ },
280
+ "node_modules/nodemon": {
281
+ "version": "2.0.20",
282
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
283
+ "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
284
+ "dependencies": {
285
+ "chokidar": "^3.5.2",
286
+ "debug": "^3.2.7",
287
+ "ignore-by-default": "^1.0.1",
288
+ "minimatch": "^3.1.2",
289
+ "pstree.remy": "^1.1.8",
290
+ "semver": "^5.7.1",
291
+ "simple-update-notifier": "^1.0.7",
292
+ "supports-color": "^5.5.0",
293
+ "touch": "^3.1.0",
294
+ "undefsafe": "^2.0.5"
295
+ },
296
+ "bin": {
297
+ "nodemon": "bin/nodemon.js"
298
+ },
299
+ "engines": {
300
+ "node": ">=8.10.0"
301
+ },
302
+ "funding": {
303
+ "type": "opencollective",
304
+ "url": "https://opencollective.com/nodemon"
305
+ }
306
+ },
307
+ "node_modules/nopt": {
308
+ "version": "1.0.10",
309
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
310
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
311
+ "dependencies": {
312
+ "abbrev": "1"
313
+ },
314
+ "bin": {
315
+ "nopt": "bin/nopt.js"
316
+ },
317
+ "engines": {
318
+ "node": "*"
319
+ }
320
+ },
321
+ "node_modules/normalize-path": {
322
+ "version": "3.0.0",
323
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
324
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
325
+ "engines": {
326
+ "node": ">=0.10.0"
327
+ }
328
+ },
329
+ "node_modules/once": {
330
+ "version": "1.4.0",
331
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
332
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
333
+ "dependencies": {
334
+ "wrappy": "1"
335
+ }
336
+ },
337
+ "node_modules/path-is-absolute": {
338
+ "version": "1.0.1",
339
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
340
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
341
+ "engines": {
342
+ "node": ">=0.10.0"
343
+ }
344
+ },
345
+ "node_modules/picomatch": {
346
+ "version": "2.3.1",
347
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
348
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
349
+ "engines": {
350
+ "node": ">=8.6"
351
+ },
352
+ "funding": {
353
+ "url": "https://github.com/sponsors/jonschlinkert"
354
+ }
355
+ },
356
+ "node_modules/pstree.remy": {
357
+ "version": "1.1.8",
358
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
359
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
360
+ },
361
+ "node_modules/readdirp": {
362
+ "version": "3.6.0",
363
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
364
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
365
+ "dependencies": {
366
+ "picomatch": "^2.2.1"
367
+ },
368
+ "engines": {
369
+ "node": ">=8.10.0"
370
+ }
371
+ },
372
+ "node_modules/semver": {
373
+ "version": "5.7.1",
374
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
375
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
376
+ "bin": {
377
+ "semver": "bin/semver"
378
+ }
379
+ },
380
+ "node_modules/simple-update-notifier": {
381
+ "version": "1.0.7",
382
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz",
383
+ "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==",
384
+ "dependencies": {
385
+ "semver": "~7.0.0"
386
+ },
387
+ "engines": {
388
+ "node": ">=8.10.0"
389
+ }
390
+ },
391
+ "node_modules/simple-update-notifier/node_modules/semver": {
392
+ "version": "7.0.0",
393
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
394
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
395
+ "bin": {
396
+ "semver": "bin/semver.js"
397
+ }
398
+ },
399
+ "node_modules/supports-color": {
400
+ "version": "5.5.0",
401
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
402
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
403
+ "dependencies": {
404
+ "has-flag": "^3.0.0"
405
+ },
406
+ "engines": {
407
+ "node": ">=4"
408
+ }
409
+ },
410
+ "node_modules/to-regex-range": {
411
+ "version": "5.0.1",
412
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
413
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
414
+ "dependencies": {
415
+ "is-number": "^7.0.0"
416
+ },
417
+ "engines": {
418
+ "node": ">=8.0"
419
+ }
420
+ },
421
+ "node_modules/touch": {
422
+ "version": "3.1.0",
423
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
424
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
425
+ "dependencies": {
426
+ "nopt": "~1.0.10"
427
+ },
428
+ "bin": {
429
+ "nodetouch": "bin/nodetouch.js"
430
+ }
431
+ },
432
+ "node_modules/undefsafe": {
433
+ "version": "2.0.5",
434
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
435
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
436
+ },
437
+ "node_modules/wrappy": {
438
+ "version": "1.0.2",
439
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
440
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
441
+ }
442
+ },
443
+ "dependencies": {
444
+ "abbrev": {
445
+ "version": "1.1.1",
446
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
447
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
448
+ },
449
+ "anymatch": {
450
+ "version": "3.1.2",
451
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
452
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
453
+ "requires": {
454
+ "normalize-path": "^3.0.0",
455
+ "picomatch": "^2.0.4"
456
+ }
457
+ },
458
+ "balanced-match": {
459
+ "version": "1.0.2",
460
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
461
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
462
+ },
463
+ "binary-extensions": {
464
+ "version": "2.2.0",
465
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
466
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
467
+ },
468
+ "brace-expansion": {
469
+ "version": "1.1.11",
470
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
471
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
472
+ "requires": {
473
+ "balanced-match": "^1.0.0",
474
+ "concat-map": "0.0.1"
475
+ }
476
+ },
477
+ "braces": {
478
+ "version": "3.0.2",
479
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
480
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
481
+ "requires": {
482
+ "fill-range": "^7.0.1"
483
+ }
484
+ },
485
+ "chokidar": {
486
+ "version": "3.5.3",
487
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
488
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
489
+ "requires": {
490
+ "anymatch": "~3.1.2",
491
+ "braces": "~3.0.2",
492
+ "fsevents": "~2.3.2",
493
+ "glob-parent": "~5.1.2",
494
+ "is-binary-path": "~2.1.0",
495
+ "is-glob": "~4.0.1",
496
+ "normalize-path": "~3.0.0",
497
+ "readdirp": "~3.6.0"
498
+ }
499
+ },
500
+ "concat-map": {
501
+ "version": "0.0.1",
502
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
503
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
504
+ },
505
+ "debug": {
506
+ "version": "3.2.7",
507
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
508
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
509
+ "requires": {
510
+ "ms": "^2.1.1"
511
+ }
512
+ },
513
+ "fill-range": {
514
+ "version": "7.0.1",
515
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
516
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
517
+ "requires": {
518
+ "to-regex-range": "^5.0.1"
519
+ }
520
+ },
521
+ "fs.realpath": {
522
+ "version": "1.0.0",
523
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
524
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
525
+ },
526
+ "fsevents": {
527
+ "version": "2.3.2",
528
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
529
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
530
+ "optional": true
531
+ },
532
+ "glob": {
533
+ "version": "7.2.3",
534
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
535
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
536
+ "requires": {
537
+ "fs.realpath": "^1.0.0",
538
+ "inflight": "^1.0.4",
539
+ "inherits": "2",
540
+ "minimatch": "^3.1.1",
541
+ "once": "^1.3.0",
542
+ "path-is-absolute": "^1.0.0"
543
+ }
544
+ },
545
+ "glob-parent": {
546
+ "version": "5.1.2",
547
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
548
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
549
+ "requires": {
550
+ "is-glob": "^4.0.1"
551
+ }
552
+ },
553
+ "has-flag": {
554
+ "version": "3.0.0",
555
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
556
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
557
+ },
558
+ "husky": {
559
+ "version": "8.0.1",
560
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
561
+ "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
562
+ "dev": true
563
+ },
564
+ "ignore-by-default": {
565
+ "version": "1.0.1",
566
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
567
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
568
+ },
569
+ "inflight": {
570
+ "version": "1.0.6",
571
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
572
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
573
+ "requires": {
574
+ "once": "^1.3.0",
575
+ "wrappy": "1"
576
+ }
577
+ },
578
+ "inherits": {
579
+ "version": "2.0.4",
580
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
581
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
582
+ },
583
+ "is-binary-path": {
584
+ "version": "2.1.0",
585
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
586
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
587
+ "requires": {
588
+ "binary-extensions": "^2.0.0"
589
+ }
590
+ },
591
+ "is-extglob": {
592
+ "version": "2.1.1",
593
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
594
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
595
+ },
596
+ "is-glob": {
597
+ "version": "4.0.3",
598
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
599
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
600
+ "requires": {
601
+ "is-extglob": "^2.1.1"
602
+ }
603
+ },
604
+ "is-number": {
605
+ "version": "7.0.0",
606
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
607
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
608
+ },
609
+ "jasmine": {
610
+ "version": "4.4.0",
611
+ "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.4.0.tgz",
612
+ "integrity": "sha512-xrbOyYkkCvgduNw7CKktDtNb+BwwBv/zvQeHpTkbxqQ37AJL5V4sY3jHoMIJPP/hTc3QxLVwOyxc87AqA+kw5g==",
613
+ "requires": {
614
+ "glob": "^7.1.6",
615
+ "jasmine-core": "^4.4.0"
616
+ }
617
+ },
618
+ "jasmine-core": {
619
+ "version": "4.4.0",
620
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.4.0.tgz",
621
+ "integrity": "sha512-+l482uImx5BVd6brJYlaHe2UwfKoZBqQfNp20ZmdNfsjGFTemGfqHLsXjKEW23w9R/m8WYeFc9JmIgjj6dUtAA=="
622
+ },
623
+ "minimatch": {
624
+ "version": "3.1.2",
625
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
626
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
627
+ "requires": {
628
+ "brace-expansion": "^1.1.7"
629
+ }
630
+ },
631
+ "ms": {
632
+ "version": "2.1.3",
633
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
634
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
635
+ },
636
+ "nodemon": {
637
+ "version": "2.0.20",
638
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz",
639
+ "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==",
640
+ "requires": {
641
+ "chokidar": "^3.5.2",
642
+ "debug": "^3.2.7",
643
+ "ignore-by-default": "^1.0.1",
644
+ "minimatch": "^3.1.2",
645
+ "pstree.remy": "^1.1.8",
646
+ "semver": "^5.7.1",
647
+ "simple-update-notifier": "^1.0.7",
648
+ "supports-color": "^5.5.0",
649
+ "touch": "^3.1.0",
650
+ "undefsafe": "^2.0.5"
651
+ }
652
+ },
653
+ "nopt": {
654
+ "version": "1.0.10",
655
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
656
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
657
+ "requires": {
658
+ "abbrev": "1"
659
+ }
660
+ },
661
+ "normalize-path": {
662
+ "version": "3.0.0",
663
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
664
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
665
+ },
666
+ "once": {
667
+ "version": "1.4.0",
668
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
669
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
670
+ "requires": {
671
+ "wrappy": "1"
672
+ }
673
+ },
674
+ "path-is-absolute": {
675
+ "version": "1.0.1",
676
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
677
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
678
+ },
679
+ "picomatch": {
680
+ "version": "2.3.1",
681
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
682
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
683
+ },
684
+ "pstree.remy": {
685
+ "version": "1.1.8",
686
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
687
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
688
+ },
689
+ "readdirp": {
690
+ "version": "3.6.0",
691
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
692
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
693
+ "requires": {
694
+ "picomatch": "^2.2.1"
695
+ }
696
+ },
697
+ "semver": {
698
+ "version": "5.7.1",
699
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
700
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
701
+ },
702
+ "simple-update-notifier": {
703
+ "version": "1.0.7",
704
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz",
705
+ "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==",
706
+ "requires": {
707
+ "semver": "~7.0.0"
708
+ },
709
+ "dependencies": {
710
+ "semver": {
711
+ "version": "7.0.0",
712
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
713
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
714
+ }
715
+ }
716
+ },
717
+ "supports-color": {
718
+ "version": "5.5.0",
719
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
720
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
721
+ "requires": {
722
+ "has-flag": "^3.0.0"
723
+ }
724
+ },
725
+ "to-regex-range": {
726
+ "version": "5.0.1",
727
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
728
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
729
+ "requires": {
730
+ "is-number": "^7.0.0"
731
+ }
732
+ },
733
+ "touch": {
734
+ "version": "3.1.0",
735
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
736
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
737
+ "requires": {
738
+ "nopt": "~1.0.10"
739
+ }
740
+ },
741
+ "undefsafe": {
742
+ "version": "2.0.5",
743
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
744
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
745
+ },
746
+ "wrappy": {
747
+ "version": "1.0.2",
748
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
749
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
750
+ }
751
+ }
752
+ }
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "@gkucmierz/utils",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "",
5
5
  "main": "src/main.mjs",
6
6
  "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
7
+ "test": "jasmine",
8
+ "watch": "nodemon --exec 'npm test'"
8
9
  },
9
10
  "author": "Grzegorz Kućmierz",
10
- "license": "MIT"
11
+ "license": "MIT",
12
+ "dependencies": {
13
+ "jasmine": "^4.4.0",
14
+ "nodemon": "^2.0.20"
15
+ },
16
+ "devDependencies": {
17
+ "husky": "^8.0.1"
18
+ }
11
19
  }
@@ -0,0 +1,16 @@
1
+
2
+ import { getType } from '../src/get-type.mjs';
3
+
4
+ describe('get-type', () => {
5
+ it('getType', function() {
6
+ expect(getType(undefined)).toEqual('undefined');
7
+ expect(getType(null)).toEqual('null');
8
+ expect(getType(true)).toEqual('boolean');
9
+ expect(getType(1)).toEqual('number');
10
+ expect(getType(1n)).toEqual('bigint');
11
+ expect(getType('1')).toEqual('string');
12
+ expect(getType(Symbol())).toEqual('symbol');
13
+ expect(getType(() => 0)).toEqual('function');
14
+ expect(getType({})).toEqual('object');
15
+ });
16
+ });
@@ -0,0 +1,19 @@
1
+
2
+ import {
3
+ range2array,
4
+ array2range,
5
+ } from '../src/range-array.mjs';
6
+
7
+ describe('range-array', () => {
8
+ it('array2range', function() {
9
+ expect(array2range([])).toEqual([]);
10
+ expect(array2range([1,3,4,5,7,9,10])).toEqual([[1,1],[3,5],[7,7],[9,10]]);
11
+ expect(array2range([10,12,13,14,15,16,17,20,22,23,27])).toEqual([[10,10],[12,17],[20,20],[22,23],[27,27]]);
12
+ });
13
+
14
+ it('range2array', function() {
15
+ expect(range2array([])).toEqual([]);
16
+ expect(range2array([[1],[3,5],[7],[9,10]])).toEqual([1,3,4,5,7,9,10]);
17
+ expect(range2array([[10],[12,17],[20],[22,23],[27]])).toEqual([10,12,13,14,15,16,17,20,22,23,27]);
18
+ });
19
+ });
@@ -0,0 +1,16 @@
1
+ {
2
+ "spec_dir": "spec",
3
+ "spec_files": [
4
+ "**/*[sS]pec.?(m)js"
5
+ ],
6
+ "helpers": [
7
+ "helpers/**/*.?(m)js"
8
+ ],
9
+ "env": {
10
+ "stopSpecOnExpectationFailure": false,
11
+ "random": true
12
+ },
13
+ "client": {
14
+ "captureConsole": false
15
+ }
16
+ }
@@ -0,0 +1,7 @@
1
+
2
+ // better js typeof
3
+
4
+ export const getType = val => {
5
+ const str = Object.prototype.toString.call(val);
6
+ return str.slice(8, -1).toLowerCase();
7
+ };
@@ -0,0 +1,27 @@
1
+
2
+ // https://www.codewars.com/kata/57d83dfc950d842dcb00005b/train/javascript
3
+
4
+ export const range2array = ranges => {
5
+ return ranges.reduce((arr, range) => {
6
+ const min = range[0];
7
+ const max = range[1] ?? min;
8
+ return arr.push(
9
+ ...new Array(max - min + 1).fill(0).map((n ,i) => min + i)
10
+ ), arr;
11
+ }, []);
12
+ };
13
+
14
+ export const array2range = arr => {
15
+ const ranges = [];
16
+ let last = arr[0];
17
+ let begin = last;
18
+ for (let i = 1; i <= arr.length; ++i) {
19
+ const n = arr[i];
20
+ if (n !== last + 1) {
21
+ ranges.push([begin, last]);
22
+ begin = n;
23
+ }
24
+ last = n;
25
+ }
26
+ return ranges;
27
+ };