/// import { MobilettoConnection, MobilettoMetadata } from "mobiletto-base"; import { MobilettoOrmFieldValue, MobilettoOrmFindOpts, MobilettoOrmIdArg, MobilettoOrmObject, MobilettoOrmPredicate, MobilettoOrmPurgeOpts, MobilettoOrmPurgeResults, MobilettoOrmTypeDef, MobilettoOrmTypeDefConfig } from "mobiletto-orm-typedef"; export type MobilettoOrmStorageResolver = () => Promise; export type MobilettoOrmObjectInstance = { storage: MobilettoConnection; object: MobilettoOrmObject; name: string; data?: Buffer; }; export type MobilettoOrmMetadata = MobilettoMetadata & { data?: Buffer; object?: MobilettoOrmObject; }; export type MobilettoOrmRepository = { typeDef: MobilettoOrmTypeDef; factory: MobilettoOrmRepositoryFactory; id: (thing: T) => string | null; idField: (thing: T) => string | null; validate: (thing: T, current?: T) => Promise; create: (thing: T) => Promise; update: (editedThing: T) => Promise; remove: (thing: MobilettoOrmIdArg) => Promise; purge: (idVal: MobilettoOrmIdArg, opts?: MobilettoOrmPurgeOpts) => Promise; exists: (id: MobilettoOrmIdArg) => Promise; resolveId: (idVal: MobilettoOrmIdArg, ctx?: string) => string; findById: (idVal: MobilettoOrmIdArg, opts?: MobilettoOrmFindOpts) => Promise; safeFindById: (id: MobilettoOrmIdArg, opts?: MobilettoOrmFindOpts) => Promise; find: (opts: MobilettoOrmFindOpts) => Promise; count: (predicate: MobilettoOrmPredicate) => Promise; findBy: (field: string, value: MobilettoOrmFieldValue, opts?: MobilettoOrmFindOpts) => Promise; safeFindBy: (field: string, value: MobilettoOrmFieldValue, opts?: MobilettoOrmFindOpts) => Promise; safeFindFirstBy: (field: string, value: MobilettoOrmFieldValue, opts?: MobilettoOrmFindOpts) => Promise; existsWith: (field: string, value: MobilettoOrmFieldValue) => Promise; findVersionsById: (id: MobilettoOrmIdArg, redact?: boolean) => Promise>; findAll: (opts?: MobilettoOrmFindOpts) => Promise; findAllIncludingRemoved: () => Promise; findSingleton: () => Promise; }; export type MobilettoOrmRepositoryFactory = { storages: MobilettoConnection[] | MobilettoOrmStorageResolver; repository: (typeDef: MobilettoOrmTypeDefConfig | MobilettoOrmTypeDef) => MobilettoOrmRepository; };