mzinga
Version:
Node, React and MongoDB Headless CMS and Application Framework
68 lines • 2.79 kB
TypeScript
/// <reference types="node" />
import type DataLoader from 'dataloader';
import type { Request } from 'express';
import type { UploadedFile } from 'express-fileupload';
import type { i18n as Ii18n, TFunction } from 'i18next';
import type { User } from '../auth/types';
import type { Collection, TypeWithID } from '../collections/config/types';
import type { FindOneArgs } from '../database/types';
import type { Payload } from '../mzinga';
/** Express request with some Payload related context added */
export declare type PayloadRequest<U = any> = {
/** Information about the collection that is being accessed
* - Configuration from mzinga-config.ts
* - MongoDB model for this collection
* - GraphQL type metadata
*/
collection?: Collection;
/** context allows you to pass your own data to the request object as context
* This is useful for, for example, passing data from a beforeChange hook to an afterChange hook.
* payoadContext can also be fully typed using declare module
* {@link https://payloadcms.com/docs/hooks/context More info in the Payload Documentation}.
*/
context: RequestContext;
/** The locale that should be used for a field when it is not translated to the requested locale */
fallbackLocale?: string;
/** Uploaded files */
files?: {
/**
* This is the file that Payload will use for the file upload, other files are ignored.
*
*/
file: UploadedFile;
};
/** Cache of documents related to the current request */
findByID?: {
[transactionID: string]: {
[slug: string]: (q: FindOneArgs) => Promise<TypeWithID>;
};
};
/** I18next instance */
i18n: Ii18n;
/**
* The requested locale if specified
* Only available for localised collections
*/
locale?: string;
/** The global payload object */
payload: Payload;
/** What triggered this request */
payloadAPI?: 'GraphQL' | 'REST' | 'local';
/** Optimized document loader */
payloadDataLoader: DataLoader<string, TypeWithID>;
/** Resized versions of the image that was uploaded during this request */
payloadUploadSizes?: Record<string, Buffer>;
/** Get a translation for the admin screen */
t: TFunction;
/**
* Identifier for the database transaction for interactions in a single, all-or-nothing operation.
* Can also be used to ensure consistency when multiple operations try to create a transaction concurrently on the same request.
*/
transactionID?: Promise<number | string> | number | string;
/** The signed in user */
user: (U & User) | null;
} & Request;
export interface RequestContext {
[key: string]: unknown;
}
//# sourceMappingURL=types.d.ts.map