UNPKG

@sinkingsheep/jsondb

Version:

A lightweight JSON-based database for Node.js

44 lines (43 loc) 2.01 kB
import { EventEmitter } from "events"; import { IndexConfig, DBOptions, Document, QueryOptions, OperatorQuery } from "./types"; import { QueryChain } from "./queryChain"; declare class JsonDB extends EventEmitter { private directory; private collections; private dirty; private prettyPrint; private schemas; private autoSaveManager; private indexes; private indexConfigs; private transactions; constructor(options: DBOptions); createIndex(collection: string, field: string, config?: IndexConfig): Promise<void>; init(): Promise<void>; loadCollection(collectionName: string): Promise<void>; saveCollection(collectionName: string): Promise<void>; saveAll(): Promise<void>; insert<T extends { id?: string; }>(collection: string, document: T): Promise<T & Document>; insertMany<T extends { id?: string; }>(collectionName: string, documents: T[]): Promise<(T & { id: string; })[]>; findWithJoin<T>(collectionName: string, query?: Partial<T>, options?: QueryOptions): Promise<T[]>; find<T extends Document = Document>(collectionName: string, query?: OperatorQuery, options?: QueryOptions): Promise<T[]>; findOne<T extends Document = Document>(collectionName: string, query?: OperatorQuery): Promise<T | null>; update<T>(collectionName: string, query: Partial<T>, update: Partial<T>): Promise<number>; updateOne<T>(collectionName: string, query: Partial<T>, update: Partial<T>): Promise<boolean>; delete<T>(collectionName: string, query: Partial<T>): Promise<number>; dropCollection(collectionName: string): Promise<void>; beginTransaction(): Promise<string>; private takeCollectionSnapshot; commitTransaction(transactionId: string): Promise<void>; rollbackTransaction(transactionId: string): Promise<void>; chain<T extends Document = Document>(collectionName: string): QueryChain<T>; private applySorting; close(): Promise<void>; } export default JsonDB;