UNPKG

feishub

Version:

A TypeScript SDK for Feishu (Lark) multi-dimensional tables

121 lines (119 loc) 3.52 kB
import { Feishu } from "./Feishu.js"; export interface FieldData { [key: string]: any; } export interface SearchResult<T> { items?: T[] | undefined; page_token?: string | undefined; has_more?: boolean | undefined; } export interface RecordData { record_id?: string | undefined; fields?: FieldData | undefined; created_time?: string | undefined; last_modified_time?: string | undefined; } export interface FieldInfo { field_id?: string | undefined; field_name?: string | undefined; type?: number | undefined; property?: any; } export interface SearchCondition { field_name: string; operator: "is" | "isNot" | "contains" | "doesNotContain" | "isEmpty" | "isNotEmpty" | "isGreater" | "isGreaterEqual" | "isLess" | "isLessEqual" | "like" | "in" | "equal"; value: any[]; } export interface SearchFilter { conjunction: "and" | "or"; conditions: SearchCondition[]; } export interface SearchSort { field_name: string; desc?: boolean; } /** * 搜索选项 * @param filter - 搜索过滤条件 * @param sort - 搜索排序条件 * @param view_id - 搜索多维表格中视图的唯一标识。 * @param field_name - 搜索字段名称,字段名称,用于指定本次查询返回记录中包含的字段 */ export interface SearchOptions { filter?: SearchFilter; sort?: SearchSort[]; view_id?: string; field_name?: string; page?: SearchPage; } /** * 搜索分页 * @param page_size - 每页返回的记录数 * @param page_token - 分页标记,用于获取下一页数据 */ export interface SearchPage { page_size?: number; page_token?: string; } export interface TableMeta { app_token?: string; table_id?: string; table_name?: string; revision?: number; } /** * 使用FeishuTable 需要确认提供 appId、appSecret、appToken、 tableId */ export declare class Table<T extends FieldData = FieldData> { private appToken; private tableId; private client; constructor({ appToken, tableId, feishu, }?: { appToken?: string; tableId?: string; feishu?: Feishu; }); /** * 插入记录 * * @param fields - 要插入的字段数据 * @returns 成功返回记录数据,失败返回 null */ insert(fields: T): Promise<RecordData | null>; /** * 删除记录 * * @param recordId - 要删除的记录 ID * @returns 成功返回 true,失败返回 false */ delete(recordId: string): Promise<boolean>; /** * 获取多维表格元数据 * * @returns 成功返回表格元数据,失败返回 null */ meta(): Promise<TableMeta | null>; /** * 搜索记录 * * @param options - 搜索选项 * @returns 成功返回搜索结果,失败返回 null */ search(options?: SearchOptions): Promise<SearchResult<RecordData> | null>; iterate(options: SearchOptions | undefined, callback: (record: RecordData[]) => void | Promise<void>): Promise<void>; /** * 列出多维表格的所有字段 * * @returns 成功返回字段列表,失败返回 null */ fields(): Promise<FieldInfo[] | null>; /** * 更新记录 * * @param recordId - 要更新的记录 ID * @param fields - 要更新的字段数据 * @returns 成功返回更新后的记录数据,失败返回 null */ update(recordId: string, fields: FieldData): Promise<RecordData | null>; } //# sourceMappingURL=Table.d.ts.map