Files
vexplor/frontend/lib/v2-core/init.ts
kjs 042488d51b feat: 다중 선택 및 일괄 삭제 기능 추가
- 카테고리 값 관리 컴포넌트에 체크박스를 통한 다중 선택 기능을 추가하였습니다.
- 선택된 카테고리를 일괄 삭제할 수 있는 다이얼로그를 구현하였습니다.
- 테이블 관리 서비스에서 다중 선택 처리 로직을 추가하여, 파이프(|)로 구분된 값을 처리하도록 개선하였습니다.
- 관련된 로그 메시지를 추가하여 다중 선택 및 삭제 과정에서의 정보를 기록하도록 하였습니다.
2026-01-27 11:02:20 +09:00

97 lines
2.0 KiB
TypeScript

/**
* V2 Core 초기화
*
* 앱 시작 시 한 번 호출하여 V2 시스템을 초기화합니다.
*/
import { v2EventBus } from "./events";
import { legacyEventAdapter } from "./adapters";
let isInitialized = false;
export interface V2CoreOptions {
/** 디버그 모드 활성화 */
debug?: boolean;
/** 레거시 이벤트 브릿지 설정 */
legacyBridge?: {
/** 레거시 → V2 브릿지 활성화 (기본값: true) */
legacyToV2?: boolean;
/** V2 → 레거시 브릿지 활성화 (기본값: true) */
v2ToLegacy?: boolean;
};
}
/**
* V2 Core 초기화
*
* @param options - 초기화 옵션
*
* @example
* ```typescript
* // app/layout.tsx 또는 진입점에서 호출
* import { initV2Core } from "@/lib/v2-core";
*
* // 기본 초기화
* initV2Core();
*
* // 디버그 모드 및 커스텀 설정
* initV2Core({
* debug: process.env.NODE_ENV === "development",
* legacyBridge: {
* legacyToV2: true,
* v2ToLegacy: true,
* },
* });
* ```
*/
export function initV2Core(options?: V2CoreOptions): void {
if (isInitialized) {
console.warn("[V2Core] 이미 초기화되어 있습니다.");
return;
}
const {
debug = process.env.NODE_ENV === "development",
legacyBridge = { legacyToV2: true, v2ToLegacy: true },
} = options ?? {};
// 디버그 모드 설정
v2EventBus.debug = debug;
// 레거시 이벤트 브릿지 초기화
legacyEventAdapter.init(legacyBridge);
isInitialized = true;
}
/**
* V2 Core 정리
*
* 테스트 또는 특수 상황에서 V2 시스템을 정리할 때 사용
*/
export function cleanupV2Core(): void {
if (!isInitialized) {
return;
}
console.log("[V2Core] 정리 시작...");
// 레거시 어댑터 정리
legacyEventAdapter.destroy();
// 이벤트 버스 정리
v2EventBus.clear();
isInitialized = false;
console.log("[V2Core] 정리 완료");
}
/**
* V2 Core 초기화 상태 확인
*/
export function isV2CoreInitialized(): boolean {
return isInitialized;
}