This repository has been archived by the owner on Mar 11, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex-node8-dev.es.js.map
1 lines (1 loc) · 21.9 KB
/
index-node8-dev.es.js.map
1
{"version":3,"file":"index-node8-dev.es.js","sources":["../src/index.js"],"sourcesContent":["/* eslint-disable max-lines, flowtype/sort-keys */\n\nimport util from 'util';\nimport levels from 'nightingale-levels';\n\ntype RecordType = {\n level: number,\n key: string,\n displayName: ?string,\n datetime: Date,\n message: string,\n context: ?Object,\n metadata: ?Object,\n extra: ?Object,\n};\n\ntype HandlerType = {\n minLevel: number,\n isHandling: ?() => boolean,\n handle: ?(record: RecordType) => boolean,\n};\n\ntype ProcessorType = (record: RecordType) => void;\n\ntype ConfigForLoggerType = {\n handlers: Array<HandlerType>,\n processors: Array<ProcessorType>,\n};\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER = function(): ConfigForLoggerType {\n return { handlers: [], processors: [] };\n };\n}\n\nif (!global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD) {\n global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD = (\n key: string,\n level: number,\n ): ConfigForLoggerType => {\n const { handlers, processors } = global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(key);\n\n return {\n handlers: handlers.filter(\n handler =>\n level >= handler.minLevel && (!handler.isHandling || handler.isHandling(level, key)),\n ),\n processors,\n };\n };\n}\n\n/** @private */\nfunction getConfigForLoggerRecord(key: ?string, recordLevel: number): ConfigForLoggerType {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD(key, recordLevel);\n}\n\n/**\n * Interface that allows you to log records.\n * This records are treated by handlers\n */\nexport default class Logger {\n key: string;\n displayName: ?string;\n\n /**\n * Create a new Logger\n *\n * @param {string} key\n * @param {string} [displayName]\n */\n constructor(key: string, displayName: ?string) {\n this.key = key;\n this.displayName = displayName;\n\n if (key.includes('.')) {\n this.warn('nightingale: `.` in key is deprecated, replace with `:`', { key, displayName });\n this.key = key.replace(/\\./g, ':');\n }\n }\n\n /** @private */\n getHandlersAndProcessors(recordLevel: number): ConfigForLoggerType {\n return getConfigForLoggerRecord(this.key, recordLevel);\n }\n\n /** @private */\n getConfig(): ConfigForLoggerType {\n return global.__NIGHTINGALE_GET_CONFIG_FOR_LOGGER(this.key);\n }\n\n /**\n * Create a child logger\n */\n child(childSuffixKey: string, childDisplayName: ?string): Logger {\n return new Logger(`${this.key}:${childSuffixKey}`, childDisplayName);\n }\n\n /**\n * Create a new Logger with the same key a this attached context\n *\n * @example\n * const loggerMyService = new Logger('app.myService');\n * function someAction(arg1) {\n * const logger = loggerMyService.context({ arg1 });\n * logger.info('starting');\n * // do stuff\n * logger.info('done');\n * }\n *\n */\n context(context: Object): Logger {\n const logger = new Logger(this.key);\n logger.setContext(context);\n return logger;\n }\n\n /**\n * Set the context of this logger\n *\n * @param {Object} context\n */\n setContext(context: Object) {\n this._context = context;\n }\n\n /**\n * Extends existing context of this logger\n */\n extendsContext(extendedContext: Object) {\n Object.assign(this._context, extendedContext);\n }\n\n /**\n * Handle a record\n *\n * Use this only if you know what you are doing.\n */\n addRecord(record: Object) {\n const { handlers, processors } = this.getHandlersAndProcessors(record.level);\n\n if (handlers.length === 0) {\n if (record.level > levels.ERROR) {\n // eslint-disable-next-line no-console\n console.log('[nightingale] no logger for > error level.', {\n key: record.key,\n message: record.message,\n });\n }\n return;\n }\n\n if (processors) {\n processors.forEach(process => process(record, record.context));\n }\n\n handlers.some(handler => handler.handle(record) === false);\n }\n\n /**\n * Log a message\n */\n log(\n message: string,\n metadata: ?Object,\n level: number = levels.INFO,\n options: ?Object = undefined,\n ) {\n const context = metadata && metadata.context;\n if (metadata) {\n delete metadata.context;\n }\n\n let record = {\n level,\n key: this.key,\n displayName: this.displayName,\n datetime: new Date(),\n message,\n context: context || this._context,\n metadata,\n extra: {},\n };\n\n if (options) {\n record = Object.assign(options, record);\n }\n\n this.addRecord(record);\n }\n\n /**\n * Log a trace message\n */\n trace(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log a debug message\n */\n debug(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.DEBUG, { metadataStyles });\n }\n\n /**\n * Notice an info message\n */\n notice(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.NOTICE, { metadataStyles });\n }\n\n /**\n * Log an info message\n */\n info(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.INFO, { metadataStyles });\n }\n\n /**\n * Log a warn message\n */\n warn(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.WARN, { metadataStyles });\n }\n\n /**\n * Log an error message\n */\n error(message: string | Error, metadata: Object = {}, metadataStyles: ?Object) {\n if (message instanceof Error) {\n metadata.error = message;\n message = `${metadata.error.name}: ${metadata.error.message}`;\n }\n this.log(message, metadata, levels.ERROR, { metadataStyles });\n }\n\n /**\n * Log an critical message\n */\n critical(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.CRITICAL, { metadataStyles });\n }\n\n /**\n * Log a fatal message\n */\n fatal(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.FATAL, { metadataStyles });\n }\n\n /**\n * Log an alert message\n */\n alert(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.ALERT, { metadataStyles });\n }\n\n /**\n * Log an inspected value\n */\n inspectValue(value: any, metadata: ?Object, metadataStyles: ?Object) {\n if (BROWSER) {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n // Note: inspect is a special function for node:\n // https://github.com/nodejs/node/blob/a1bda1b4deb08dfb3e06cb778f0db40023b18318/lib/util.js#L210\n value = util.inspect(value, { depth: 6 });\n this.log(value, metadata, levels.DEBUG, { metadataStyles, styles: ['gray'] });\n }\n }\n\n /**\n * Log a debugged var\n */\n inspectVar(varName: string, varValue: any, metadata: ?Object, metadataStyles: ?Object) {\n if (BROWSER) {\n throw new Error('Not supported for the browser. Prefer `debugger;`');\n } else {\n varValue = util.inspect(varValue, { depth: 6 });\n this.log(`${varName} = ${varValue}`, metadata, levels.DEBUG, {\n metadataStyles,\n styles: ['cyan'],\n });\n }\n }\n\n /**\n * Alias for infoSuccess\n */\n success(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.infoSuccess(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info success message\n */\n infoSuccess(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an debug success message\n */\n debugSuccess(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✔',\n styles: ['green'],\n });\n }\n\n /**\n * Alias for infoFail\n */\n fail(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.infoFail(message, metadata, metadataStyles);\n }\n\n /**\n * Log an info fail message\n */\n infoFail(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.INFO, {\n metadataStyles,\n symbol: '✖',\n styles: ['red', 'bold'],\n });\n }\n\n /**\n * Log an debug fail message\n */\n debugFail(message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.log(message, metadata, levels.DEBUG, {\n metadataStyles,\n symbol: '✖',\n styles: ['red'],\n });\n }\n\n /**\n * @returns {number} time to pass to timeEnd\n */\n time(\n message: ?string,\n metadata: ?Object,\n metadataStyles: ?Object,\n level: number = levels.DEBUG,\n ): number {\n if (message) {\n this.log(message, metadata, level, { metadataStyles });\n }\n\n return Date.now();\n }\n\n infoTime(message: ?string, metadata: ?Object, metadataStyles: ?Object): number {\n return this.time(message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Finds difference between when this method\n * was called and when the respective time method\n * was called, then logs out the difference\n * and deletes the original record\n */\n timeEnd(\n startTime: number,\n message: string,\n metadata: Object = {},\n metadataStyles: ?Object,\n level: number = levels.DEBUG,\n options: ?Object,\n ) {\n const now = Date.now();\n\n const diffTime = now - startTime;\n\n if (diffTime < 1000) {\n metadata.readableTime = `${diffTime}ms`;\n } else {\n const seconds = diffTime > 1000 && Math.floor(diffTime / 1000);\n const ms = diffTime - seconds * 1000;\n metadata.readableTime = `${seconds ? `${seconds}s and ` : ''}${ms}ms`;\n }\n\n metadata.timeMs = diffTime;\n this.log(message, metadata, level, { ...options, metadataStyles });\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.timeEnd(time, message, metadata, metadataStyles, levels.INFO);\n }\n\n /**\n * Like timeEnd, but with INFO level\n */\n infoSuccessTimeEnd(time: number, message: string, metadata: ?Object, metadataStyles: ?Object) {\n this.timeEnd(time, message, metadata, metadataStyles, levels.INFO, {\n symbol: '✔',\n styles: ['green', 'bold'],\n });\n }\n\n /**\n * Log an enter in a function\n *\n * @example\n * class A {\n * method(arg1) {\n * logger.enter(method, { arg1 });\n * // Do your stuff\n * }\n * }\n *\n */\n enter(fn: Function, metadata: ?Object, metadataStyles: ?Object) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n this.log('enter', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Log an exit in a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method(arg1) {\n * // Do your stuff\n * logger.exit(method, { arg1 });\n * }\n * }\n */\n exit(fn: Function, metadata: ?Object, metadataStyles: ?Object) {\n metadata = {\n functionName: fn.name,\n ...metadata,\n };\n this.log('exit', metadata, levels.TRACE, { metadataStyles });\n }\n\n /**\n * Wrap around a function to log enter and exit of a function\n *\n * @example\n * const logger = new ConsoleLogger('myNamespace.A');\n * class A {\n * method() {\n * logger.wrap(method, () => {\n * // Do your stuff\n * });\n * }\n * }\n *\n * @param {Function} fn\n * @param {Object} [metadata]\n * @param {Object} [metadataStyles]\n * @param {Function} callback\n */\n wrap(\n fn: Function,\n metadata: ?Object | Function,\n metadataStyles: ?Object | Function,\n callback: Function,\n ) {\n if (typeof metadata === 'function') {\n callback = metadata;\n metadata = undefined;\n } else if (typeof metadataStyles === 'function') {\n callback = metadataStyles;\n metadataStyles = undefined;\n }\n\n this.enter(fn, metadata, metadataStyles);\n callback();\n this.exit(fn);\n }\n}\n"],"names":["global","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER","handlers","processors","__NIGHTINGALE_GET_CONFIG_FOR_LOGGER_RECORD","key","level","filter","handler","minLevel","isHandling","getConfigForLoggerRecord","recordLevel","Logger","displayName","includes","warn","replace","childSuffixKey","childDisplayName","context","logger","setContext","_context","extendedContext","assign","record","getHandlersAndProcessors","length","levels","ERROR","log","message","forEach","process","some","handle","metadata","INFO","options","undefined","Date","Object","addRecord","metadataStyles","TRACE","DEBUG","NOTICE","WARN","Error","error","name","CRITICAL","FATAL","ALERT","value","util","inspect","depth","styles","varName","varValue","infoSuccess","infoFail","now","time","startTime","diffTime","readableTime","seconds","Math","floor","timeMs","timeEnd","fn","callback","enter","exit"],"mappings":"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"}