jsout
Version:
A Syslog-compatible, small, and simple logger for Typescript/Javascript projects. Sponsored by https://aeroview.io
38 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.log = log;
const _1 = require(".");
const cli_1 = require("./formatters/cli");
const json_1 = require("./formatters/json");
const serializeCustomProps_1 = require("./serializeCustomProps");
const serializeError_1 = require("./serializeError");
function log(input) {
if (!input)
throw new Error('input is required');
if (!input.options)
throw new Error('options is required');
if (!input.transport)
throw new Error('transport is required');
if (!input.transport.stdout)
throw new Error('transport.stdout must be a function');
if (!input.transport.stderr)
throw new Error('transport.stderr must be a function');
const { level, message, error, data, options } = input;
if (level > options.level)
return;
const log = {
level,
message: message ?? error?.message ?? '',
error: error instanceof Error
? (0, serializeError_1.serializeError)(error)
: (0, serializeCustomProps_1.serializeCustomProps)(error),
data: (0, serializeCustomProps_1.serializeCustomProps)(data),
};
const transport = log.level <= _1.LogLevel.warn
? input.transport.stderr // 0-4
: input.transport.stdout; // 5-7
options.format === _1.LogFormat.json
? transport((0, json_1.formatJson)(log))
: transport((0, cli_1.formatCli)(log));
}
//# sourceMappingURL=log.js.map