All files / logger/src tags.ts

100% Statements 2/2
100% Branches 4/4
100% Functions 2/2
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                      4805x                       6x    
import type { LogEntry } from './types.ts';
 
/**
 * Checks whether a log entry has tags that should be rendered,
 * given the transport's `tags` option.
 *
 * @param includeTags - The transport's `tags` option value.
 * @param entry - The log entry to check.
 * @returns `true` if the entry has tags and the option is enabled.
 */
export function hasTags(includeTags: boolean, entry: LogEntry): boolean {
  return includeTags && entry.tags.length > 0;
}
 
/**
 * Formats an entry's tags as a bracketed string prefix, e.g. `"[cli, daemon] "`.
 * Returns an empty string if tags should not be rendered.
 *
 * @param includeTags - The transport's `tags` option value.
 * @param entry - The log entry whose tags to format.
 * @returns The formatted tag prefix or `""`.
 */
export function formatTagPrefix(includeTags: boolean, entry: LogEntry): string {
  return hasTags(includeTags, entry) ? `[${entry.tags.join(', ')}] ` : '';
}