Skip to content

Commit

Permalink
feat(logger): add logger
Browse files Browse the repository at this point in the history
  • Loading branch information
emkis committed May 1, 2022
1 parent 29d7ca5 commit 401e4bd
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/logger/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export { getLogger, setLogger } from './logger'
export type { Logger, LoggerAction } from './types'
37 changes: 37 additions & 0 deletions src/logger/logger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import type { LoggerFunctions, Logger } from './types'

type LoggerOptions = {
logger: Logger
isEnabled?: boolean
}

export const defaultLogger: Logger = console
const disabledLogger: Logger = {
log: () => null,
warn: () => null,
error: () => null,
}

export function createLogger(options: LoggerOptions): LoggerFunctions {
const isLogsEnabled = options.isEnabled ?? false
let logger: Logger = options.logger

function getLogger() {
return isLogsEnabled ? logger : disabledLogger
}

function setLogger(targetLogger: Logger) {
logger = targetLogger
}

return { getLogger, setLogger }
}

const loggerFunctions = createLogger({ logger: defaultLogger })

/**
* Sets a custom logger.
* @public
*/
export const { setLogger } = loggerFunctions
export const { getLogger } = loggerFunctions

0 comments on commit 401e4bd

Please sign in to comment.