UNPKG

@proofkit/fmodata

Version:

FileMaker OData API client

65 lines (64 loc) 2.18 kB
import { FMTable } from '../orm/table.js'; import { FMODataLayer } from '../services.js'; import { ExecutableBuilder, ExecuteMethodOptions, ExecuteOptions, Result } from '../types.js'; import { RecordLocator } from './builders/mutation-helpers.js'; import { QueryBuilder } from './query-builder.js'; /** * Initial delete builder returned from EntitySet.delete() * Requires calling .byId() or .where() before .execute() is available */ export declare class DeleteBuilder<Occ extends FMTable<any, any>> { private readonly table; private readonly layer; private readonly config; constructor(config: { occurrence: Occ; layer: FMODataLayer; }); /** * Delete a single record by ID */ byId(id: string | number): ExecutableDeleteBuilder<Occ>; /** * Delete a single record by ROWID */ byRowId(rowId: number): ExecutableDeleteBuilder<Occ>; /** * Delete records matching a filter query * @param fn Callback that receives a QueryBuilder for building the filter */ where(fn: (q: QueryBuilder<Occ>) => QueryBuilder<Occ>): ExecutableDeleteBuilder<Occ>; } /** * Executable delete builder - has execute() method * Returned after calling .byId() or .where() */ export declare class ExecutableDeleteBuilder<Occ extends FMTable<any, any>> implements ExecutableBuilder<{ deletedCount: number; }> { private readonly table; private readonly mode; private readonly recordLocator?; private readonly queryBuilder?; private readonly layer; private readonly config; constructor(config: { occurrence: Occ; layer: FMODataLayer; mode: "byId" | "byFilter"; recordLocator?: RecordLocator; queryBuilder?: QueryBuilder<Occ>; }); execute(options?: ExecuteMethodOptions<ExecuteOptions>): Promise<Result<{ deletedCount: number; }>>; getRequestConfig(): { method: string; url: string; body?: any; }; toRequest(baseUrl: string, options?: ExecuteOptions): Request; processResponse(response: Response, _options?: ExecuteOptions): Promise<Result<{ deletedCount: number; }>>; }