@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/script/logger.js DELETED
@@ -1,548 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.LoggerCtx = exports.LoggerImpl = void 0;
27
- exports.getLogger = getLogger;
28
- exports.parseMessageTemplate = parseMessageTemplate;
29
- exports.renderMessage = renderMessage;
30
- const dntShim = __importStar(require("./_dnt.shims.js"));
31
- const level_js_1 = require("./level.js");
32
- /**
33
- * Get a logger with the given category.
34
- *
35
- * ```typescript
36
- * const logger = getLogger(["my-app"]);
37
- * ```
38
- *
39
- * @param category The category of the logger. It can be a string or an array
40
- * of strings. If it is a string, it is equivalent to an array
41
- * with a single element.
42
- * @returns The logger.
43
- */
44
- function getLogger(category = []) {
45
- return LoggerImpl.getLogger(category);
46
- }
47
- /**
48
- * The symbol for the global root logger.
49
- */
50
- const globalRootLoggerSymbol = Symbol.for("logtape.rootLogger");
51
- /**
52
- * A logger implementation. Do not use this directly; use {@link getLogger}
53
- * instead. This class is exported for testing purposes.
54
- */
55
- class LoggerImpl {
56
- static getLogger(category = []) {
57
- let rootLogger = globalRootLoggerSymbol in dntShim.dntGlobalThis
58
- ? (dntShim.dntGlobalThis[globalRootLoggerSymbol] ??
59
- null)
60
- : null;
61
- if (rootLogger == null) {
62
- rootLogger = new LoggerImpl(null, []);
63
- dntShim.dntGlobalThis[globalRootLoggerSymbol] =
64
- rootLogger;
65
- }
66
- if (typeof category === "string")
67
- return rootLogger.getChild(category);
68
- if (category.length === 0)
69
- return rootLogger;
70
- return rootLogger.getChild(category);
71
- }
72
- constructor(parent, category) {
73
- Object.defineProperty(this, "parent", {
74
- enumerable: true,
75
- configurable: true,
76
- writable: true,
77
- value: void 0
78
- });
79
- Object.defineProperty(this, "children", {
80
- enumerable: true,
81
- configurable: true,
82
- writable: true,
83
- value: void 0
84
- });
85
- Object.defineProperty(this, "category", {
86
- enumerable: true,
87
- configurable: true,
88
- writable: true,
89
- value: void 0
90
- });
91
- Object.defineProperty(this, "sinks", {
92
- enumerable: true,
93
- configurable: true,
94
- writable: true,
95
- value: void 0
96
- });
97
- Object.defineProperty(this, "parentSinks", {
98
- enumerable: true,
99
- configurable: true,
100
- writable: true,
101
- value: "inherit"
102
- });
103
- Object.defineProperty(this, "filters", {
104
- enumerable: true,
105
- configurable: true,
106
- writable: true,
107
- value: void 0
108
- });
109
- Object.defineProperty(this, "lowestLevel", {
110
- enumerable: true,
111
- configurable: true,
112
- writable: true,
113
- value: "debug"
114
- });
115
- Object.defineProperty(this, "contextLocalStorage", {
116
- enumerable: true,
117
- configurable: true,
118
- writable: true,
119
- value: void 0
120
- });
121
- this.parent = parent;
122
- this.children = {};
123
- this.category = category;
124
- this.sinks = [];
125
- this.filters = [];
126
- }
127
- getChild(subcategory) {
128
- const name = typeof subcategory === "string" ? subcategory : subcategory[0];
129
- const childRef = this.children[name];
130
- let child = childRef instanceof LoggerImpl
131
- ? childRef
132
- : childRef?.deref();
133
- if (child == null) {
134
- child = new LoggerImpl(this, [...this.category, name]);
135
- this.children[name] = "WeakRef" in dntShim.dntGlobalThis
136
- ? new WeakRef(child)
137
- : child;
138
- }
139
- if (typeof subcategory === "string" || subcategory.length === 1) {
140
- return child;
141
- }
142
- return child.getChild(subcategory.slice(1));
143
- }
144
- /**
145
- * Reset the logger. This removes all sinks and filters from the logger.
146
- */
147
- reset() {
148
- while (this.sinks.length > 0)
149
- this.sinks.shift();
150
- this.parentSinks = "inherit";
151
- while (this.filters.length > 0)
152
- this.filters.shift();
153
- this.lowestLevel = "debug";
154
- }
155
- /**
156
- * Reset the logger and all its descendants. This removes all sinks and
157
- * filters from the logger and all its descendants.
158
- */
159
- resetDescendants() {
160
- for (const child of Object.values(this.children)) {
161
- const logger = child instanceof LoggerImpl ? child : child.deref();
162
- if (logger != null)
163
- logger.resetDescendants();
164
- }
165
- this.reset();
166
- }
167
- with(properties) {
168
- return new LoggerCtx(this, { ...properties });
169
- }
170
- filter(record) {
171
- for (const filter of this.filters) {
172
- if (!filter(record))
173
- return false;
174
- }
175
- if (this.filters.length < 1)
176
- return this.parent?.filter(record) ?? true;
177
- return true;
178
- }
179
- *getSinks(level) {
180
- if (this.lowestLevel === null || (0, level_js_1.compareLogLevel)(level, this.lowestLevel) < 0) {
181
- return;
182
- }
183
- if (this.parent != null && this.parentSinks === "inherit") {
184
- for (const sink of this.parent.getSinks(level))
185
- yield sink;
186
- }
187
- for (const sink of this.sinks)
188
- yield sink;
189
- }
190
- emit(record, bypassSinks) {
191
- if (this.lowestLevel === null ||
192
- (0, level_js_1.compareLogLevel)(record.level, this.lowestLevel) < 0 ||
193
- !this.filter(record)) {
194
- return;
195
- }
196
- for (const sink of this.getSinks(record.level)) {
197
- if (bypassSinks?.has(sink))
198
- continue;
199
- try {
200
- sink(record);
201
- }
202
- catch (error) {
203
- const bypassSinks2 = new Set(bypassSinks);
204
- bypassSinks2.add(sink);
205
- metaLogger.log("fatal", "Failed to emit a log record to sink {sink}: {error}", { sink, error, record }, bypassSinks2);
206
- }
207
- }
208
- }
209
- log(level, rawMessage, properties, bypassSinks) {
210
- const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
211
- let cachedProps = undefined;
212
- const record = typeof properties === "function"
213
- ? {
214
- category: this.category,
215
- level,
216
- timestamp: Date.now(),
217
- get message() {
218
- return parseMessageTemplate(rawMessage, this.properties);
219
- },
220
- rawMessage,
221
- get properties() {
222
- if (cachedProps == null) {
223
- cachedProps = {
224
- ...implicitContext,
225
- ...properties(),
226
- };
227
- }
228
- return cachedProps;
229
- },
230
- }
231
- : {
232
- category: this.category,
233
- level,
234
- timestamp: Date.now(),
235
- message: parseMessageTemplate(rawMessage, {
236
- ...implicitContext,
237
- ...properties,
238
- }),
239
- rawMessage,
240
- properties: { ...implicitContext, ...properties },
241
- };
242
- this.emit(record, bypassSinks);
243
- }
244
- logLazily(level, callback, properties = {}) {
245
- const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
246
- let rawMessage = undefined;
247
- let msg = undefined;
248
- function realizeMessage() {
249
- if (msg == null || rawMessage == null) {
250
- msg = callback((tpl, ...values) => {
251
- rawMessage = tpl;
252
- return renderMessage(tpl, values);
253
- });
254
- if (rawMessage == null)
255
- throw new TypeError("No log record was made.");
256
- }
257
- return [msg, rawMessage];
258
- }
259
- this.emit({
260
- category: this.category,
261
- level,
262
- get message() {
263
- return realizeMessage()[0];
264
- },
265
- get rawMessage() {
266
- return realizeMessage()[1];
267
- },
268
- timestamp: Date.now(),
269
- properties: { ...implicitContext, ...properties },
270
- });
271
- }
272
- logTemplate(level, messageTemplate, values, properties = {}) {
273
- const implicitContext = LoggerImpl.getLogger().contextLocalStorage?.getStore() ?? {};
274
- this.emit({
275
- category: this.category,
276
- level,
277
- message: renderMessage(messageTemplate, values),
278
- rawMessage: messageTemplate,
279
- timestamp: Date.now(),
280
- properties: { ...implicitContext, ...properties },
281
- });
282
- }
283
- debug(message, ...values) {
284
- if (typeof message === "string") {
285
- this.log("debug", message, (values[0] ?? {}));
286
- }
287
- else if (typeof message === "function") {
288
- this.logLazily("debug", message);
289
- }
290
- else if (!Array.isArray(message)) {
291
- this.log("debug", "{*}", message);
292
- }
293
- else {
294
- this.logTemplate("debug", message, values);
295
- }
296
- }
297
- info(message, ...values) {
298
- if (typeof message === "string") {
299
- this.log("info", message, (values[0] ?? {}));
300
- }
301
- else if (typeof message === "function") {
302
- this.logLazily("info", message);
303
- }
304
- else if (!Array.isArray(message)) {
305
- this.log("info", "{*}", message);
306
- }
307
- else {
308
- this.logTemplate("info", message, values);
309
- }
310
- }
311
- warn(message, ...values) {
312
- if (typeof message === "string") {
313
- this.log("warning", message, (values[0] ?? {}));
314
- }
315
- else if (typeof message === "function") {
316
- this.logLazily("warning", message);
317
- }
318
- else if (!Array.isArray(message)) {
319
- this.log("warning", "{*}", message);
320
- }
321
- else {
322
- this.logTemplate("warning", message, values);
323
- }
324
- }
325
- error(message, ...values) {
326
- if (typeof message === "string") {
327
- this.log("error", message, (values[0] ?? {}));
328
- }
329
- else if (typeof message === "function") {
330
- this.logLazily("error", message);
331
- }
332
- else if (!Array.isArray(message)) {
333
- this.log("error", "{*}", message);
334
- }
335
- else {
336
- this.logTemplate("error", message, values);
337
- }
338
- }
339
- fatal(message, ...values) {
340
- if (typeof message === "string") {
341
- this.log("fatal", message, (values[0] ?? {}));
342
- }
343
- else if (typeof message === "function") {
344
- this.logLazily("fatal", message);
345
- }
346
- else if (!Array.isArray(message)) {
347
- this.log("fatal", "{*}", message);
348
- }
349
- else {
350
- this.logTemplate("fatal", message, values);
351
- }
352
- }
353
- }
354
- exports.LoggerImpl = LoggerImpl;
355
- /**
356
- * A logger implementation with contextual properties. Do not use this
357
- * directly; use {@link Logger.with} instead. This class is exported
358
- * for testing purposes.
359
- */
360
- class LoggerCtx {
361
- constructor(logger, properties) {
362
- Object.defineProperty(this, "logger", {
363
- enumerable: true,
364
- configurable: true,
365
- writable: true,
366
- value: void 0
367
- });
368
- Object.defineProperty(this, "properties", {
369
- enumerable: true,
370
- configurable: true,
371
- writable: true,
372
- value: void 0
373
- });
374
- this.logger = logger;
375
- this.properties = properties;
376
- }
377
- get category() {
378
- return this.logger.category;
379
- }
380
- get parent() {
381
- return this.logger.parent;
382
- }
383
- getChild(subcategory) {
384
- return this.logger.getChild(subcategory).with(this.properties);
385
- }
386
- with(properties) {
387
- return new LoggerCtx(this.logger, { ...this.properties, ...properties });
388
- }
389
- log(level, message, properties, bypassSinks) {
390
- this.logger.log(level, message, typeof properties === "function"
391
- ? () => ({
392
- ...this.properties,
393
- ...properties(),
394
- })
395
- : { ...this.properties, ...properties }, bypassSinks);
396
- }
397
- logLazily(level, callback) {
398
- this.logger.logLazily(level, callback, this.properties);
399
- }
400
- logTemplate(level, messageTemplate, values) {
401
- this.logger.logTemplate(level, messageTemplate, values, this.properties);
402
- }
403
- debug(message, ...values) {
404
- if (typeof message === "string") {
405
- this.log("debug", message, (values[0] ?? {}));
406
- }
407
- else if (typeof message === "function") {
408
- this.logLazily("debug", message);
409
- }
410
- else if (!Array.isArray(message)) {
411
- this.log("debug", "{*}", message);
412
- }
413
- else {
414
- this.logTemplate("debug", message, values);
415
- }
416
- }
417
- info(message, ...values) {
418
- if (typeof message === "string") {
419
- this.log("info", message, (values[0] ?? {}));
420
- }
421
- else if (typeof message === "function") {
422
- this.logLazily("info", message);
423
- }
424
- else if (!Array.isArray(message)) {
425
- this.log("info", "{*}", message);
426
- }
427
- else {
428
- this.logTemplate("info", message, values);
429
- }
430
- }
431
- warn(message, ...values) {
432
- if (typeof message === "string") {
433
- this.log("warning", message, (values[0] ?? {}));
434
- }
435
- else if (typeof message === "function") {
436
- this.logLazily("warning", message);
437
- }
438
- else if (!Array.isArray(message)) {
439
- this.log("warning", "{*}", message);
440
- }
441
- else {
442
- this.logTemplate("warning", message, values);
443
- }
444
- }
445
- error(message, ...values) {
446
- if (typeof message === "string") {
447
- this.log("error", message, (values[0] ?? {}));
448
- }
449
- else if (typeof message === "function") {
450
- this.logLazily("error", message);
451
- }
452
- else if (!Array.isArray(message)) {
453
- this.log("error", "{*}", message);
454
- }
455
- else {
456
- this.logTemplate("error", message, values);
457
- }
458
- }
459
- fatal(message, ...values) {
460
- if (typeof message === "string") {
461
- this.log("fatal", message, (values[0] ?? {}));
462
- }
463
- else if (typeof message === "function") {
464
- this.logLazily("fatal", message);
465
- }
466
- else if (!Array.isArray(message)) {
467
- this.log("fatal", "{*}", message);
468
- }
469
- else {
470
- this.logTemplate("fatal", message, values);
471
- }
472
- }
473
- }
474
- exports.LoggerCtx = LoggerCtx;
475
- /**
476
- * The meta logger. It is a logger with the category `["logtape", "meta"]`.
477
- */
478
- const metaLogger = LoggerImpl.getLogger(["logtape", "meta"]);
479
- /**
480
- * Parse a message template into a message template array and a values array.
481
- * @param template The message template.
482
- * @param properties The values to replace placeholders with.
483
- * @returns The message template array and the values array.
484
- */
485
- function parseMessageTemplate(template, properties) {
486
- const message = [];
487
- let part = "";
488
- for (let i = 0; i < template.length; i++) {
489
- const char = template.charAt(i);
490
- const nextChar = template.charAt(i + 1);
491
- if (char === "{" && nextChar === "{") {
492
- // Escaped { character
493
- part = part + char;
494
- i++;
495
- }
496
- else if (char === "}" && nextChar === "}") {
497
- // Escaped } character
498
- part = part + char;
499
- i++;
500
- }
501
- else if (char === "{") {
502
- // Start of a placeholder
503
- message.push(part);
504
- part = "";
505
- }
506
- else if (char === "}") {
507
- // End of a placeholder
508
- let prop;
509
- if (part.match(/^\s*\*\s*$/)) {
510
- prop = part in properties
511
- ? properties[part]
512
- : "*" in properties
513
- ? properties["*"]
514
- : properties;
515
- }
516
- else if (part.match(/^\s|\s$/)) {
517
- prop = part in properties ? properties[part] : properties[part.trim()];
518
- }
519
- else {
520
- prop = properties[part];
521
- }
522
- message.push(prop);
523
- part = "";
524
- }
525
- else {
526
- // Default case
527
- part = part + char;
528
- }
529
- }
530
- message.push(part);
531
- return message;
532
- }
533
- /**
534
- * Render a message template with values.
535
- * @param template The message template.
536
- * @param values The message template values.
537
- * @returns The message template values interleaved between the substitution
538
- * values.
539
- */
540
- function renderMessage(template, values) {
541
- const args = [];
542
- for (let i = 0; i < template.length; i++) {
543
- args.push(template[i]);
544
- if (i < values.length)
545
- args.push(values[i]);
546
- }
547
- return args;
548
- }
package/script/mod.js DELETED
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withFilter = exports.getStreamSink = exports.getConsoleSink = exports.getLogger = exports.parseLogLevel = exports.isLogLevel = exports.compareLogLevel = exports.jsonLinesFormatter = exports.getTextFormatter = exports.getJsonLinesFormatter = exports.getAnsiColorFormatter = exports.defaultTextFormatter = exports.defaultConsoleFormatter = exports.ansiColorFormatter = exports.toFilter = exports.getLevelFilter = exports.withContext = exports.resetSync = exports.reset = exports.getConfig = exports.disposeSync = exports.dispose = exports.configureSync = exports.configure = exports.ConfigError = void 0;
4
- var config_js_1 = require("./config.js");
5
- Object.defineProperty(exports, "ConfigError", { enumerable: true, get: function () { return config_js_1.ConfigError; } });
6
- Object.defineProperty(exports, "configure", { enumerable: true, get: function () { return config_js_1.configure; } });
7
- Object.defineProperty(exports, "configureSync", { enumerable: true, get: function () { return config_js_1.configureSync; } });
8
- Object.defineProperty(exports, "dispose", { enumerable: true, get: function () { return config_js_1.dispose; } });
9
- Object.defineProperty(exports, "disposeSync", { enumerable: true, get: function () { return config_js_1.disposeSync; } });
10
- Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_js_1.getConfig; } });
11
- Object.defineProperty(exports, "reset", { enumerable: true, get: function () { return config_js_1.reset; } });
12
- Object.defineProperty(exports, "resetSync", { enumerable: true, get: function () { return config_js_1.resetSync; } });
13
- var context_js_1 = require("./context.js");
14
- Object.defineProperty(exports, "withContext", { enumerable: true, get: function () { return context_js_1.withContext; } });
15
- var filter_js_1 = require("./filter.js");
16
- Object.defineProperty(exports, "getLevelFilter", { enumerable: true, get: function () { return filter_js_1.getLevelFilter; } });
17
- Object.defineProperty(exports, "toFilter", { enumerable: true, get: function () { return filter_js_1.toFilter; } });
18
- var formatter_js_1 = require("./formatter.js");
19
- Object.defineProperty(exports, "ansiColorFormatter", { enumerable: true, get: function () { return formatter_js_1.ansiColorFormatter; } });
20
- Object.defineProperty(exports, "defaultConsoleFormatter", { enumerable: true, get: function () { return formatter_js_1.defaultConsoleFormatter; } });
21
- Object.defineProperty(exports, "defaultTextFormatter", { enumerable: true, get: function () { return formatter_js_1.defaultTextFormatter; } });
22
- Object.defineProperty(exports, "getAnsiColorFormatter", { enumerable: true, get: function () { return formatter_js_1.getAnsiColorFormatter; } });
23
- Object.defineProperty(exports, "getJsonLinesFormatter", { enumerable: true, get: function () { return formatter_js_1.getJsonLinesFormatter; } });
24
- Object.defineProperty(exports, "getTextFormatter", { enumerable: true, get: function () { return formatter_js_1.getTextFormatter; } });
25
- Object.defineProperty(exports, "jsonLinesFormatter", { enumerable: true, get: function () { return formatter_js_1.jsonLinesFormatter; } });
26
- var level_js_1 = require("./level.js");
27
- Object.defineProperty(exports, "compareLogLevel", { enumerable: true, get: function () { return level_js_1.compareLogLevel; } });
28
- Object.defineProperty(exports, "isLogLevel", { enumerable: true, get: function () { return level_js_1.isLogLevel; } });
29
- Object.defineProperty(exports, "parseLogLevel", { enumerable: true, get: function () { return level_js_1.parseLogLevel; } });
30
- var logger_js_1 = require("./logger.js");
31
- Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_js_1.getLogger; } });
32
- var sink_js_1 = require("./sink.js");
33
- Object.defineProperty(exports, "getConsoleSink", { enumerable: true, get: function () { return sink_js_1.getConsoleSink; } });
34
- Object.defineProperty(exports, "getStreamSink", { enumerable: true, get: function () { return sink_js_1.getStreamSink; } });
35
- Object.defineProperty(exports, "withFilter", { enumerable: true, get: function () { return sink_js_1.withFilter; } });
36
- // cSpell: ignore filesink
@@ -1,20 +0,0 @@
1
- let util = null;
2
- if (
3
- typeof window === "undefined" && (
4
- "process" in globalThis && "versions" in globalThis.process &&
5
- "node" in globalThis.process.versions &&
6
- typeof globalThis.caches === "undefined" &&
7
- typeof globalThis.addEventListener !== "function" ||
8
- "Bun" in globalThis
9
- )
10
- ) {
11
- try {
12
- // Intentionally confuse static analysis of bundlers:
13
- const $require = [require];
14
- util = $require[0](`${["node", "util"].join(":")}`);
15
- } catch {
16
- util = null;
17
- }
18
- }
19
-
20
- module.exports = util;
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
package/script/record.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });