@n1k1t/mock-server
Version:
The ultimate toolkit to intercept, transform, and simulate HTTP/WS traffic with type-safe expectations
47 lines • 2.07 kB
TypeScript
import { PartialDeep, TFunction } from '../../../../types';
export declare class Container<TPayload extends object = object> {
protected provided: Pick<Container<TPayload>, 'key' | 'group' | 'payload' | 'ttl' | 'timestamp'> & {
aliases?: Container<TPayload>['aliases'] | string[];
hooks?: Container<TPayload>['hooks'];
};
TPlain: Pick<Container<TPayload>, 'key' | 'payload' | 'ttl'>;
TBackup: Pick<Container<TPayload>, 'key' | 'group' | 'payload' | 'ttl' | 'timestamp'> & {
aliases: string[];
};
key: string;
group: string;
aliases: Set<string>;
/** Seconds */
ttl: number;
payload: TPayload;
timestamp: number;
protected hooks?: {
bind?: TFunction<unknown, [string, Container<any>]>;
unbind?: TFunction<unknown, [string, Container<any>]>;
};
constructor(provided: Pick<Container<TPayload>, 'key' | 'group' | 'payload' | 'ttl' | 'timestamp'> & {
aliases?: Container<TPayload>['aliases'] | string[];
hooks?: Container<TPayload>['hooks'];
});
/** Updates internal timestamp to increase TTL */
renew(): this;
/** Checks expiration by TTL */
checkIsExpired(timestamp?: number): boolean;
assign(predicate: Partial<TPayload> | TFunction<Partial<TPayload>, [TPayload]>): this & {
payload: TPayload & Partial<TPayload>;
};
merge(predicate: PartialDeep<TPayload> | TFunction<PartialDeep<TPayload>, [TPayload]>): this & {
payload: unknown;
};
/** Binds this container to another alias key */
bind(key: string | object): this;
/** Unbinds this container by provided key */
unbind(key?: string | object): this;
/** Setups hooks to work with storage */
configure(payload: Partial<Pick<Container<TPayload>['provided'], 'hooks'>>): this;
clone(): Container<TPayload>;
toPlain(): Container<TPayload>['TPlain'];
toBackup(): Container<TPayload>['TBackup'];
static build<T extends object>(provided: Container<T>['provided']): Container<T>;
}
//# sourceMappingURL=model.d.ts.map