Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / log / levels.ddd
Size: Mime:
const { defineFinal, hasOwnProperty } = require('chain-able/exports')

const LOGS = {}

const MAKE_LOGGER = (level, ONLY_IN_ENV) => (...args) => {
  // only define when we use this level
  if (!hasOwnProperty(LOGS, level)) {
    defineFinal(LOGS, level, new Set())
  }

  for (let i = 0; i < args.length; i++) {
    LOGS[level].add(args[i])
  }
}
exports.emergency = MAKE_LOGGER('emergency')
exports.alert = MAKE_LOGGER('alert')
exports.critical = MAKE_LOGGER('critical')
exports.error = MAKE_LOGGER('error')
exports.warning = MAKE_LOGGER('warning')
exports.notice = MAKE_LOGGER('notice')
exports.info = MAKE_LOGGER('info')
exports.debug = () => {
  if (process.env.DEBUG !== true) {
    return
  }
  console.log.apply(console, arguments)
}

let logged = false
exports.once = function(msg) {
  if (logged === false) {
    logged = true
    console.log(msg)
  }
}
// let logged = new WeakMap()
// exports.once = function(msg) {
//   if (logged.has(msg) === false) {
//     logged.has(msg) = true
//     console.log(msg)
//   }
// }

exports.emergency = emergency
export { emergency, alert, critical, error, warning, notice, info, debug, once }