Added logger and tests
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user