@leyyo/cache
Version:
Common cache library
39 lines (38 loc) • 1.61 kB
TypeScript
import { FieldId, FieldIddArray, Id, IdAny, IdAnyArray, IdArray, OneOrMore, TR } from "../types";
import { CacheFieldValue } from "../hash";
import { ShiftMain, ShiftSecure } from "../secure";
export interface CacheFormat<A extends TR, N extends Id> extends ShiftSecure<CacheFormatSecure<A, N>> {
checkName<A>(property: OneOrMore<string | keyof A>): Array<string>;
key(key: IdAny): CacheFormatRec;
keys(keys: IdAnyArray): CacheFormatRecs;
basic(field: IdAny): string;
basics(fields: IdAnyArray): Array<string>;
alias(alias: IdAny): CacheFormatRec;
aliases(aliases: IdAnyArray): CacheFormatRecs;
owner(owner: IdAny): CacheFormatRec;
owners(owners: IdAnyArray): CacheFormatRecs;
invalidation(invalidation: IdAny): CacheFormatRec;
invalidations(invalidations: IdAnyArray): CacheFormatRecs;
field(field: Id | FieldId<A>): string;
fields(fields: IdArray | FieldIddArray<A>): Array<string>;
member(member: Id): string;
members(members: IdArray): Array<string>;
memberShorts(members: IdArray): CacheFormatBasics;
value(value: CacheFieldValue<A>): CacheFieldValue<A>;
valueDoc(value: Record<string, CacheFieldValue<A>>): Record<string, CacheFieldValue<A>>;
}
export interface CacheFormatSecure<A extends TR, N extends Id> extends ShiftMain<CacheFormat<A, N>> {
}
export interface CacheFormatRec {
short?: string;
full?: string;
}
export interface CacheFormatRecs {
shorts: Array<string>;
fulls: Array<string>;
duplicated?: boolean;
}
export interface CacheFormatBasics {
shorts: Array<string>;
duplicated?: boolean;
}