UNPKG

gitdb-database

Version:

A production-ready CLI tool for managing a NoSQL database using GitHub repositories as storage

72 lines 2 kB
export interface SchemaField { type: any; required?: boolean; default?: any; min?: number; max?: number; ref?: string; unique?: boolean; index?: boolean; validate?: (value: any) => boolean | string; enum?: any[]; trim?: boolean; lowercase?: boolean; uppercase?: boolean; } export interface SchemaDefinition { [key: string]: SchemaField; } export interface SchemaOptions { timestamps?: boolean; collection?: string; strict?: boolean; } export declare class Schema { private fields; private options; private indexes; constructor(definition: SchemaDefinition, options?: SchemaOptions); private setupIndexes; index(fields: string | string[], options?: any): void; validate(data: any): { isValid: boolean; errors: string[]; data: any; }; private validateType; private getTypeName; getFields(): SchemaDefinition; getOptions(): SchemaOptions; getIndexes(): Array<{ fields: string[]; options?: any; }>; } export declare const SchemaTypes: { String: string; Number: string; Boolean: string; Date: string; Array: string; Object: string; ObjectId: string; Mixed: string; }; export declare class Model { private schema; private collection; private databaseManager; constructor(schema: Schema, collection: string, databaseManager: any); create(data: any): Promise<any>; findById(id: string): Promise<any>; findOne(query: any): Promise<any>; find(query?: any, limit?: number): Promise<any[]>; updateById(id: string, data: any): Promise<any>; updateMany(query: any, data: any): Promise<number>; deleteById(id: string): Promise<boolean>; deleteMany(query: any): Promise<number>; count(query?: any): Promise<number>; getSchema(): Schema; } export declare function model(name: string, schema: Schema, databaseManager: any): Model; //# sourceMappingURL=schema.d.ts.map