UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

312 lines • 9.74 kB
import type { TypeWithID } from '../collections/config/types'; import type { TypeWithID as GlobalsTypeWithID } from '../globals/config/types'; import type { Payload } from '../payload'; import type { Document, PayloadRequest, Where } from '../types'; import type { TypeWithVersion } from '../versions/types'; export type { TypeWithVersion }; export interface BaseDatabaseAdapter { /** * Start a transaction, requiring commitTransaction() to be called for any changes to be made. * @returns an identifier for the transaction or null if one cannot be established */ beginTransaction?: BeginTransaction; /** * Persist the changes made since the start of the transaction. */ commitTransaction?: CommitTransaction; /** * Open the connection to the database */ connect?: Connect; create: Create; createGlobal: CreateGlobal; createGlobalVersion: CreateGlobalVersion; /** * Output a migration file */ createMigration: CreateMigration; createVersion: CreateVersion; /** * Specify if the ID is a text or number field by default within this database adapter. */ defaultIDType: 'number' | 'text'; deleteMany: DeleteMany; deleteOne: DeleteOne; deleteVersions: DeleteVersions; /** * Terminate the connection with the database */ destroy?: Destroy; find: <T = TypeWithID>(args: FindArgs) => Promise<PaginatedDocs<T>>; findGlobal: FindGlobal; findGlobalVersions: FindGlobalVersions; findOne: FindOne; findVersions: FindVersions; /** * Perform startup tasks required to interact with the database such as building Schema and models */ init?: Init; /** * Run any migration up functions that have not yet been performed and update the status */ migrate: () => Promise<void>; /** * Run any migration down functions that have been performed */ migrateDown: () => Promise<void>; /** * Drop the current database and run all migrate up functions */ migrateFresh: (args: { forceAcceptWarning?: boolean; }) => Promise<void>; /** * Run all migration down functions before running up */ migrateRefresh: () => Promise<void>; /** * Run all migrate down functions */ migrateReset: () => Promise<void>; /** * Read the current state of migrations and output the result to show which have been run */ migrateStatus: () => Promise<void>; /** * Path to read and write migration files from */ migrationDir: string; /** * The name of the database adapter */ name: string; /** * reference to the instance of payload */ payload: Payload; queryDrafts: QueryDrafts; /** * Abort any changes since the start of the transaction. */ rollbackTransaction?: RollbackTransaction; /** * A key-value store of all sessions open (used for transactions) */ sessions?: { [id: string]: { db: unknown; reject: () => Promise<void>; resolve: () => Promise<void>; }; }; updateGlobal: UpdateGlobal; updateGlobalVersion: UpdateGlobalVersion; updateOne: UpdateOne; updateVersion: UpdateVersion; } export type Init = (payload: Payload) => Promise<void>; export type Connect = (payload: Payload) => Promise<void>; export type Destroy = (payload: Payload) => Promise<void>; export type CreateMigration = (args: { file?: string; /** * Skips the prompt asking to create empty migrations */ forceAcceptWarning?: boolean; migrationName?: string; payload: Payload; }) => Promise<void>; export type Transaction = (callback: () => Promise<void>, options?: Record<string, unknown>) => Promise<void>; export type BeginTransaction = (options?: Record<string, unknown>) => Promise<null | number | string>; export type RollbackTransaction = (id: number | string) => Promise<void>; export type CommitTransaction = (id: number | string) => Promise<void>; export type QueryDraftsArgs = { collection: string; limit?: number; locale?: string; page?: number; pagination?: boolean; req: PayloadRequest; sort?: string; where?: Where; }; export type QueryDrafts = <T = TypeWithID>(args: QueryDraftsArgs) => Promise<PaginatedDocs<T>>; export type FindOneArgs = { collection: string; locale?: string; req: PayloadRequest; where?: Where; }; export type FindOne = <T extends TypeWithID>(args: FindOneArgs) => Promise<T | null>; export type FindArgs = { collection: string; /** Setting limit to 1 is equal to the previous Model.findOne(). Setting limit to 0 disables the limit */ limit?: number; locale?: string; page?: number; pagination?: boolean; req: PayloadRequest; skip?: number; sort?: string; versions?: boolean; where?: Where; }; export type Find = <T = TypeWithID>(args: FindArgs) => Promise<PaginatedDocs<T>>; type BaseVersionArgs = { limit?: number; locale?: string; page?: number; pagination?: boolean; req: PayloadRequest; skip?: number; sort?: string; versions?: boolean; where?: Where; }; export type FindVersionsArgs = BaseVersionArgs & { collection: string; }; export type FindVersions = <T = TypeWithID>(args: FindVersionsArgs) => Promise<PaginatedDocs<TypeWithVersion<T>>>; export type FindGlobalVersionsArgs = BaseVersionArgs & { global: string; }; export type FindGlobalArgs = { locale?: string; req: PayloadRequest; slug: string; where?: Where; }; export type UpdateGlobalVersionArgs<T = TypeWithID> = { global: string; locale?: string; req: PayloadRequest; versionData: T; } & ({ id: number | string; where?: never; } | { id?: never; where: Where; }); export type UpdateGlobalVersion = <T extends TypeWithID = TypeWithID>(args: UpdateGlobalVersionArgs<T>) => Promise<TypeWithVersion<T>>; export type FindGlobal = <T extends GlobalsTypeWithID = any>(args: FindGlobalArgs) => Promise<T>; export type CreateGlobalArgs<T extends GlobalsTypeWithID = any> = { data: T; req: PayloadRequest; slug: string; }; export type CreateGlobal = <T extends GlobalsTypeWithID = any>(args: CreateGlobalArgs<T>) => Promise<T>; export type UpdateGlobalArgs<T extends GlobalsTypeWithID = any> = { data: T; req: PayloadRequest; slug: string; }; export type UpdateGlobal = <T extends GlobalsTypeWithID = any>(args: UpdateGlobalArgs<T>) => Promise<T>; export type FindGlobalVersions = <T = TypeWithID>(args: FindGlobalVersionsArgs) => Promise<PaginatedDocs<TypeWithVersion<T>>>; export type DeleteVersionsArgs = { collection: string; locale?: string; req: PayloadRequest; sort?: { [key: string]: string; }; where: Where; }; export type CreateVersionArgs<T = TypeWithID> = { autosave: boolean; collectionSlug: string; createdAt: string; /** ID of the parent document for which the version should be created for */ parent: number | string; req: PayloadRequest; updatedAt: string; versionData: T; }; export type CreateVersion = <T extends TypeWithID = TypeWithID>(args: CreateVersionArgs<T>) => Promise<TypeWithVersion<T>>; export type CreateGlobalVersionArgs<T = TypeWithID> = { autosave: boolean; createdAt: string; globalSlug: string; /** ID of the parent document for which the version should be created for */ parent: number | string; req: PayloadRequest; updatedAt: string; versionData: T; }; export type CreateGlobalVersion = <T extends TypeWithID = TypeWithID>(args: CreateGlobalVersionArgs<T>) => Promise<TypeWithVersion<T>>; export type DeleteVersions = (args: DeleteVersionsArgs) => Promise<void>; export type UpdateVersionArgs<T = TypeWithID> = { collection: string; locale?: string; req: PayloadRequest; versionData: T; } & ({ id: number | string; where?: never; } | { id?: never; where: Where; }); export type UpdateVersion = <T extends TypeWithID = TypeWithID>(args: UpdateVersionArgs<T>) => Promise<TypeWithVersion<T>>; export type CreateArgs = { collection: string; data: Record<string, unknown>; draft?: boolean; locale?: string; req: PayloadRequest; }; export type Create = (args: CreateArgs) => Promise<Document>; export type UpdateOneArgs = { collection: string; data: Record<string, unknown>; draft?: boolean; locale?: string; req: PayloadRequest; } & ({ id: number | string; where?: never; } | { id?: never; where: Where; }); export type UpdateOne = (args: UpdateOneArgs) => Promise<Document>; export type DeleteOneArgs = { collection: string; req: PayloadRequest; where: Where; }; export type DeleteOne = (args: DeleteOneArgs) => Promise<Document>; export type DeleteManyArgs = { collection: string; req: PayloadRequest; where: Where; }; export type DeleteMany = (args: DeleteManyArgs) => Promise<void>; export type Migration = MigrationData & { down: ({ payload, req }: { payload: Payload; req: PayloadRequest; }) => Promise<boolean>; up: ({ payload, req }: { payload: Payload; req: PayloadRequest; }) => Promise<boolean>; }; export type MigrationData = { batch: number; id: string; name: string; }; export type PaginatedDocs<T = any> = { docs: T[]; hasNextPage: boolean; hasPrevPage: boolean; limit: number; nextPage?: null | number | undefined; page?: number; pagingCounter: number; prevPage?: null | number | undefined; totalDocs: number; totalPages: number; }; //# sourceMappingURL=types.d.ts.map