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