/** * Projection schema. */ export type ProjectionSchema = { [field: string]: boolean | ProjectionSchemaFieldOptions | undefined; }; /** * Projection schema name. */ export type ProjectionSchemaName = string; /** * Projection schema factory. */ export type ProjectionSchemaFactory = () => | ProjectionSchema | ProjectionSchemaName; /** * Projection schema field options. */ export type ProjectionSchemaFieldOptions = { select?: boolean; scopes?: ProjectionSchemaScopes; schema?: ProjectionSchema | ProjectionSchemaFactory | ProjectionSchemaName; }; /** * Projection schema scopes. */ export type ProjectionSchemaScopes = { [scope: string]: boolean | ProjectionSchemaScopeOptions | undefined; }; /** * Projection schema scope options. */ export type ProjectionSchemaScopeOptions = { select?: boolean; };