@qualifyze/airtable
Version:
A more powerful airtable client
21 lines (20 loc) • 1.18 kB
TypeScript
import { FieldsValidator, UnknownFields } from "./fields";
import { ActionPointOptions } from "./action-point";
import { RestMethod, UnknownActionPayload } from "./endpoint";
import { DeletedRecord } from "./raw-types";
import { TableActionPoint } from "./table";
import { AirtableRecord } from "./record";
export declare type RecordDataSource<Fields extends UnknownFields> = TableActionPoint & FieldsValidator<Fields>;
export interface RecordActionPoint {
runRecordAction<P extends UnknownActionPayload, R>(method: RestMethod, { path, ...options }: ActionPointOptions<P, R>): Promise<R>;
}
export declare class AirtableRecordDraft<Fields extends UnknownFields> implements RecordActionPoint {
readonly source: RecordDataSource<Fields>;
readonly id: string;
constructor(source: RecordDataSource<Fields>, id: string);
runRecordAction<P extends UnknownActionPayload, R>(method: RestMethod, { path, ...options }: ActionPointOptions<P, R>): Promise<R>;
fetch(): Promise<AirtableRecord<Fields>>;
update(data: Partial<Fields>): Promise<AirtableRecord<Fields>>;
replace(data: Fields): Promise<AirtableRecord<Fields>>;
destroy(): Promise<DeletedRecord>;
}