UNPKG

nosql-json-database

Version:

package for building simple nosql databases using json files

38 lines (31 loc) 1.55 kB
export type NoSQLJsonDatabaseMetadata = { _id: string createdAt: string | Date updatedAt: string | Date } export type NoSQLJsonDatabaseDocument<T extends Record<string, unknown>> = T & NoSQLJsonDatabaseMetadata export interface NoSQLJsonDatabaseContainer { deleteDatabase: () => void resetDatabase: () => void deleteCollection: (title: string) => void createDatabase: () => void createCollection: <T extends Record<string, unknown>>(name: string) => NoSQLJsonDatabaseCollection<T> } export interface NoSQLJsonDatabaseCollection<T extends Record<string, unknown>> { find: (data?: Partial<NoSQLJsonDatabaseDocument<T>>) => NoSQLJsonDatabaseDocument<T>[] findAndPopulate: (populatePath: string | string[]) => NoSQLJsonDatabaseDocument<T>[] findOne: (value: Partial<NoSQLJsonDatabaseDocument<T>>) => NoSQLJsonDatabaseDocument<T> | undefined findOneAndPopulate: (value: Partial<NoSQLJsonDatabaseDocument<T>>, populatePath: string | string[]) => NoSQLJsonDatabaseDocument<T> | undefined findOneById: (id: string) => NoSQLJsonDatabaseDocument<T> | undefined findOneByIdAndPopulate: (id: string, populatePath: string | string[]) => NoSQLJsonDatabaseDocument<T> | undefined deleteOneUsingId: (_id: string) => void updateOneUsingId: (_id: string, updates: Partial<T>) => NoSQLJsonDatabaseDocument<T> addOne: (data: T) => NoSQLJsonDatabaseDocument<T> addMany: (data: T[]) => NoSQLJsonDatabaseDocument<T>[] resetModel: () => void } export type NoSQLJsonDatabaseID = { _id: string collection: string uuid: string }