@proofkit/fmodata
Version:
FileMaker OData API client
65 lines (64 loc) • 2.18 kB
TypeScript
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;
}>>;
}