@logtape/logtape 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,84 +0,0 @@
1
- import { suite } from "@alinea/suite";
2
- import { assert } from "@std/assert/assert";
3
- import { assertFalse } from "@std/assert/false";
4
- import { assertStrictEquals } from "@std/assert/strict-equals";
5
- import { assertThrows } from "@std/assert/throws";
6
- import { type Filter, getLevelFilter, toFilter } from "./filter.ts";
7
- import { debug, error, fatal, info, trace, warning } from "./fixtures.ts";
8
- import type { LogLevel } from "./level.ts";
9
-
10
- const test = suite(import.meta);
11
-
12
- test("getLevelFilter()", () => {
13
- const noneFilter = getLevelFilter(null);
14
- assertFalse(noneFilter(fatal));
15
- assertFalse(noneFilter(error));
16
- assertFalse(noneFilter(warning));
17
- assertFalse(noneFilter(info));
18
- assertFalse(noneFilter(debug));
19
- assertFalse(noneFilter(trace));
20
-
21
- const fatalFilter = getLevelFilter("fatal");
22
- assert(fatalFilter(fatal));
23
- assertFalse(fatalFilter(error));
24
- assertFalse(fatalFilter(warning));
25
- assertFalse(fatalFilter(info));
26
- assertFalse(fatalFilter(debug));
27
- assertFalse(fatalFilter(trace));
28
-
29
- const errorFilter = getLevelFilter("error");
30
- assert(errorFilter(fatal));
31
- assert(errorFilter(error));
32
- assertFalse(errorFilter(warning));
33
- assertFalse(errorFilter(info));
34
- assertFalse(errorFilter(debug));
35
- assertFalse(errorFilter(trace));
36
-
37
- const warningFilter = getLevelFilter("warning");
38
- assert(warningFilter(fatal));
39
- assert(warningFilter(error));
40
- assert(warningFilter(warning));
41
- assertFalse(warningFilter(info));
42
- assertFalse(warningFilter(debug));
43
- assertFalse(warningFilter(trace));
44
-
45
- const infoFilter = getLevelFilter("info");
46
- assert(infoFilter(fatal));
47
- assert(infoFilter(error));
48
- assert(infoFilter(warning));
49
- assert(infoFilter(info));
50
- assertFalse(infoFilter(debug));
51
- assertFalse(infoFilter(trace));
52
-
53
- const debugFilter = getLevelFilter("debug");
54
- assert(debugFilter(fatal));
55
- assert(debugFilter(error));
56
- assert(debugFilter(warning));
57
- assert(debugFilter(info));
58
- assert(debugFilter(debug));
59
- assertFalse(debugFilter(trace));
60
-
61
- const traceFilter = getLevelFilter("trace");
62
- assert(traceFilter(fatal));
63
- assert(traceFilter(error));
64
- assert(traceFilter(warning));
65
- assert(traceFilter(info));
66
- assert(traceFilter(debug));
67
- assert(traceFilter(trace));
68
-
69
- assertThrows(
70
- () => getLevelFilter("invalid" as LogLevel),
71
- TypeError,
72
- "Invalid log level: invalid.",
73
- );
74
- });
75
-
76
- test("toFilter()", () => {
77
- const hasJunk: Filter = (record) => record.category.includes("junk");
78
- assertStrictEquals(toFilter(hasJunk), hasJunk);
79
-
80
- const infoFilter = toFilter("info");
81
- assertFalse(infoFilter(debug));
82
- assert(infoFilter(info));
83
- assert(infoFilter(warning));
84
- });
package/src/filter.ts DELETED
@@ -1,64 +0,0 @@
1
- import type { LogLevel } from "./level.ts";
2
- import type { LogRecord } from "./record.ts";
3
-
4
- /**
5
- * A filter is a function that accepts a log record and returns `true` if the
6
- * record should be passed to the sink.
7
- *
8
- * @param record The log record to filter.
9
- * @returns `true` if the record should be passed to the sink.
10
- */
11
- export type Filter = (record: LogRecord) => boolean;
12
-
13
- /**
14
- * A filter-like value is either a {@link Filter} or a {@link LogLevel}.
15
- * `null` is also allowed to represent a filter that rejects all records.
16
- */
17
- export type FilterLike = Filter | LogLevel | null;
18
-
19
- /**
20
- * Converts a {@link FilterLike} value to an actual {@link Filter}.
21
- *
22
- * @param filter The filter-like value to convert.
23
- * @returns The actual filter.
24
- */
25
- export function toFilter(filter: FilterLike): Filter {
26
- if (typeof filter === "function") return filter;
27
- return getLevelFilter(filter);
28
- }
29
-
30
- /**
31
- * Returns a filter that accepts log records with the specified level.
32
- *
33
- * @param level The level to filter by. If `null`, the filter will reject all
34
- * records.
35
- * @returns The filter.
36
- */
37
- export function getLevelFilter(level: LogLevel | null): Filter {
38
- if (level == null) return () => false;
39
- if (level === "fatal") {
40
- return (record: LogRecord) => record.level === "fatal";
41
- } else if (level === "error") {
42
- return (record: LogRecord) =>
43
- record.level === "fatal" || record.level === "error";
44
- } else if (level === "warning") {
45
- return (record: LogRecord) =>
46
- record.level === "fatal" ||
47
- record.level === "error" ||
48
- record.level === "warning";
49
- } else if (level === "info") {
50
- return (record: LogRecord) =>
51
- record.level === "fatal" ||
52
- record.level === "error" ||
53
- record.level === "warning" ||
54
- record.level === "info";
55
- } else if (level === "debug") {
56
- return (record: LogRecord) =>
57
- record.level === "fatal" ||
58
- record.level === "error" ||
59
- record.level === "warning" ||
60
- record.level === "info" ||
61
- record.level === "debug";
62
- } else if (level === "trace") return () => true;
63
- throw new TypeError(`Invalid log level: ${level}.`);
64
- }
package/src/fixtures.ts DELETED
@@ -1,35 +0,0 @@
1
- import type { LogRecord } from "./record.ts";
2
-
3
- export const info: LogRecord = {
4
- level: "info",
5
- category: ["my-app", "junk"],
6
- message: ["Hello, ", 123, " & ", 456, "!"],
7
- rawMessage: "Hello, {a} & {b}!",
8
- timestamp: 1700000000000,
9
- properties: {},
10
- };
11
-
12
- export const trace: LogRecord = {
13
- ...info,
14
- level: "trace",
15
- };
16
-
17
- export const debug: LogRecord = {
18
- ...info,
19
- level: "debug",
20
- };
21
-
22
- export const warning: LogRecord = {
23
- ...info,
24
- level: "warning",
25
- };
26
-
27
- export const error: LogRecord = {
28
- ...info,
29
- level: "error",
30
- };
31
-
32
- export const fatal: LogRecord = {
33
- ...info,
34
- level: "fatal",
35
- };