@yihuangdb/storage-object
Version:
A Node.js storage object layer library using Redis OM
33 lines • 1.52 kB
TypeScript
import { StorageObject } from './storage';
import { ConnectionOptions } from './connection';
export interface ModelOptions extends ConnectionOptions {
collection?: string;
prefix?: string;
indexes?: string[];
}
export interface FieldOptions {
type?: 'string' | 'number' | 'boolean' | 'date' | 'text' | 'string[]';
indexed?: boolean;
sortable?: boolean;
normalized?: boolean;
separator?: string;
required?: boolean;
default?: any;
}
export declare function Model(options?: ModelOptions): <T extends {
new (...args: any[]): {};
}>(constructor: T) => {
new (...args: any[]): {};
storage: StorageObject<Record<string, any>>;
initialize(): Promise<void>;
create(data: any): Promise<import("./storage").StorageEntity<Record<string, any>>>;
findById(id: string): Promise<import("./storage").StorageEntity<Record<string, any>> | null>;
findAll(options?: any): Promise<import("./storage").StorageEntity<Record<string, any>>[]>;
findOne(query: any): Promise<import("./storage").StorageEntity<Record<string, any>> | null>;
find(query: any, options?: any): Promise<import("./storage").StorageEntity<Record<string, any>>[]>;
update(id: string, data: any): Promise<import("./storage").StorageEntity<Record<string, any>> | null>;
delete(id: string): Promise<boolean>;
count(query?: any): Promise<number>;
} & T;
export declare function Field(options?: FieldOptions): (target: any, propertyKey: string) => void;
//# sourceMappingURL=decorators.d.ts.map