index.ts
1 import { getContext } from 'svelte'; 2 import type { Logger, LoggerFactory } from './types'; 3 4 export * from './composite'; 5 export * from './console'; 6 export * from './deferred'; 7 export * from './recording'; 8 export * from './sampled'; 9 export * from './types'; 10 export * from './void'; 11 12 const CONTEXT_NAME = 'loggerFactory'; 13 14 export function setContext( 15 context: Map<string, unknown>, 16 factory: LoggerFactory, 17 ): void { 18 context.set(CONTEXT_NAME, factory); 19 } 20 21 export function loggerFor(subject: string): Logger { 22 const factory = getContext(CONTEXT_NAME) as LoggerFactory | undefined; 23 24 if (!factory) { 25 throw new Error( 26 'loggerFor called before setContext or outside of svelte component init', 27 ); 28 } 29 30 return factory.loggerFor(subject); 31 }