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

@@ -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;
}