mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-11 17:16:18 -07:00
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
export interface EnsureBackgroundStatsServerDeps {
|
|
isStatsAutoStartEnabled: () => boolean;
|
|
isImmersionTrackingEnabled: () => boolean;
|
|
ensureBackgroundStatsServerStarted: () => {
|
|
url: string;
|
|
runningInCurrentProcess: boolean;
|
|
};
|
|
logInfo: (message: string) => void;
|
|
logWarn: (message: string, error?: unknown) => void;
|
|
}
|
|
|
|
export function createEnsureBackgroundStatsServerHandler(
|
|
deps: EnsureBackgroundStatsServerDeps,
|
|
): () => void {
|
|
return () => {
|
|
if (!deps.isStatsAutoStartEnabled()) {
|
|
deps.logInfo('Background start: stats.autoStartServer is disabled; skipping stats server.');
|
|
return;
|
|
}
|
|
if (!deps.isImmersionTrackingEnabled()) {
|
|
deps.logInfo('Background start: immersion tracking is disabled; skipping stats server.');
|
|
return;
|
|
}
|
|
try {
|
|
const result = deps.ensureBackgroundStatsServerStarted();
|
|
deps.logInfo(
|
|
result.runningInCurrentProcess
|
|
? `Background start: stats server started at ${result.url}.`
|
|
: `Background start: stats server already running at ${result.url}; skipping.`,
|
|
);
|
|
} catch (error) {
|
|
deps.logWarn('Background start: failed to start stats server.', error);
|
|
}
|
|
};
|
|
}
|