1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { formatWithOptions } from 'node:util';
- import { sep } from 'node:path';
- function parseStack(stack) {
- const cwd = process.cwd() + sep;
- const lines = stack.split("\n").splice(1).map((l) => l.trim().replace("file://", "").replace(cwd, ""));
- return lines;
- }
- function writeStream(data, stream) {
- const write = stream.__write || stream.write;
- return write.call(stream, data);
- }
- const bracket = (x) => x ? `[${x}]` : "";
- class BasicReporter {
- formatStack(stack, opts) {
- return " " + parseStack(stack).join("\n ");
- }
- formatArgs(args, opts) {
- const _args = args.map((arg) => {
- if (arg && typeof arg.stack === "string") {
- return arg.message + "\n" + this.formatStack(arg.stack, opts);
- }
- return arg;
- });
- return formatWithOptions(opts, ..._args);
- }
- formatDate(date, opts) {
- return opts.date ? date.toLocaleTimeString() : "";
- }
- filterAndJoin(arr) {
- return arr.filter(Boolean).join(" ");
- }
- formatLogObj(logObj, opts) {
- const message = this.formatArgs(logObj.args, opts);
- if (logObj.type === "box") {
- return "\n" + [
- bracket(logObj.tag),
- logObj.title && logObj.title,
- ...message.split("\n")
- ].filter(Boolean).map((l) => " > " + l).join("\n") + "\n";
- }
- return this.filterAndJoin([
- bracket(logObj.type),
- bracket(logObj.tag),
- message
- ]);
- }
- log(logObj, ctx) {
- const line = this.formatLogObj(logObj, {
- columns: ctx.options.stdout.columns || 0,
- ...ctx.options.formatOptions
- });
- return writeStream(
- line + "\n",
- logObj.level < 2 ? ctx.options.stderr || process.stderr : ctx.options.stdout || process.stdout
- );
- }
- }
- export { BasicReporter as B, parseStack as p };
|