UNPKG

mock-table-data

Version:

`mock-table-data`는 JavaScript/TypeScript 환경에서 테이블 형태의 데이터를 조건, 정렬, 페이징 기반으로 필터링하거나 가공할 수 있는 유틸리티 클래스입니다. 테스트용 또는 실제 클라이언트 필터링 용도로 사용할 수 있습니다.

44 lines (43 loc) 1.96 kB
export type LogicOperator = 'AND' | 'OR'; export type ConditionItem = { [key: string]: any; type?: 'string' | 'number' | 'boolean'; required?: boolean; like?: boolean; }; export type ConditionNode = { logic?: LogicOperator; conditions: ConditionNode[]; } | ConditionItem; export type TableDataOptions = { primaryKey?: string; dataProcessing?: (dataSource: Record<string, any>[]) => Record<string, any>[]; }; export interface TableMetaData { result: Record<string, any>[]; meta: { totalCount: number; currentCount: number; limit: number; offset: number; }; } export default class TableData { private readonly _dataSource; private readonly _primaryKey?; private readonly dataProcessing?; constructor(dataSource: Record<string, any>[], tableOptions?: TableDataOptions); static getSortOption(sort: any): any[] | undefined; private static validateConditionItem; private evaluateCondition; get dataSource(): Record<string, any>[]; sortedList(rows: Record<string, any>[], sorts: string[]): Record<string, any>[]; filteredList(conditions: ConditionNode | ConditionItem[]): Record<string, any>[]; getRows(limit: any, offset: any, conditions?: ConditionNode | ConditionItem[], sorts?: string[], meta?: boolean): Record<string, any>[] | TableMetaData; selectRow(conditions: ConditionNode | ConditionItem[]): Record<string, any> | undefined; insertRow(item: Record<string, any>): Record<string, any>; updateRow(conditions: ConditionNode | ConditionItem[], newItem?: Record<string, any>): boolean; deleteRow(conditions: ConditionNode | ConditionItem[]): boolean; selectRows(limit?: any, offset?: any, conditions?: ConditionNode | ConditionItem[], sort?: any, meta?: false): Record<string, any>[]; selectRows(limit?: any, offset?: any, conditions?: ConditionNode | ConditionItem[], sort?: any, meta?: true): TableMetaData; }