@qualifyze/airtable
Version:
A more powerful airtable client
41 lines (40 loc) • 2.22 kB
TypeScript
import { FieldsValidator, UnknownFields } from "./fields";
import { ActionPoint, ActionPointOptions } from "./action-point";
import { ValidationContext } from "./validator";
import { RestMethod, UnknownActionPayload } from "./endpoint";
import { AirtableRecord } from "./record";
import { SelectQuery, SelectQueryParams } from "./select-query";
import { RecordData } from "./raw-types";
import { DeletedRecord } from "./raw-types";
export declare type TableDataSource = ActionPoint;
export interface TableActionPoint {
runTableAction<P extends UnknownActionPayload, R>(method: RestMethod, { path, ...options }: ActionPointOptions<P, R>): Promise<R>;
}
export declare class Table<Fields extends UnknownFields> implements TableActionPoint, FieldsValidator<Fields> {
readonly base: TableDataSource;
readonly name: string;
validator?: FieldsValidator<Fields>;
constructor(base: TableDataSource, tableName: string, validator?: FieldsValidator<Fields>);
createValidation(reference?: string): ValidationContext<unknown, Fields>;
private subPath;
runTableAction<P extends UnknownActionPayload, R>(method: RestMethod, { path, ...options }: ActionPointOptions<P, R>): Promise<R>;
find(recordId: string): Promise<AirtableRecord<Fields>>;
findOrNull(recordId: string): Promise<AirtableRecord<Fields> | null>;
select(query?: SelectQueryParams<Fields>): SelectQuery<Fields>;
private createSingleRecord;
private createMultipleRecords;
create(data: Fields): Promise<AirtableRecord<Fields>>;
create(data: Fields[]): Promise<AirtableRecord<Fields>[]>;
private updateSingleRecord;
private updateMultipleRecords;
private replaceSingleRecord;
private replaceMultipleRecords;
update(data: RecordData<Partial<Fields>>): Promise<AirtableRecord<Fields>>;
update(data: RecordData<Partial<Fields>>[]): Promise<AirtableRecord<Fields>[]>;
replace(data: RecordData<Fields>): Promise<AirtableRecord<Fields>>;
replace(data: RecordData<Fields>[]): Promise<AirtableRecord<Fields>[]>;
private destroySingleRecord;
private destroyMultipleRecords;
destroy(id: string): Promise<DeletedRecord>;
destroy(ids: string[]): Promise<DeletedRecord[]>;
}