UNPKG

@proofkit/fmodata

Version:
81 lines (80 loc) 2.71 kB
import { ExecutionContext, ExecutableBuilder, Result, WithSystemFields, ExecuteOptions } from '../types.js'; import { TableOccurrence } from './table-occurrence.js'; import { QueryBuilder } from './query-builder.js'; import { FFetchOptions } from '@fetchkit/ffetch'; /** * Initial delete builder returned from EntitySet.delete() * Requires calling .byId() or .where() before .execute() is available */ export declare class DeleteBuilder<T extends Record<string, any>> { private tableName; private databaseName; private context; private occurrence?; private databaseUseEntityIds; constructor(config: { occurrence?: TableOccurrence<any, any, any, any>; tableName: string; databaseName: string; context: ExecutionContext; databaseUseEntityIds?: boolean; }); /** * Delete a single record by ID */ byId(id: string | number): ExecutableDeleteBuilder<T>; /** * Delete records matching a filter query * @param fn Callback that receives a QueryBuilder for building the filter */ where(fn: (q: QueryBuilder<WithSystemFields<T>>) => QueryBuilder<WithSystemFields<T>>): ExecutableDeleteBuilder<T>; } /** * Executable delete builder - has execute() method * Returned after calling .byId() or .where() */ export declare class ExecutableDeleteBuilder<T extends Record<string, any>> implements ExecutableBuilder<{ deletedCount: number; }> { private tableName; private databaseName; private context; private occurrence?; private mode; private recordId?; private queryBuilder?; private databaseUseEntityIds; constructor(config: { occurrence?: TableOccurrence<any, any, any, any>; tableName: string; databaseName: string; context: ExecutionContext; mode: "byId" | "byFilter"; recordId?: string | number; queryBuilder?: QueryBuilder<any>; databaseUseEntityIds?: boolean; }); /** * Helper to merge database-level useEntityIds with per-request options */ private mergeExecuteOptions; /** * Gets the table ID (FMTID) if using entity IDs, otherwise returns the table name * @param useEntityIds - Optional override for entity ID usage */ private getTableId; execute(options?: RequestInit & FFetchOptions & { useEntityIds?: boolean; }): Promise<Result<{ deletedCount: number; }>>; getRequestConfig(): { method: string; url: string; body?: any; }; toRequest(baseUrl: string): Request; processResponse(response: Response, options?: ExecuteOptions): Promise<Result<{ deletedCount: number; }>>; }