@toolproof-npm/shared 0.1.121 → 0.1.122
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/_lib/utils/utils.d.ts +13 -1
- package/dist/_lib/utils/utils.js +24 -9
- package/package.json +2 -2
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { ResourceIdentityJson, ResourceTypeIdentityJson, ResourceJson, JobJson } from '@toolproof-npm/schema';
|
|
2
2
|
import type { ResourceMap } from '../types.js';
|
|
3
|
-
export declare function extractResourcesByType(resourceMap: ResourceMap, resourceTypeRef: ResourceTypeIdentityJson): Record<ResourceIdentityJson,
|
|
3
|
+
export declare function extractResourcesByType<TResource extends ResourceJson = ResourceJson>(resourceMap: ResourceMap, resourceTypeRef: ResourceTypeIdentityJson): Record<ResourceIdentityJson, TResource>;
|
|
4
|
+
/**
|
|
5
|
+
* Generic version of `extractJobMap`:
|
|
6
|
+
* Returns a Map keyed by String(extractedData.identity), with extractedData as the value.
|
|
7
|
+
*
|
|
8
|
+
* If you can provide a runtime type guard for extractedData, pass `isExtractedData`
|
|
9
|
+
* to avoid unsafe casts.
|
|
10
|
+
*/
|
|
11
|
+
export declare function extractExtractedDataMap<TKey extends string = string, TExtractedData extends {
|
|
12
|
+
identity: string | number;
|
|
13
|
+
} = {
|
|
14
|
+
identity: string | number;
|
|
15
|
+
}, TResource extends ResourceJson = ResourceJson>(resourceMap: ResourceMap, resourceTypeRef: ResourceTypeIdentityJson, isExtractedData?: (v: unknown) => v is TExtractedData): Map<TKey, TExtractedData>;
|
|
4
16
|
export declare function extractJobMap(resourceMap: ResourceMap): Map<`JOB-${string}`, JobJson>;
|
package/dist/_lib/utils/utils.js
CHANGED
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
export function extractResourcesByType(resourceMap, resourceTypeRef) {
|
|
2
|
-
const resources = resourceMap[resourceTypeRef] ?? [];
|
|
2
|
+
const resources = (resourceMap[resourceTypeRef] ?? []);
|
|
3
3
|
const result = {};
|
|
4
4
|
for (const resource of resources) {
|
|
5
5
|
result[resource.identity] = resource;
|
|
6
6
|
}
|
|
7
7
|
return result;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Generic version of `extractJobMap`:
|
|
11
|
+
* Returns a Map keyed by String(extractedData.identity), with extractedData as the value.
|
|
12
|
+
*
|
|
13
|
+
* If you can provide a runtime type guard for extractedData, pass `isExtractedData`
|
|
14
|
+
* to avoid unsafe casts.
|
|
15
|
+
*/
|
|
16
|
+
export function extractExtractedDataMap(resourceMap, resourceTypeRef, isExtractedData) {
|
|
17
|
+
const resources = extractResourcesByType(resourceMap, resourceTypeRef);
|
|
18
|
+
const out = new Map();
|
|
19
|
+
for (const resource of Object.values(resources)) {
|
|
20
|
+
const data = resource.extractedData;
|
|
21
|
+
// Per your invariant, extractedData + identity exist; this is just defensive.
|
|
22
|
+
if (isExtractedData && !isExtractedData(data))
|
|
23
|
+
continue;
|
|
24
|
+
const value = data;
|
|
25
|
+
const key = String(value.identity);
|
|
26
|
+
out.set(key, value);
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
// ATTENTION: Should be retired in favor of extractExtractedDataMap
|
|
9
31
|
export function extractJobMap(resourceMap) {
|
|
10
|
-
|
|
11
|
-
const jobMap = new Map();
|
|
12
|
-
Object.values(resourceJobMap).forEach((resource) => {
|
|
13
|
-
if (resource.extractedData?.identity) {
|
|
14
|
-
jobMap.set(resource.extractedData.identity, resource.extractedData); // ATTENTION: why do we need type assertion here?
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
return jobMap;
|
|
32
|
+
return extractExtractedDataMap(resourceMap, 'TYPE-Job');
|
|
18
33
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolproof-npm/shared",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.122",
|
|
4
4
|
"description": "Core library utilities for ToolProof",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"toolproof",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"typescript": "^5.9.3"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@toolproof-npm/schema": "^0.1.
|
|
59
|
+
"@toolproof-npm/schema": "^0.1.86",
|
|
60
60
|
"firebase-admin": "^13.6.0"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|