@proofkit/fmodata
Version:
FileMaker OData API client
59 lines (58 loc) • 2.25 kB
TypeScript
import { ExecutionContext, ExecutableBuilder, Result, ExecuteOptions, ConditionallyWithODataAnnotations } from '../types.js';
import { TableOccurrence } from './table-occurrence.js';
import { FFetchOptions } from '@fetchkit/ffetch';
export type InsertOptions = {
return?: "minimal" | "representation";
};
export declare class InsertBuilder<T extends Record<string, any>, Occ extends TableOccurrence<any, any, any, any> | undefined = undefined, ReturnPreference extends "minimal" | "representation" = "representation"> implements ExecutableBuilder<ReturnPreference extends "minimal" ? {
ROWID: number;
} : T> {
private occurrence?;
private tableName;
private databaseName;
private context;
private data;
private returnPreference;
private databaseUseEntityIds;
constructor(config: {
occurrence?: Occ;
tableName: string;
databaseName: string;
context: ExecutionContext;
data: Partial<T>;
returnPreference?: ReturnPreference;
databaseUseEntityIds?: boolean;
});
/**
* Helper to merge database-level useEntityIds with per-request options
*/
private mergeExecuteOptions;
/**
* Helper to conditionally strip OData annotations based on options
*/
private stripODataAnnotationsIfNeeded;
/**
* Parse ROWID from Location header
* Expected formats:
* - contacts(ROWID=4583)
* - contacts('some-uuid')
*/
private parseLocationHeader;
/**
* 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<EO extends ExecuteOptions>(options?: RequestInit & FFetchOptions & EO): Promise<Result<ReturnPreference extends "minimal" ? {
ROWID: number;
} : ConditionallyWithODataAnnotations<T, EO["includeODataAnnotations"] extends true ? true : false>>>;
getRequestConfig(): {
method: string;
url: string;
body?: any;
};
toRequest(baseUrl: string): Request;
processResponse(response: Response, options?: ExecuteOptions): Promise<Result<ReturnPreference extends "minimal" ? {
ROWID: number;
} : T>>;
}