Skip to content

Commit e82a805

Browse files
Merge pull request #13 from JarvisPrestidge/adding-utils
Adding utils
2 parents 53e0a4e + 52293e8 commit e82a805

3 files changed

Lines changed: 30 additions & 86 deletions

File tree

.changeset/olive-tables-rescue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"n-index-map": minor
3+
---
4+
5+
add list and find utility functions

src/index.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,16 @@ class NIndexMap<DataType extends object, IndexedProp extends keyof DataType> {
246246
return this.dataMap.values();
247247
}
248248

249+
/**
250+
* Returns a new array that contains the values for each element
251+
* in the NIndexMap in insertion order.
252+
*
253+
* @returns {*} {IterableIterator<DataType>}
254+
*/
255+
public list(): DataType[] {
256+
return Array.from(this.dataMap.values());
257+
}
258+
249259
/**
250260
* Returns a new iterator object that contains the [key, value] pairs for
251261
* each element in the NIndexMap in insertion order. In this particular
@@ -258,6 +268,19 @@ class NIndexMap<DataType extends object, IndexedProp extends keyof DataType> {
258268
return this.dataMap.entries();
259269
}
260270

271+
272+
273+
/**
274+
* Returns the first element in that satisfies the provided predicate.
275+
* If no values satisfy the testing function, undefined is returned.
276+
*
277+
* @param {(value: DataType, index: number, obj: DataType[]) => unknown} predicate
278+
* @return {*} {(DataType | undefined)}
279+
*/
280+
public find(predicate: (value: DataType, index: number, obj: DataType[]) => unknown): DataType | undefined {
281+
return [...this.values()].find(predicate);
282+
}
283+
261284
/**
262285
* Clears all elements and indexes from the NIndexMap.
263286
*

yarn.lock

Lines changed: 2 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1293,13 +1293,6 @@
12931293
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
12941294
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
12951295

1296-
"@cspotcode/source-map-support@^0.8.0":
1297-
version "0.8.1"
1298-
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
1299-
integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
1300-
dependencies:
1301-
"@jridgewell/trace-mapping" "0.3.9"
1302-
13031296
"@dabh/diagnostics@^2.0.2":
13041297
version "2.0.3"
13051298
resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
@@ -1578,14 +1571,6 @@
15781571
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c"
15791572
integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==
15801573

1581-
"@jridgewell/trace-mapping@0.3.9":
1582-
version "0.3.9"
1583-
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
1584-
integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
1585-
dependencies:
1586-
"@jridgewell/resolve-uri" "^3.0.3"
1587-
"@jridgewell/sourcemap-codec" "^1.4.10"
1588-
15891574
"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9":
15901575
version "0.3.13"
15911576
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea"
@@ -1727,26 +1712,6 @@
17271712
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
17281713
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
17291714

1730-
"@tsconfig/node10@^1.0.7":
1731-
version "1.0.8"
1732-
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9"
1733-
integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==
1734-
1735-
"@tsconfig/node12@^1.0.7":
1736-
version "1.0.9"
1737-
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c"
1738-
integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==
1739-
1740-
"@tsconfig/node14@^1.0.0":
1741-
version "1.0.1"
1742-
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2"
1743-
integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==
1744-
1745-
"@tsconfig/node16@^1.0.2":
1746-
version "1.0.2"
1747-
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e"
1748-
integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
1749-
17501715
"@types/babel__core@^7.1.14":
17511716
version "7.1.19"
17521717
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460"
@@ -1985,12 +1950,7 @@ acorn-jsx@^5.3.2:
19851950
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
19861951
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
19871952

1988-
acorn-walk@^8.1.1:
1989-
version "8.2.0"
1990-
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
1991-
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
1992-
1993-
acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1:
1953+
acorn@^8.5.0, acorn@^8.7.1:
19941954
version "8.7.1"
19951955
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
19961956
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
@@ -2059,11 +2019,6 @@ anymatch@^3.0.3:
20592019
normalize-path "^3.0.0"
20602020
picomatch "^2.0.4"
20612021

2062-
arg@^4.1.0:
2063-
version "4.1.3"
2064-
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
2065-
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
2066-
20672022
argparse@^1.0.7:
20682023
version "1.0.10"
20692024
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -2550,11 +2505,6 @@ cosmiconfig@^7.0.0:
25502505
path-type "^4.0.0"
25512506
yaml "^1.10.0"
25522507

2553-
create-require@^1.1.0:
2554-
version "1.1.1"
2555-
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
2556-
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
2557-
25582508
cross-spawn@^5.1.0:
25592509
version "5.1.0"
25602510
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
@@ -2763,11 +2713,6 @@ diff-sequences@^28.0.2:
27632713
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41"
27642714
integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==
27652715

2766-
diff@^4.0.1:
2767-
version "4.0.2"
2768-
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
2769-
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
2770-
27712716
dir-glob@^3.0.1:
27722717
version "3.0.1"
27732718
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -4420,7 +4365,7 @@ make-dir@^3.0.0, make-dir@^3.0.2:
44204365
dependencies:
44214366
semver "^6.0.0"
44224367

4423-
make-error@1.x, make-error@^1.1.1:
4368+
make-error@1.x:
44244369
version "1.3.6"
44254370
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
44264371
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
@@ -6019,25 +5964,6 @@ ts-jest@^28.0.2:
60195964
semver "7.x"
60205965
yargs-parser "^20.x"
60215966

6022-
ts-node@^10.8.0:
6023-
version "10.8.0"
6024-
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.8.0.tgz#3ceb5ac3e67ae8025c1950626aafbdecb55d82ce"
6025-
integrity sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==
6026-
dependencies:
6027-
"@cspotcode/source-map-support" "^0.8.0"
6028-
"@tsconfig/node10" "^1.0.7"
6029-
"@tsconfig/node12" "^1.0.7"
6030-
"@tsconfig/node14" "^1.0.0"
6031-
"@tsconfig/node16" "^1.0.2"
6032-
acorn "^8.4.1"
6033-
acorn-walk "^8.1.1"
6034-
arg "^4.1.0"
6035-
create-require "^1.1.0"
6036-
diff "^4.0.1"
6037-
make-error "^1.1.1"
6038-
v8-compile-cache-lib "^3.0.1"
6039-
yn "3.1.1"
6040-
60415967
tslib@2.0.1:
60425968
version "2.0.1"
60435969
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
@@ -6171,11 +6097,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2:
61716097
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
61726098
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
61736099

6174-
v8-compile-cache-lib@^3.0.1:
6175-
version "3.0.1"
6176-
resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
6177-
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
6178-
61796100
v8-compile-cache@^2.0.3:
61806101
version "2.3.0"
61816102
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
@@ -6398,11 +6319,6 @@ yargs@^17.3.1:
63986319
y18n "^5.0.5"
63996320
yargs-parser "^21.0.0"
64006321

6401-
yn@3.1.1:
6402-
version "3.1.1"
6403-
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
6404-
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
6405-
64066322
yocto-queue@^0.1.0:
64076323
version "0.1.0"
64086324
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"

0 commit comments

Comments
 (0)