`mock-table-data`는 JavaScript/TypeScript 환경에서 테이블 형태의 데이터를 조건, 정렬, 페이징 기반으로 필터링하거나 가공할 수 있는 유틸리티 클래스입니다. 테스트용 또는 실제 클라이언트 필터링 용도로 사용할 수 있습니다.
npm install mock-table-datamock-table-data는 JavaScript/TypeScript 환경에서 테이블 형태의 데이터를 조건, 정렬, 페이징 기반으로 필터링하거나 가공할 수 있는 유틸리티 클래스입니다. 테스트용 또는 실제 클라이언트 필터링 용도로 사용할 수 있습니다.
---
``bash`
npm install mock-table-data
또는
`bash`
yarn add mock-table-data
---
`ts
import TableData from 'mock-table-data';
const table = new TableData(dataSource, {
primaryKey: 'id', // 선택사항
dataProcessing: (data) => data.map(row => ({ ...row })) // 선택사항
});
const filtered = table.filteredList([
{ name: 'John', type: 'string', like: true },
{ age: 30, type: 'number' }
]);
const sorted = table.sortedList(filtered, ['name:asc']);
const paged = table.selectRows(10, 0, filtered, ['age:desc'], true);
`
---
: 객체 배열 (원본 데이터)
- options.primaryKey: 고유 키로 사용할 컬럼명 (중복 삽입 방지)
- options.dataProcessing: 최종 데이터 처리 콜백---
$3
- 조건에 맞는 row 리스트 반환
- AND/OR 트리 구조도 지원$3
- sorts: ['key:asc', 'key2:desc'] 형식$3
- 페이징 + 필터링 + 정렬을 결합한 메서드
- meta = true일 경우 { result, meta } 반환---
$3
- primaryKey 중복 검사 후 삽입$3
- 조건을 만족하는 첫 row 수정 (또는 제거)$3
- 조건을 만족하는 첫 row 제거$3
- 조건을 만족하는 첫 row 반환---
$3
`ts
type ConditionItem = {
[key: string]: any;
type?: 'string' | 'number' | 'boolean';
required?: boolean;
like?: boolean;
};
`-
like: 부분일치 (includes) 검색
- required: 필수값 여부
- type: 타입 검사 수행 여부---
$3
`ts
type ConditionNode =
| { logic?: 'AND' | 'OR'; conditions: ConditionNode[] }
| ConditionItem;
`복합 조건을
AND 또는 OR 로 구성할 수 있습니다.---
예시
`ts
const table = new TableData([
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 }
]);const result = table.selectRows(10, 0, [
{ name: 'ali', type: 'string', like: true }
]);
console.log(result);
``ts
const table = new TableData([
{ id: 1, name: 'Alice', role: 'admin' },
{ id: 2, name: 'Bob', role: 'user' },
{ id: 3, name: 'Charlie', role: 'guest' }
]);const result = table.selectRows(10, 0, {
logic: 'OR',
conditions: [
{ role: 'admin' },
{ role: 'guest' }
]
});
console.log(result);
// 결과: Alice 와 Charlie의 데이터가 반환됩니다.
``---
ISC