/** * This is the doc comment for file1.ts * @packageDocumentation */ import { Class, DeepPartial, Filter, QueryService } from '@nestjs-query/core'; import { CreateManyInputType, CreateOneInputType, MutationArgsType, SubscriptionArgsType } from '../types'; import { ResolverClass, ServiceResolver, SubscriptionResolverOpts } from './resolver.interface'; export declare type CreatedEvent = { [eventName: string]: DTO; }; export interface CreateResolverOpts> extends SubscriptionResolverOpts { /** * The Input DTO that should be used to create records. */ CreateDTOClass?: Class; /** * The class to be used for `createOne` input. */ CreateOneInput?: Class>; /** * The class to be used for `createMany` input. */ CreateManyInput?: Class>; createOneMutationName?: string; createManyMutationName?: string; } export interface CreateResolver> extends ServiceResolver { createOne(input: MutationArgsType>, authorizeFilter?: Filter): Promise; createMany(input: MutationArgsType>, authorizeFilter?: Filter): Promise; createdSubscription(input?: SubscriptionArgsType, authorizeFilter?: Filter): AsyncIterator>; } /** * @internal * Mixin to add `create` graphql endpoints. */ export declare const Creatable: >(DTOClass: Class, opts: CreateResolverOpts) => >>(BaseClass: B) => Class> & B; /** * Factory to create a new abstract class that can be extended to add `create` endpoints. * * Assume we have `TodoItemDTO`, you can create a resolver with `createOneTodoItem` and `createManyTodoItems` graphql * query endpoints using the following code. * * ```ts * @Resolver() * export class TodoItemResolver extends CreateResolver(TodoItemDTO) { * constructor(readonly service: TodoItemService) { * super(service); * } * } * ``` * * @param DTOClass - The DTO class that should be returned from the `createOne` and `createMany` endpoint. * @param opts - Options to customize endpoints. * @typeparam DTO - The type of DTO that should be created. * @typeparam C - The create DTO type. */ export declare const CreateResolver: , QS extends QueryService = QueryService>(DTOClass: Class, opts?: CreateResolverOpts) => ResolverClass>;