Added logger and tests

This commit is contained in:
Emil
2026-02-24 10:02:13 +01:00
parent cfc4cb6849
commit 9b92883d30
16 changed files with 104 additions and 44 deletions
@@ -59,9 +59,9 @@ describe('createExtensionContext', () => {
ctx.log.warn('caution')
ctx.log.error('oops')
expect(logSpy).toHaveBeenCalledWith('[my-ext]', 'hello', 42)
expect(warnSpy).toHaveBeenCalledWith('[my-ext]', 'caution')
expect(errorSpy).toHaveBeenCalledWith('[my-ext]', 'oops')
expect(logSpy).toHaveBeenCalledWith('[ext:my-ext]', 'hello', 42)
expect(warnSpy).toHaveBeenCalledWith('[ext:my-ext]', 'caution')
expect(errorSpy).toHaveBeenCalledWith('[ext:my-ext]', 'oops')
logSpy.mockRestore()
warnSpy.mockRestore()
+7 -6
View File
@@ -2,6 +2,7 @@ import type { SupabaseClient } from '@supabase/supabase-js'
import type { CoreEvent } from '@/lib/events/types'
import { eventBus } from '@/lib/events/bus'
import { ingestTransactions } from '@/lib/transactions/ingest'
import { createLogger } from '@/lib/logger'
import type {
ExtensionContext,
ExtensionLogger,
@@ -13,12 +14,12 @@ import type {
/**
* Create a prefixed logger for an extension.
*/
function createLogger(extensionId: string): ExtensionLogger {
const prefix = `[${extensionId}]`
function createExtLogger(extensionId: string): ExtensionLogger {
const logger = createLogger(`ext:${extensionId}`)
return {
info: (message: string, ...args: unknown[]) => console.log(prefix, message, ...args),
warn: (message: string, ...args: unknown[]) => console.warn(prefix, message, ...args),
error: (message: string, ...args: unknown[]) => console.error(prefix, message, ...args),
info: (message: string, ...args: unknown[]) => logger.info(message, ...args),
warn: (message: string, ...args: unknown[]) => logger.warn(message, ...args),
error: (message: string, ...args: unknown[]) => logger.error(message, ...args),
}
}
@@ -116,7 +117,7 @@ export function createExtensionContext(
emit: (event: CoreEvent) => eventBus.emit(event),
settings: createSettings(supabase, userId, extensionId),
storage: createStorage(supabase),
log: createLogger(extensionId),
log: createExtLogger(extensionId),
services: createServices(),
}
}
+1 -1
View File
@@ -41,7 +41,7 @@ class ExtensionRegistry {
*/
register(extension: Extension): void {
if (this.extensions.has(extension.id)) {
console.warn(`[ExtensionRegistry] Extension "${extension.id}" already registered, skipping`)
// Extension already registered — skip silently (expected during hot reloads)
return
}