feishub
Version:
A TypeScript SDK for Feishu (Lark) multi-dimensional tables
121 lines (119 loc) • 3.52 kB
TypeScript
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