@logtape/logtape 0.11.0-dev.175 → 0.12.0-dev.181

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.
Files changed (171) hide show
  1. package/config.test.ts +591 -0
  2. package/config.ts +421 -0
  3. package/context.test.ts +187 -0
  4. package/context.ts +55 -0
  5. package/deno.json +36 -0
  6. package/dist/_virtual/rolldown_runtime.cjs +30 -0
  7. package/dist/config.cjs +247 -0
  8. package/dist/config.d.cts +189 -0
  9. package/dist/config.d.cts.map +1 -0
  10. package/dist/config.d.ts +189 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +241 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/context.cjs +30 -0
  15. package/dist/context.d.cts +39 -0
  16. package/dist/context.d.cts.map +1 -0
  17. package/dist/context.d.ts +39 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +31 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/filter.cjs +32 -0
  22. package/dist/filter.d.cts +37 -0
  23. package/dist/filter.d.cts.map +1 -0
  24. package/{types → dist}/filter.d.ts +12 -6
  25. package/dist/filter.d.ts.map +1 -0
  26. package/dist/filter.js +31 -0
  27. package/dist/filter.js.map +1 -0
  28. package/dist/formatter.cjs +281 -0
  29. package/dist/formatter.d.cts +338 -0
  30. package/dist/formatter.d.cts.map +1 -0
  31. package/dist/formatter.d.ts +338 -0
  32. package/dist/formatter.d.ts.map +1 -0
  33. package/dist/formatter.js +275 -0
  34. package/dist/formatter.js.map +1 -0
  35. package/dist/level.cjs +64 -0
  36. package/dist/level.d.cts +34 -0
  37. package/dist/level.d.cts.map +1 -0
  38. package/{types → dist}/level.d.ts +7 -5
  39. package/dist/level.d.ts.map +1 -0
  40. package/dist/level.js +62 -0
  41. package/dist/level.js.map +1 -0
  42. package/dist/logger.cjs +351 -0
  43. package/dist/logger.d.cts +501 -0
  44. package/dist/logger.d.cts.map +1 -0
  45. package/dist/logger.d.ts +501 -0
  46. package/dist/logger.d.ts.map +1 -0
  47. package/dist/logger.js +351 -0
  48. package/dist/logger.js.map +1 -0
  49. package/dist/mod.cjs +33 -0
  50. package/dist/mod.d.cts +9 -0
  51. package/dist/mod.d.ts +9 -0
  52. package/dist/mod.js +9 -0
  53. package/dist/record.d.cts +50 -0
  54. package/dist/record.d.cts.map +1 -0
  55. package/dist/record.d.ts +50 -0
  56. package/dist/record.d.ts.map +1 -0
  57. package/dist/sink.cjs +95 -0
  58. package/dist/sink.d.cts +112 -0
  59. package/dist/sink.d.cts.map +1 -0
  60. package/{types → dist}/sink.d.ts +49 -45
  61. package/dist/sink.d.ts.map +1 -0
  62. package/dist/sink.js +94 -0
  63. package/dist/sink.js.map +1 -0
  64. package/dist/util.cjs +9 -0
  65. package/dist/util.d.cts +12 -0
  66. package/dist/util.d.cts.map +1 -0
  67. package/dist/util.d.ts +12 -0
  68. package/dist/util.d.ts.map +1 -0
  69. package/dist/util.deno.cjs +16 -0
  70. package/dist/util.deno.d.cts +12 -0
  71. package/dist/util.deno.d.cts.map +1 -0
  72. package/dist/util.deno.d.ts +12 -0
  73. package/dist/util.deno.d.ts.map +1 -0
  74. package/dist/util.deno.js +16 -0
  75. package/dist/util.deno.js.map +1 -0
  76. package/dist/util.js +9 -0
  77. package/dist/util.js.map +1 -0
  78. package/dist/util.node.cjs +10 -0
  79. package/dist/util.node.d.cts +12 -0
  80. package/dist/util.node.d.cts.map +1 -0
  81. package/dist/util.node.d.ts +12 -0
  82. package/dist/util.node.d.ts.map +1 -0
  83. package/dist/util.node.js +10 -0
  84. package/dist/util.node.js.map +1 -0
  85. package/filter.test.ts +70 -0
  86. package/filter.ts +57 -0
  87. package/fixtures.ts +30 -0
  88. package/formatter.test.ts +530 -0
  89. package/formatter.ts +724 -0
  90. package/level.test.ts +47 -0
  91. package/level.ts +67 -0
  92. package/logger.test.ts +823 -0
  93. package/logger.ts +1124 -0
  94. package/mod.ts +54 -0
  95. package/package.json +35 -23
  96. package/record.ts +49 -0
  97. package/sink.test.ts +219 -0
  98. package/sink.ts +167 -0
  99. package/tsdown.config.ts +24 -0
  100. package/util.deno.ts +19 -0
  101. package/util.node.ts +12 -0
  102. package/util.ts +11 -0
  103. package/esm/_dnt.shims.js +0 -57
  104. package/esm/config.js +0 -297
  105. package/esm/context.js +0 -23
  106. package/esm/filter.js +0 -42
  107. package/esm/formatter.js +0 -370
  108. package/esm/level.js +0 -59
  109. package/esm/logger.js +0 -517
  110. package/esm/mod.js +0 -8
  111. package/esm/nodeUtil.cjs +0 -20
  112. package/esm/nodeUtil.js +0 -2
  113. package/esm/package.json +0 -3
  114. package/esm/record.js +0 -1
  115. package/esm/sink.js +0 -96
  116. package/script/_dnt.shims.js +0 -60
  117. package/script/config.js +0 -331
  118. package/script/context.js +0 -26
  119. package/script/filter.js +0 -46
  120. package/script/formatter.js +0 -380
  121. package/script/level.js +0 -64
  122. package/script/logger.js +0 -548
  123. package/script/mod.js +0 -36
  124. package/script/nodeUtil.js +0 -20
  125. package/script/package.json +0 -3
  126. package/script/record.js +0 -2
  127. package/script/sink.js +0 -101
  128. package/types/_dnt.shims.d.ts +0 -2
  129. package/types/_dnt.shims.d.ts.map +0 -1
  130. package/types/_dnt.test_shims.d.ts.map +0 -1
  131. package/types/config.d.ts +0 -183
  132. package/types/config.d.ts.map +0 -1
  133. package/types/config.test.d.ts.map +0 -1
  134. package/types/context.d.ts +0 -35
  135. package/types/context.d.ts.map +0 -1
  136. package/types/context.test.d.ts.map +0 -1
  137. package/types/deps/jsr.io/@std/assert/0.222.1/_constants.d.ts.map +0 -1
  138. package/types/deps/jsr.io/@std/assert/0.222.1/_diff.d.ts.map +0 -1
  139. package/types/deps/jsr.io/@std/assert/0.222.1/_format.d.ts.map +0 -1
  140. package/types/deps/jsr.io/@std/assert/0.222.1/assert.d.ts.map +0 -1
  141. package/types/deps/jsr.io/@std/assert/0.222.1/assert_equals.d.ts.map +0 -1
  142. package/types/deps/jsr.io/@std/assert/0.222.1/assert_false.d.ts.map +0 -1
  143. package/types/deps/jsr.io/@std/assert/0.222.1/assert_greater_or_equal.d.ts.map +0 -1
  144. package/types/deps/jsr.io/@std/assert/0.222.1/assert_is_error.d.ts.map +0 -1
  145. package/types/deps/jsr.io/@std/assert/0.222.1/assert_less_or_equal.d.ts.map +0 -1
  146. package/types/deps/jsr.io/@std/assert/0.222.1/assert_rejects.d.ts.map +0 -1
  147. package/types/deps/jsr.io/@std/assert/0.222.1/assert_strict_equals.d.ts.map +0 -1
  148. package/types/deps/jsr.io/@std/assert/0.222.1/assert_throws.d.ts.map +0 -1
  149. package/types/deps/jsr.io/@std/assert/0.222.1/assertion_error.d.ts.map +0 -1
  150. package/types/deps/jsr.io/@std/assert/0.222.1/equal.d.ts.map +0 -1
  151. package/types/deps/jsr.io/@std/async/0.222.1/delay.d.ts.map +0 -1
  152. package/types/deps/jsr.io/@std/fmt/0.222.1/colors.d.ts.map +0 -1
  153. package/types/filter.d.ts.map +0 -1
  154. package/types/filter.test.d.ts.map +0 -1
  155. package/types/fixtures.d.ts.map +0 -1
  156. package/types/formatter.d.ts +0 -332
  157. package/types/formatter.d.ts.map +0 -1
  158. package/types/formatter.test.d.ts.map +0 -1
  159. package/types/level.d.ts.map +0 -1
  160. package/types/level.test.d.ts.map +0 -1
  161. package/types/logger.d.ts +0 -573
  162. package/types/logger.d.ts.map +0 -1
  163. package/types/logger.test.d.ts.map +0 -1
  164. package/types/mod.d.ts +0 -9
  165. package/types/mod.d.ts.map +0 -1
  166. package/types/nodeUtil.d.ts +0 -12
  167. package/types/nodeUtil.d.ts.map +0 -1
  168. package/types/record.d.ts +0 -44
  169. package/types/record.d.ts.map +0 -1
  170. package/types/sink.d.ts.map +0 -1
  171. package/types/sink.test.d.ts.map +0 -1
