@rest-api/react-models
Version:
[](https://www.npmjs.com/package/@rest-api/react-models) [](https://codecov.io/gh/hector7/rest-
69 lines (68 loc) • 2.08 kB
TypeScript
import { Subject, Observer } from "./Observable";
import { RequestType } from "./ReducerStorage";
import { RestModel } from "./restmodels";
export declare class ModelState<R extends RestModel<any, any, any, any, any>> implements Subject {
private observers;
private _state;
private model;
constructor(r: RestModel<any, any, any, any, any>);
get modelName(): string;
get state(): {
searchs: {
[url: string]: RequestType<{
ids: any[];
metadata: any;
}>;
};
ids: {
[key: string]: {
[id: string]: RequestType<any>;
};
};
};
addKeyModel(key: string): void;
attach(observer: Observer): void;
detach(observer: Observer): void;
notify(): void;
getRequest(url: string): RequestType<{
ids: R['itemType'][];
metadata: any;
}>;
getRequestById(key: string, id: string): RequestType<R['model']['schema']['RealType']>;
/**
* updateGet for an internal use
*/
updateGet<R extends RestModel<any, any, any, any, any>>(url: string, request: Partial<RequestType<{
ids: R['itemType'][];
metadata: any;
}>>): void;
/**
* updateGetById for an internal use
*/
updateGetById(key: string, id: string, request: Partial<RequestType<R['model']['schema']['RealType']>>): void;
}
export declare class State implements Observer, Subject {
private observers;
private _state;
get state(): {
[modelName: string]: {
searchs: {
[url: string]: RequestType<{
ids: any[];
metadata: any;
}>;
};
ids: {
[key: string]: {
[id: string]: RequestType<any>;
};
};
};
};
attach(observer: Observer): void;
detach(observer: Observer): void;
notify(): void;
update(subject: ModelState<any>): void;
}
declare const _default: State;
export default _default;