@fjell/core
Version:
Core Item and Key Framework for Fjell
41 lines (40 loc) • 6.12 kB
TypeScript
import { ComKey, LocKey, LocKeyArray, PriKey } from "../keys";
export declare const createNormalizedHashFunction: <T>() => (key: T) => string;
export declare const isPriKeyEqualNormalized: <S extends string>(a: PriKey<S>, b: PriKey<S>) => boolean;
export declare const isLocKeyEqualNormalized: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: LocKey<L1 | L2 | L3 | L4 | L5>, b: LocKey<L1 | L2 | L3 | L4 | L5>) => boolean;
export declare const isComKeyEqualNormalized: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: ComKey<S, L1, L2, L3, L4, L5>, b: ComKey<S, L1, L2, L3, L4, L5>) => boolean;
export declare const isItemKeyEqualNormalized: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, b: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => boolean;
export declare const isItemKeyEqual: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>, b: ComKey<S, L1, L2, L3, L4, L5> | PriKey<S>) => boolean;
export declare const isPriKeyEqual: <S extends string>(a: PriKey<S>, b: PriKey<S>) => boolean;
export declare const isLocKeyEqual: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: LocKey<L1 | L2 | L3 | L4 | L5>, b: LocKey<L1 | L2 | L3 | L4 | L5>) => boolean;
export declare const isComKeyEqual: <S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(a: ComKey<S, L1, L2, L3, L4, L5>, b: ComKey<S, L1, L2, L3, L4, L5>) => boolean;
export declare const isItemKey: (key: any) => boolean;
export declare const isComKey: (key: any) => boolean;
export declare const isPriKey: (key: any) => boolean;
export declare const isLocKey: (key: any) => boolean;
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>>;
export declare const constructPriKey: <S extends string>(pk: string | number | PriKey<S>, kt: S) => PriKey<S>;
export declare const cPK: <S extends string>(pk: string | number | PriKey<S>, kt: S) => PriKey<S>;
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[];
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;
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;
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;
/**
*
* @param ik ItemKey to be used as a basis for a location
* @returns
*/
export declare const itemKeyToLocKeyArray: <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>) => LocKeyArray<S, L1, L2, L3, L4>;
export declare const ikToLKA: <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>) => LocKeyArray<S, L1, L2, L3, L4>;
/**
* Sometimes you need to take a location key array and convert it to the item key that points to the containing item.
* @param lka A location key array
* @returns An item key corresponding to the containing item this location refers to.
*/
export declare const locKeyArrayToItemKey: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(lka: LocKeyArray<L1, L2, L3, L4, L5>) => PriKey<L1> | ComKey<L1, L2, L3, L4, L5>;
export declare const isValidPriKey: <S extends string>(key: PriKey<S>) => boolean;
export declare const isValidLocKey: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(key: LocKey<L1 | L2 | L3 | L4 | L5>) => boolean;
export declare const isValidLocKeyArray: <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>>) => boolean;
export declare const isValidComKey: <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>) => boolean;
export declare const isValidItemKey: <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>) => boolean;
export declare const lkaToIK: <L1 extends string, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(lka: LocKeyArray<L1, L2, L3, L4, L5>) => PriKey<L1> | ComKey<L1, L2, L3, L4, L5>;