API reference@evolu/commonConsole › createConsoleFormatter

function createConsoleFormatter(
  __namedParameters?: Partial<TimeDep>,
): (config: ConsoleFormatterConfig) => ConsoleFormatter;

Defined in: packages/common/src/Console.ts:543

Creates a ConsoleFormatter for ConsoleConfig.formatter.

Prepends timestamps and path prefixes to entry args.

Example

import {
  assertEqual,
  assertType,
  createConsoleFormatter,
  Data,
  Millis,
  testCreateTime,
  type ConsoleEntry,
} from "@evolu/common";

const time = testCreateTime({ startAt: Millis.orThrow(0) });
const formatRelative = createConsoleFormatter({ time })({
  timestampFormat: "relative",
});
const connected: ConsoleEntry = {
  method: "log",
  path: ["relay"],
  args: ["connected"],
};

const relative = formatRelative(connected);
assertType(Data, relative);
assertEqual(relative, ["+0.000s [relay]", "connected"]);
time.advance("1.5s");
const nested = formatRelative({
  ...connected,
  path: ["relay", "db"],
  args: ["opened"],
});
assertType(Data, nested);
assertEqual(nested, ["+1.500s [relay] [db]", "opened"]);

const localTimestamp = new globalThis.Date(
  2026,
  0,
  28,
  14,
  30,
  15,
  123,
).getTime();
const formatAbsolute = createConsoleFormatter({
  time: testCreateTime({ startAt: Millis.orThrow(localTimestamp) }),
})({ timestampFormat: "absolute" });
const absolute = formatAbsolute(connected);
assertType(Data, absolute);
assertEqual(absolute, ["14:30:15.123 [relay]", "connected"]);