UNPKG

svelte-guardian

Version:

Batteries included authentication for SvelteKit applications.

52 lines (51 loc) 1.7 kB
class GuardianLogger { config; constructor(config) { this.config = { enabled: config?.enabled ?? true, level: config?.level ?? 'info' }; } log(level, message, data) { if (!this.config.enabled) return; const logLevels = ['debug', 'info', 'warn', 'error']; const currentLevelIndex = logLevels.indexOf(this.config.level); const messageLevelIndex = logLevels.indexOf(level); if (messageLevelIndex >= currentLevelIndex) { const timestamp = new Date().toISOString(); const logPrefix = `[SVELTE-GUARDIAN][${level.toUpperCase()}][${timestamp}] `; switch (level) { case 'debug': console.debug(logPrefix, message, data || ''); break; case 'info': console.info(logPrefix, message, data || ''); break; case 'warn': console.warn(logPrefix, message, data || ''); break; case 'error': console.error(logPrefix, message, data || ''); break; default: console.log(logPrefix, message, data || ''); } } } debug(message, data) { this.log('debug', message, data); } info(message, data) { this.log('info', message, data); } warn(message, data) { this.log('warn', message, data); } error(message, data) { this.log('error', message, data); } } export function createLogger(loggerConfig) { return new GuardianLogger(loggerConfig); }