refactor: introduce analytics adapter behind src/platform/

This commit is contained in:
2026-04-27 08:29:14 +09:00
parent eeb070a188
commit 3079498e16
4 changed files with 34 additions and 21 deletions

View File

@@ -1,21 +0,0 @@
import { Analytics, type AnalyticsConfig } from '@apps-in-toss/analytics';
type LogParams = Record<string, string | number | boolean | null | undefined>;
let _logger: AnalyticsConfig['logger'] | null = null;
export function initAnalytics(debug = false) {
const logger: AnalyticsConfig['logger'] = ({ log_name, log_type, params }) => {
if (debug) {
console.log(`[Analytics] ${log_type}:${log_name}`, params);
}
// 프로덕션에서는 여기서 서버로 이벤트 전송
};
Analytics.init({ logger, debug });
_logger = logger;
}
export function trackGameEvent(logName: string, params: LogParams = {}) {
_logger?.({ log_name: logName, log_type: 'game_event', params });
}

View File

@@ -0,0 +1,12 @@
import type { AnalyticsAdapter, AnalyticsParams } from './types';
export function createConsoleAdapter(debug: boolean): AnalyticsAdapter {
return {
init() {
if (debug) console.log('[Analytics] console adapter initialized');
},
track(eventName: string, params: AnalyticsParams = {}) {
if (debug) console.log('[Analytics]', eventName, params);
},
};
}

View File

@@ -0,0 +1,16 @@
import { createConsoleAdapter } from './consoleAdapter';
import type { AnalyticsAdapter, AnalyticsParams } from './types';
import { env } from '../../config/env';
let _adapter: AnalyticsAdapter | null = null;
export function initAnalytics(debug = env.isDev): void {
_adapter = createConsoleAdapter(debug);
_adapter.init();
}
export function trackGameEvent(eventName: string, params: AnalyticsParams = {}): void {
_adapter?.track(eventName, params);
}
export type { AnalyticsAdapter, AnalyticsParams };

View File

@@ -0,0 +1,6 @@
export type AnalyticsParams = Record<string, string | number | boolean | null | undefined>;
export interface AnalyticsAdapter {
init(): void;
track(eventName: string, params?: AnalyticsParams): void;
}