namespace _wiki_js_cli.helpers.log { /** */ export enum enum_level { debug = "debug", info = "info", notice = "notice", warning = "warning", error = "error", } /** */ const _level_order : Array = [ enum_level.debug, enum_level.info, enum_level.notice, enum_level.warning, enum_level.error, ]; /** */ var _threshold : enum_level = enum_level.info; /** */ export function setup( threshold : enum_level ) : Promise { _threshold = threshold; return Promise.resolve(undefined); } /** */ export function write( level : enum_level, incident : string, details : any ) : void { if (_level_order.indexOf(level) < _level_order.indexOf(_threshold)) { // do nothing } else { process.stderr.write( _wiki_js_cli.helpers.string.coin( "\n<{{datetime}}> [{{level}}] {{incident}}\n{{details}}\n\n", { "datetime": (new Date()).toISOString(), "level": level, "incident": incident, "details": JSON.stringify(details, undefined, "\t"), } ) ); } } }