@data-client/normalizr
Version:
Normalizes and denormalizes JSON according to schema for Redux and Flux applications
72 lines (71 loc) • 2.48 kB
TypeScript
import { EntityTable, NormalizedIndex, INormalizeDelegate, Mergeable } from '../interface.js';
import { POJODelegate } from '../delegate/Delegate.js';
/** Full normalize() logic for POJO state */
export declare class NormalizeDelegate extends POJODelegate implements INormalizeDelegate {
readonly entitiesMeta: {
[entityKey: string]: {
[pk: string]: {
date: number;
expiresAt: number;
fetchedAt: number;
};
};
};
readonly meta: {
fetchedAt: number;
date: number;
expiresAt: number;
};
checkLoop: (entityKey: string, pk: string, input: object) => boolean;
protected newEntities: Map<string, Map<string, any>>;
protected newIndexes: Map<string, Map<string, any>>;
constructor(state: {
entities: EntityTable;
indexes: NormalizedIndex;
entitiesMeta: {
[entityKey: string]: {
[pk: string]: {
date: number;
expiresAt: number;
fetchedAt: number;
};
};
};
}, actionMeta: {
fetchedAt: number;
date: number;
expiresAt: number;
});
protected getNewEntity(key: string, pk: string): any;
protected getNewEntities(key: string): Map<string, any>;
protected getNewIndexes(key: string): Map<string, any>;
/** Updates an entity using merge lifecycles when it has previously been set */
mergeEntity(schema: Mergeable & {
indexes?: any;
}, pk: string, incomingEntity: any): void;
/** Sets an entity overwriting any previously set values */
setEntity(schema: {
key: string;
indexes?: any;
}, pk: string, entity: any, meta?: {
fetchedAt: number;
date: number;
expiresAt: number;
}): void;
/** Invalidates an entity, potentially triggering suspense */
invalidate({ key }: {
key: string;
}, pk: string): void;
protected _setEntity(key: string, pk: string, entity: any): void;
protected _setMeta(key: string, pk: string, meta: {
fetchedAt: number;
date: number;
expiresAt: number;
}): void;
getMeta(key: string, pk: string): {
date: number;
expiresAt: number;
fetchedAt: number;
};
}
//# sourceMappingURL=NormalizeDelegate.d.ts.map