fix: update and delete local API return types (#2434)

This commit is contained in:
Dan Ribbens
2023-03-31 13:58:54 -04:00
committed by GitHub
parent 14f2fbbce7
commit 02410a0be3
3 changed files with 36 additions and 33 deletions

View File

@@ -1,12 +1,12 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { DeepRequired } from 'ts-essentials';
import { Model, PaginateModel, AggregatePaginateModel } from 'mongoose';
import { AggregatePaginateModel, Model, PaginateModel } from 'mongoose';
import { GraphQLInputObjectType, GraphQLNonNull, GraphQLObjectType } from 'graphql';
import { Response } from 'express';
import { Access, GeneratePreviewURL, EntityDescription, Endpoint } from '../../config/types';
import { Access, Endpoint, EntityDescription, GeneratePreviewURL } from '../../config/types';
import { Field } from '../../fields/config/types';
import { PayloadRequest } from '../../express/types';
import { IncomingAuthType, Auth } from '../../auth/types';
import { Auth, IncomingAuthType } from '../../auth/types';
import { IncomingUploadType, Upload } from '../../uploads/types';
import { IncomingCollectionVersions, SanitizedCollectionVersions } from '../../versions/types';
import { Config as GeneratedTypes } from '../../generated-types';

View File

@@ -1,33 +1,19 @@
import { Config as GeneratedTypes } from 'payload/generated-types';
import find from './find';
import findByID from './findByID';
import create from './create';
import update, { ByIDOptions as UpdateByIDOptions, ManyOptions as UpdateManyOptions, Options as UpdateOptions } from './update';
import deleteLocal, { ByIDOptions as DeleteByIDOptions, ManyOptions as DeleteManyOptions, Options as DeleteOptions } from './delete';
import update from './update';
import deleteLocal from './delete';
import auth from '../../../auth/operations/local';
import findVersionByID from './findVersionByID';
import findVersions from './findVersions';
import restoreVersion from './restoreVersion';
import { BulkOperationResult } from '../../config/types';
async function localUpdate <T extends keyof GeneratedTypes['collections']>(options: UpdateByIDOptions<T>): Promise<GeneratedTypes['collections'][T]>
async function localUpdate <T extends keyof GeneratedTypes['collections']>(options: UpdateManyOptions<T>): Promise<BulkOperationResult<T>>
async function localUpdate <T extends keyof GeneratedTypes['collections']>(options: UpdateOptions<T>): Promise<GeneratedTypes['collections'][T] | BulkOperationResult<T>> {
return update<T>(this, options);
}
async function localDelete <T extends keyof GeneratedTypes['collections']>(options: DeleteByIDOptions<T>): Promise<GeneratedTypes['collections'][T]>
async function localDelete <T extends keyof GeneratedTypes['collections']>(options: DeleteManyOptions<T>): Promise<BulkOperationResult<T>>
async function localDelete <T extends keyof GeneratedTypes['collections']>(options: DeleteOptions<T>): Promise<GeneratedTypes['collections'][T] | BulkOperationResult<T>> {
return deleteLocal<T>(this, options);
}
export default {
find,
findByID,
create,
update: localUpdate,
localDelete,
update,
deleteLocal,
auth,
findVersionByID,
findVersions,

View File

@@ -5,15 +5,8 @@ import crypto from 'crypto';
import path from 'path';
import mongoose from 'mongoose';
import { Config as GeneratedTypes } from 'payload/generated-types';
import {
Collection,
CollectionModel,
} from './collections/config/types';
import {
SanitizedConfig,
EmailOptions,
InitOptions,
} from './config/types';
import { BulkOperationResult, Collection, CollectionModel } from './collections/config/types';
import { EmailOptions, InitOptions, SanitizedConfig } from './config/types';
import { TypeWithVersion } from './versions/types';
import { PaginatedDocs } from './mongoose/types';
@@ -22,12 +15,22 @@ import { Globals } from './globals/config/types';
import { ErrorHandler } from './express/middleware/errorHandler';
import localOperations from './collections/operations/local';
import localGlobalOperations from './globals/operations/local';
import { encrypt, decrypt } from './auth/crypto';
import { decrypt, encrypt } from './auth/crypto';
import { BuildEmailResult, Message } from './email/types';
import { Preferences } from './preferences/types';
import { Options as CreateOptions } from './collections/operations/local/create';
import { Options as FindOptions } from './collections/operations/local/find';
import {
ByIDOptions as UpdateByIDOptions,
ManyOptions as UpdateManyOptions,
Options as UpdateOptions,
} from './collections/operations/local/update';
import {
ByIDOptions as DeleteByIDOptions,
ManyOptions as DeleteManyOptions,
Options as DeleteOptions,
} from './collections/operations/local/delete';
import { Options as FindByIDOptions } from './collections/operations/local/findByID';
import { Options as FindVersionsOptions } from './collections/operations/local/findVersions';
import { Options as FindVersionByIDOptions } from './collections/operations/local/findVersionByID';
@@ -251,14 +254,28 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
* @param options
* @returns Updated document(s)
*/
update = localOperations.update
update<T extends keyof TGeneratedTypes['collections']>(options: UpdateByIDOptions<T>):Promise<TGeneratedTypes['collections'][T]>
update<T extends keyof TGeneratedTypes['collections']>(options: UpdateManyOptions<T>):Promise<BulkOperationResult<T>>
update<T extends keyof TGeneratedTypes['collections']>(options: UpdateOptions<T>):Promise<TGeneratedTypes['collections'][T] | BulkOperationResult<T>> {
const { update } = localOperations;
return update<T>(this, options);
}
/**
* @description delete one or more documents
* @param options
* @returns Updated document(s)
*/
delete = localOperations.localDelete;
delete<T extends keyof TGeneratedTypes['collections']>(options: DeleteByIDOptions<T>):Promise<TGeneratedTypes['collections'][T]>
delete<T extends keyof TGeneratedTypes['collections']>(options: DeleteManyOptions<T>):Promise<BulkOperationResult<T>>
delete<T extends keyof TGeneratedTypes['collections']>(options: DeleteOptions<T>):Promise<TGeneratedTypes['collections'][T] | BulkOperationResult<T>> {
const { deleteLocal } = localOperations;
return deleteLocal<T>(this, options);
}
/**
* @description Find versions with criteria