@gw2treasures/helper 0.0.5 → 0.0.6
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/dist/group-by.d.ts +2 -0
- package/dist/group-by.js +16 -1
- package/dist/is.d.ts +1 -0
- package/dist/is.js +3 -0
- package/dist/modulo.d.ts +2 -0
- package/dist/modulo.js +4 -0
- package/dist/range.d.ts +13 -0
- package/dist/range.js +4 -0
- package/package.json +16 -15
package/dist/group-by.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare function groupById<T extends {
|
|
2
2
|
id: unknown;
|
|
3
3
|
}>(values: T[]): Map<T['id'], T>;
|
|
4
|
+
export declare function groupByUnique<T, K extends keyof T>(values: T[], key: K): Map<T[K], T>;
|
|
5
|
+
export declare function groupBy<T, K extends keyof T>(values: T[], key: K): Map<T[K], T[]>;
|
package/dist/group-by.js
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
export function groupById(values) {
|
|
2
|
+
return groupByUnique(values, 'id');
|
|
3
|
+
}
|
|
4
|
+
export function groupByUnique(values, key) {
|
|
5
|
+
const map = new Map();
|
|
6
|
+
for (const value of values) {
|
|
7
|
+
map.set(value[key], value);
|
|
8
|
+
}
|
|
9
|
+
return map;
|
|
10
|
+
}
|
|
11
|
+
export function groupBy(values, key) {
|
|
2
12
|
const map = new Map();
|
|
3
13
|
for (const value of values) {
|
|
4
|
-
map.
|
|
14
|
+
if (map.has(value[key])) {
|
|
15
|
+
map.get(value[key]).push(value);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
map.set(value[key], [value]);
|
|
19
|
+
}
|
|
5
20
|
}
|
|
6
21
|
return map;
|
|
7
22
|
}
|
package/dist/is.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare function isTruthy<T>(value: T | Falsy): value is T;
|
|
|
6
6
|
export declare function isFalsy(value: unknown): value is Falsy;
|
|
7
7
|
export declare function isEmptyObject(obj: unknown): obj is Record<string, never>;
|
|
8
8
|
export declare function isString(value: unknown): value is string;
|
|
9
|
+
export declare function isAbortError(error: unknown): error is Error;
|
package/dist/is.js
CHANGED
package/dist/modulo.d.ts
ADDED
package/dist/modulo.js
ADDED
package/dist/range.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Generate a range starting at 0 up to but not including end. */
|
|
2
|
+
export declare function range<End extends SmallInteger>(end: End): Range<0, End>;
|
|
3
|
+
/** Generate a range starting at 0 up to but not including end. */
|
|
4
|
+
export declare function range(end: number): number[];
|
|
5
|
+
/** Generate a range including start up to but not including end. */
|
|
6
|
+
export declare function range<Start extends SmallInteger, End extends SmallInteger>(start: Start, end: End): Range<Start, End>;
|
|
7
|
+
/** Generate a range including start up to but not including end. */
|
|
8
|
+
export declare function range(start: number, end: number): number[];
|
|
9
|
+
type BuildTuple<Length extends SmallInteger, Acc extends number[] = []> = Acc['length'] extends Length ? Acc : BuildTuple<Length, [...Acc, Acc['length']]>;
|
|
10
|
+
type DropUntil<Start extends SmallInteger, Acc extends number[], Dropped extends SmallInteger[] = []> = Dropped['length'] extends Start ? Acc : DropUntil<Start, Acc extends [infer _, ...infer Rest] ? Rest : [], [...Dropped, 0]>;
|
|
11
|
+
type Range<Start extends SmallInteger, End extends SmallInteger> = DropUntil<Start, BuildTuple<End>>;
|
|
12
|
+
type SmallInteger = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
13
|
+
export {};
|
package/dist/range.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gw2treasures/helper",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "gw2treasures.com utility library",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./*": {
|
|
@@ -8,14 +8,6 @@
|
|
|
8
8
|
"default": "./dist/*.js"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"build": "npm run clean && if test $CI; then npm run build:ci; else npm run build:local; fi",
|
|
13
|
-
"build:local": "tsc --declarationMap",
|
|
14
|
-
"build:ci": "tsc",
|
|
15
|
-
"clean": "rm -rf dist/",
|
|
16
|
-
"lint": "eslint src",
|
|
17
|
-
"publish-package": "gw2treasures-publish-package"
|
|
18
|
-
},
|
|
19
11
|
"repository": {
|
|
20
12
|
"type": "git",
|
|
21
13
|
"url": "git+https://github.com/GW2Treasures/gw2treasures.com.git"
|
|
@@ -34,12 +26,21 @@
|
|
|
34
26
|
},
|
|
35
27
|
"homepage": "https://github.com/GW2Treasures/gw2treasures.com#readme",
|
|
36
28
|
"devDependencies": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"eslint": "
|
|
40
|
-
"
|
|
29
|
+
"eslint": "9.39.2",
|
|
30
|
+
"typescript": "5.9.3",
|
|
31
|
+
"@gw2treasures/eslint-config": "0.2.0",
|
|
32
|
+
"@gw2treasures/tsconfig": "0.0.1"
|
|
41
33
|
},
|
|
42
34
|
"publishConfig": {
|
|
43
|
-
"access": "public"
|
|
35
|
+
"access": "public",
|
|
36
|
+
"provenance": true
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "pnpm run clean && if test $CI; then pnpm run build:ci; else pnpm run build:local; fi",
|
|
40
|
+
"build:local": "tsc --declarationMap",
|
|
41
|
+
"build:ci": "tsc",
|
|
42
|
+
"clean": "rm -rf dist/",
|
|
43
|
+
"lint": "eslint .",
|
|
44
|
+
"publish-package": "gw2treasures-publish-package"
|
|
44
45
|
}
|
|
45
|
-
}
|
|
46
|
+
}
|