Socket
Book a DemoInstallSign in
Socket

mock-table-data

Package Overview
Dependencies
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mock-table-data

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

2.0.2
latest
Source
npmnpm
Version published
Maintainers
2
Created
Source

mock-table-data

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

설치

npm install mock-table-data

또는

yarn add mock-table-data

사용법

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);

API 설명

constructor(dataSource, options?)

  • dataSource: 객체 배열 (원본 데이터)
  • options.primaryKey: 고유 키로 사용할 컬럼명 (중복 삽입 방지)
  • options.dataProcessing: 최종 데이터 처리 콜백

filteredList(conditions)

  • 조건에 맞는 row 리스트 반환
  • AND/OR 트리 구조도 지원

sortedList(rows, sorts)

  • sorts: ['key:asc', 'key2:desc'] 형식

selectRows(limit?, offset?, conditions?, sort?, meta?)

  • 페이징 + 필터링 + 정렬을 결합한 메서드
  • meta = true일 경우 { result, meta } 반환

insertRow(item)

  • primaryKey 중복 검사 후 삽입

updateRow(conditions, newItem?)

  • 조건을 만족하는 첫 row 수정 (또는 제거)

deleteRow(conditions)

  • 조건을 만족하는 첫 row 제거

selectRow(conditions)

  • 조건을 만족하는 첫 row 반환

ConditionItem 구조

type ConditionItem = {
  [key: string]: any;
  type?: 'string' | 'number' | 'boolean';
  required?: boolean;
  like?: boolean;
};
  • like: 부분일치 (includes) 검색
  • required: 필수값 여부
  • type: 타입 검사 수행 여부

ConditionNode 구조

type ConditionNode =
  | { logic?: 'AND' | 'OR'; conditions: ConditionNode[] }
  | ConditionItem;

복합 조건을 AND 또는 OR 로 구성할 수 있습니다.

예시

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);
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의 데이터가 반환됩니다.

License

ISC

Keywords

ktnexr

FAQs

Package last updated on 08 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.