UNPKG

@waiting/log

Version:

Lightweight logging for browser

120 lines (115 loc) 3.51 kB
import { defaultConfig } from './config' import { LogLevel } from './model' /** Whether the key of LocalStorage item is generated myself */ export function isLocalStorageKey(key, storagePrefix) { const arr = key.split('-') /* istanbul ignore else */ if (arr.length < 3) { return false } const prefix = arr.shift() const level = arr.shift() const time = arr.join('-') /* istanbul ignore else */ if (prefix !== storagePrefix) { return false } /* istanbul ignore else */ if (!level) { return false } if (!time) { return false } else { const dd = new Date(time) /* istanbul ignore else */ if (typeof dd.getTime !== 'function' || Number.isNaN(dd.getTime())) { return false } } return true } /** Whether supress the log level if lower then the runLevel */ export function isSuppressLogLevel(runLevel, logLevel) { return LogLevel[logLevel] < LogLevel[runLevel] ? true : false } export function isLogLevelToPrune(logLevel, pruneLevel) { /* istanbul ignore else */ if (!logLevel) { return false } /* istanbul ignore else */ if (!pruneLevel) { return true } return logLevel === pruneLevel ? true : false } export function isTimeToPrune(time, pruneTime) { if (!time) { return false } const dd = new Date(time) return dd < pruneTime ? true : false } export function setMaxMsgLength(length) { validateMaxMsgLength(length) defaultConfig.maxMsgLength = Math.ceil(length) } export function validateMaxMsgLength(length) { /* istanbul ignore else */ if (typeof length !== 'number' || length <= 0) { throw new TypeError('Value of parameter maxMsgLenth invalid') } } export function setPersist(persist) { validatePersist(persist) defaultConfig.persist = persist } export function validatePersist(persist) { /* istanbul ignore else */ if (typeof persist !== 'boolean') { throw new TypeError('Value of parameter persist invalid') } } export function setPersistTTL(ttl) { validatePersistTTL(ttl) defaultConfig.persistTTL = Math.ceil(ttl) } export function validatePersistTTL(ttl) { /* istanbul ignore else */ if (typeof ttl !== 'number') { throw new TypeError('Value of parameter ttl invalid') } /* istanbul ignore else */ if (+ttl < 0) { throw new TypeError('Value of parameter ttl invalid') } } /** Set runLevel to supressing the logLevel listed in ENUM LogLevel which lower then the runLevel */ export function setRunLevel(runLevel) { validateLogLevel(runLevel) defaultConfig.runLevel = runLevel } export function validateLogLevel(logLevel) { /* istanbul ignore else */ // @ts-ignore if (logLevel !== 'silent' && typeof console[logLevel] !== 'function') { throw new TypeError(`Function console.${logLevel}() NOT exists`) } /* istanbul ignore else */ else if (!logLevel || typeof LogLevel[logLevel] !== 'number') { throw new TypeError('Value of parameter logLevel invalid: ' + logLevel) } } /** minus(-) be convert to underline _ */ export function setStoragePrefix(key) { validateStoragePrefix(key) defaultConfig.storagePrefix = key.replace(/-/g, '_') } export function validateStoragePrefix(key) { /* istanbul ignore else */ if (!key || typeof key !== 'string') { throw new TypeError('Value of parameter key invalid') } }