@fjell/core 4.4.37 → 4.4.39

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/index.js CHANGED
@@ -230,6 +230,20 @@ var toKeyTypeArray = (ik) => {
230
230
  return [ik.kt];
231
231
  }
232
232
  };
233
+ var extractKeyTypeArray = (key) => {
234
+ logger2.trace("extractKeyTypeArray", { key });
235
+ if (isComKey(key)) {
236
+ const ck = key;
237
+ return [ck.kt, ...ck.loc.map((l) => l.kt)];
238
+ } else if (isPriKey(key)) {
239
+ return [key.kt];
240
+ } else if (Array.isArray(key)) {
241
+ return key.map((locKey) => locKey.kt);
242
+ } else {
243
+ logger2.warning("extractKeyTypeArray: Unknown key type", { key });
244
+ return [];
245
+ }
246
+ };
233
247
  var abbrevIK = (ik) => {
234
248
  logger2.trace("abbrevIK", { ik });
235
249
  if (ik) {
@@ -820,6 +834,7 @@ export {
820
834
  cPK,
821
835
  constructPriKey,
822
836
  createNormalizedHashFunction,
837
+ extractKeyTypeArray,
823
838
  generateKeyArray,
824
839
  ikToLKA,
825
840
  isComItem,
@@ -15,7 +15,12 @@ export declare const isLocKey: (key: any) => boolean;
15
15
  export declare const generateKeyArray: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S> | LocKeyArray<L1, L2, L3, L4, L5> | []) => Array<PriKey<S> | LocKey<L1 | L2 | L3 | L4 | L5>>;
16
16
  export declare const constructPriKey: <S extends string>(pk: string | number | PriKey<S>, kt: S) => PriKey<S>;
17
17
  export declare const cPK: <S extends string>(pk: string | number | PriKey<S>, kt: S) => PriKey<S>;
18
- export declare const toKeyTypeArray: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>) => string[];
18
+ export declare const toKeyTypeArray: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => string[];
19
+ /**
20
+ * Extracts key type arrays from any key type (PriKey, ComKey, or LocKeyArray)
21
+ * This is useful for cache invalidation and registry lookups
22
+ */
23
+ export declare const extractKeyTypeArray: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S> | LocKeyArray<L1, L2, L3, L4, L5>) => string[];
19
24
  export declare const abbrevIK: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => string;
20
25
  export declare const abbrevLKA: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(keyArray: Array<LocKey<L1 | L2 | L3 | L4 | L5>> | null) => string;
21
26
  export declare const primaryType: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fjell/core",
3
3
  "description": "Core Item and Key Framework for Fjell",
4
- "version": "4.4.37",
4
+ "version": "4.4.39",
5
5
  "keywords": [
6
6
  "core",
7
7
  "fjell"
@@ -35,14 +35,14 @@
35
35
  "docs:test": "cd docs && npm run test"
36
36
  },
37
37
  "dependencies": {
38
- "@fjell/logging": "^4.4.43",
38
+ "@fjell/logging": "^4.4.44",
39
39
  "deepmerge": "^4.3.1",
40
40
  "luxon": "^3.7.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@eslint/eslintrc": "^3.3.1",
44
44
  "@eslint/js": "^9.32.0",
45
- "@fjell/eslint-config": "^1.1.20",
45
+ "@fjell/eslint-config": "^1.1.21",
46
46
  "@swc/core": "^1.13.2",
47
47
  "@tsconfig/recommended": "^1.0.10",
48
48
  "@types/luxon": "^3.6.2",
package/src/key/KUtils.ts CHANGED
@@ -266,7 +266,7 @@ export const toKeyTypeArray = <
266
266
  L3 extends string = never,
267
267
  L4 extends string = never,
268
268
  L5 extends string = never
269
- >(ik: PriKey<S> | ComKey<S, L1, L2, L3, L4, L5>):
269
+ >(ik: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>):
270
270
  string[] => {
271
271
  logger.trace('toKeyTypeArray', { ik });
272
272
  if (isComKey(ik)) {
@@ -277,6 +277,35 @@ export const toKeyTypeArray = <
277
277
  }
278
278
  }
279
279
 
280
+ /**
281
+ * Extracts key type arrays from any key type (PriKey, ComKey, or LocKeyArray)
282
+ * This is useful for cache invalidation and registry lookups
283
+ */
284
+ export const extractKeyTypeArray = <
285
+ S extends string,
286
+ L1 extends string = never,
287
+ L2 extends string = never,
288
+ L3 extends string = never,
289
+ L4 extends string = never,
290
+ L5 extends string = never
291
+ >(key: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S> | LocKeyArray<L1, L2, L3, L4, L5>):
292
+ string[] => {
293
+ logger.trace('extractKeyTypeArray', { key });
294
+
295
+ if (isComKey(key)) {
296
+ const ck = key as ComKey<S, L1, L2, L3, L4, L5>;
297
+ return [ck.kt, ...ck.loc.map((l: LocKey<L1 | L2 | L3 | L4 | L5>) => l.kt)];
298
+ } else if (isPriKey(key)) {
299
+ return [(key as PriKey<S>).kt];
300
+ } else if (Array.isArray(key)) {
301
+ // This is a LocKeyArray
302
+ return key.map(locKey => locKey.kt);
303
+ } else {
304
+ logger.warning('extractKeyTypeArray: Unknown key type', { key });
305
+ return [];
306
+ }
307
+ }
308
+
280
309
  export const abbrevIK = <
281
310
  S extends string,
282
311
  L1 extends string = never,