huddle-record
Version:
Record is a Object-Relational Mapping (ORM) TypeScript plugin that makes it easy to work with data.
29 lines (28 loc) • 1.3 kB
TypeScript
import Query from './query.js';
import type StoreSaveOptions from './interfaces/StoreSaveOptions.js';
import QueryOptions from './interfaces/queryOptions.js';
export default class Repository<T> {
protected model: any;
data: Record<string, T[]>;
constructor(model: any);
find(id: number, options?: QueryOptions): T | null;
all(options?: QueryOptions): T[];
first(options?: QueryOptions): T | null;
last(options?: QueryOptions): T | null;
take(amount: number, options?: QueryOptions): T[];
count(options?: QueryOptions): number;
exists(id: number, options?: QueryOptions): boolean;
save(data: T | T[] | object, options?: StoreSaveOptions): T | T[] | null;
delete(key: number | number[] | string, value?: any, options?: QueryOptions): void;
update(id: number, data: object, options?: QueryOptions): T | null;
private deleteSingleItem;
clear(options?: QueryOptions): void;
reset(): void;
transform(data: any, options: StoreSaveOptions): T | T[];
persist(data: T | T[], options: StoreSaveOptions): T | T[] | null;
private persistSingleItem;
private returnSaveOptions;
deepUpdate(item: any, newData: any, options?: QueryOptions): void;
datasetExists(key?: string): boolean;
query(options?: QueryOptions): Query<T>;
}