package/level.test.ts ADDED
@@ -0,0 +1,47 @@
1
+ import { suite } from "@hongminhee/suite";
2
+ import { assert } from "@std/assert/assert";
3
+ import { assertEquals } from "@std/assert/equals";
4
+ import { assertFalse } from "@std/assert/false";
5
+ import { assertThrows } from "@std/assert/throws";
6
+ import {
7
+ compareLogLevel,
8
+ isLogLevel,
9
+ type LogLevel,
10
+ parseLogLevel,
11
+ } from "./level.ts";
12
+
13
+ const test = suite(import.meta);
14
+
15
+ test("parseLogLevel()", () => {
16
+ assertEquals(parseLogLevel("debug"), "debug");
17
+ assertEquals(parseLogLevel("info"), "info");
18
+ assertEquals(parseLogLevel("warning"), "warning");
19
+ assertEquals(parseLogLevel("error"), "error");
20
+ assertEquals(parseLogLevel("fatal"), "fatal");
21
+ assertEquals(parseLogLevel("DEBUG"), "debug");
22
+ assertEquals(parseLogLevel("INFO"), "info");
23
+ assertEquals(parseLogLevel("WARNING"), "warning");
24
+ assertEquals(parseLogLevel("ERROR"), "error");
25
+ assertEquals(parseLogLevel("FATAL"), "fatal");
26
+ assertThrows(
27
+ () => parseLogLevel("invalid"),
28
+ TypeError,
29
+ "Invalid log level: invalid.",
30
+ );
31
+ });
32
+
33
+ test("isLogLevel()", () => {
34
+ assert(isLogLevel("debug"));
35
+ assert(isLogLevel("info"));
36
+ assert(isLogLevel("warning"));
37
+ assert(isLogLevel("error"));
38
+ assert(isLogLevel("fatal"));
39
+ assertFalse(isLogLevel("DEBUG"));
40
+ assertFalse(isLogLevel("invalid"));
41
+ });
42
+
43
+ test("compareLogLevel()", () => {
44
+ const levels: LogLevel[] = ["info", "debug", "error", "warning", "fatal"];
45
+ levels.sort(compareLogLevel);
46
+ assertEquals(levels, ["debug", "info", "warning", "error", "fatal"]);
47
+ });
package/level.ts ADDED
@@ -0,0 +1,67 @@
1
+ const logLevels = ["debug", "info", "warning", "error", "fatal"] as const;
2
+
3
+ /**
4
+ * The severity level of a {@link LogRecord}.
5
+ */
6
+ export type LogLevel = typeof logLevels[number];
7
+
8
+ /**
9
+ * Parses a log level from a string.
10
+ *
11
+ * @param level The log level as a string. This is case-insensitive.
12
+ * @returns The log level.
13
+ * @throws {TypeError} If the log level is invalid.
14
+ */
15
+ export function parseLogLevel(level: string): LogLevel {
16
+ level = level.toLowerCase();
17
+ switch (level) {
18
+ case "debug":
19
+ case "info":
20
+ case "warning":
21
+ case "error":
22
+ case "fatal":
23
+ return level;
24
+ default:
25
+ throw new TypeError(`Invalid log level: ${level}.`);
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Checks if a string is a valid log level. This function can be used as
31
+ * as a type guard to narrow the type of a string to a {@link LogLevel}.
32
+ *
33
+ * @param level The log level as a string. This is case-sensitive.
34
+ * @returns `true` if the string is a valid log level.
35
+ */
36
+ export function isLogLevel(level: string): level is LogLevel {
37
+ switch (level) {
38
+ case "debug":
39
+ case "info":
40
+ case "warning":
41
+ case "error":
42
+ case "fatal":
43
+ return true;
44
+ default:
45
+ return false;
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Compares two log levels.
51
+ * @param a The first log level.
52
+ * @param b The second log level.
53
+ * @returns A negative number if `a` is less than `b`, a positive number if `a`
54
+ * is greater than `b`, or zero if they are equal.
55
+ * @since 0.8.0
56
+ */
57
+ export function compareLogLevel(a: LogLevel, b: LogLevel): number {
58
+ const aIndex = logLevels.indexOf(a);
59
+ if (aIndex < 0) {
60
+ throw new TypeError(`Invalid log level: ${JSON.stringify(a)}.`);
61
+ }
62
+ const bIndex = logLevels.indexOf(b);
63
+ if (bIndex < 0) {
64
+ throw new TypeError(`Invalid log level: ${JSON.stringify(b)}.`);
65
+ }
66
+ return aIndex - bIndex;
67
+ }