@logtape/logtape 0.1.0 → 0.2.0-dev.20
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.
- package/README.md +47 -13
- package/esm/config.js +27 -9
- package/esm/mod.js +1 -1
- package/esm/sink.js +8 -2
- package/package.json +1 -1
- package/script/config.js +27 -9
- package/script/mod.js +2 -1
- package/script/sink.js +8 -2
- package/types/config.d.ts +4 -4
- package/types/config.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/assert/0.222.1/assert_rejects.d.ts.map +1 -0
- package/types/mod.d.ts +1 -1
- package/types/mod.d.ts.map +1 -1
- package/types/sink.d.ts +1 -1
- package/types/sink.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/async/0.222.1/delay.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ the application to set up LogTape):
|
|
|
63
63
|
~~~~ typescript
|
|
64
64
|
import { configure, getConsoleSink } from "@logtape/logtape";
|
|
65
65
|
|
|
66
|
-
configure({
|
|
66
|
+
await configure({
|
|
67
67
|
sinks: { console: getConsoleSink() },
|
|
68
68
|
filters: {},
|
|
69
69
|
loggers: [
|
|
@@ -140,7 +140,7 @@ Here's an example of setting log levels for different categories:
|
|
|
140
140
|
~~~~ typescript
|
|
141
141
|
import { configure, getConsoleSink } from "@logtape/logtape";
|
|
142
142
|
|
|
143
|
-
configure({
|
|
143
|
+
await configure({
|
|
144
144
|
sinks: {
|
|
145
145
|
console: getConsoleSink(),
|
|
146
146
|
},
|
|
@@ -169,7 +169,7 @@ Here's a simple example of a sink that writes log messages to console:
|
|
|
169
169
|
~~~~ typescript
|
|
170
170
|
import { configure } from "@logtape/logtape";
|
|
171
171
|
|
|
172
|
-
configure({
|
|
172
|
+
await configure({
|
|
173
173
|
sinks: {
|
|
174
174
|
console(record) {
|
|
175
175
|
console.log(record.message);
|
|
@@ -187,7 +187,7 @@ provides a console sink:
|
|
|
187
187
|
~~~~ typescript
|
|
188
188
|
import { configure, getConsoleSink } from "@logtape/logtape";
|
|
189
189
|
|
|
190
|
-
configure({
|
|
190
|
+
await configure({
|
|
191
191
|
sinks: {
|
|
192
192
|
console: getConsoleSink(),
|
|
193
193
|
},
|
|
@@ -209,7 +209,7 @@ messages to the standard error:
|
|
|
209
209
|
|
|
210
210
|
~~~~ typescript
|
|
211
211
|
// Deno:
|
|
212
|
-
configure({
|
|
212
|
+
await configure({
|
|
213
213
|
sinks: {
|
|
214
214
|
stream: getStreamSink(Deno.stderr.writable),
|
|
215
215
|
},
|
|
@@ -221,7 +221,7 @@ configure({
|
|
|
221
221
|
// Node.js:
|
|
222
222
|
import stream from "node:stream";
|
|
223
223
|
|
|
224
|
-
configure({
|
|
224
|
+
await configure({
|
|
225
225
|
sinks: {
|
|
226
226
|
stream: getStreamSink(stream.Writable.toWeb(process.stderr)),
|
|
227
227
|
},
|
|
@@ -256,7 +256,7 @@ writes log messages to a file:
|
|
|
256
256
|
~~~~ typescript
|
|
257
257
|
import { getFileSink } from "@logtape/logtape";
|
|
258
258
|
|
|
259
|
-
configure({
|
|
259
|
+
await configure({
|
|
260
260
|
sinks: {
|
|
261
261
|
file: getFileSink("my-app.log"),
|
|
262
262
|
},
|
|
@@ -283,7 +283,7 @@ export type TextFormatter = (record: LogRecord) => string;
|
|
|
283
283
|
Here's an example of a text formatter that writes log messages in a JSON format:
|
|
284
284
|
|
|
285
285
|
~~~~ typescript
|
|
286
|
-
configure({
|
|
286
|
+
await configure({
|
|
287
287
|
sinks: {
|
|
288
288
|
stream: getStreamSink(Deno.stderr.writable, {
|
|
289
289
|
formatter: JSON.stringify,
|
|
@@ -309,6 +309,40 @@ disposableSink[Symbol.dispose] = () => {
|
|
|
309
309
|
};
|
|
310
310
|
~~~~
|
|
311
311
|
|
|
312
|
+
A sync can be asynchronously disposed of as well. The type of an asynchronous
|
|
313
|
+
disposable sink is: `Sink & AsyncDisposable`. You can create an asynchronous
|
|
314
|
+
disposable sink by defining a `[Symbol.asyncDispose]` method:
|
|
315
|
+
|
|
316
|
+
~~~~ typescript
|
|
317
|
+
const asyncDisposableSink: Sink & AsyncDisposable = (record: LogRecord) => {
|
|
318
|
+
console.log(record.message);
|
|
319
|
+
};
|
|
320
|
+
asyncDisposableSink[Symbol.asyncDispose] = async () => {
|
|
321
|
+
console.log("Disposed!");
|
|
322
|
+
};
|
|
323
|
+
~~~~
|
|
324
|
+
|
|
325
|
+
### Explicit disposal
|
|
326
|
+
|
|
327
|
+
You can explicitly dispose of a sink by calling the `dispose()` method. It is
|
|
328
|
+
useful when you want to flush the buffer of a sink without blocking returning
|
|
329
|
+
a response in edge functions. Here's an example of using the `dispose()`
|
|
330
|
+
with [`ctx.waitUntil()`] in Cloudflare Workers:
|
|
331
|
+
|
|
332
|
+
~~~~ typescript
|
|
333
|
+
import { configure, dispose } from "@logtape/logtape";
|
|
334
|
+
|
|
335
|
+
export default {
|
|
336
|
+
async fetch(request, env, ctx) {
|
|
337
|
+
await configure({ /* ... */ });
|
|
338
|
+
// ...
|
|
339
|
+
ctx.waitUntil(dispose());
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
~~~~
|
|
343
|
+
|
|
344
|
+
[`ctx.waitUntil()`]: https://developers.cloudflare.com/workers/runtime-apis/context/#waituntil
|
|
345
|
+
|
|
312
346
|
|
|
313
347
|
Testing
|
|
314
348
|
-------
|
|
@@ -326,16 +360,16 @@ the following code shows how to reset the configuration after a test
|
|
|
326
360
|
import { configure, reset } from "@logtape/logtape";
|
|
327
361
|
|
|
328
362
|
Deno.test("my test", async (t) => {
|
|
329
|
-
await t.step("set up", () => {
|
|
330
|
-
configure({ /* ... */ });
|
|
363
|
+
await t.step("set up", async () => {
|
|
364
|
+
await configure({ /* ... */ });
|
|
331
365
|
});
|
|
332
366
|
|
|
333
367
|
await t.step("run test", () => {
|
|
334
368
|
// Run the test
|
|
335
369
|
});
|
|
336
370
|
|
|
337
|
-
await t.step("tear down", () => {
|
|
338
|
-
reset();
|
|
371
|
+
await t.step("tear down", async () => {
|
|
372
|
+
await reset();
|
|
339
373
|
});
|
|
340
374
|
});
|
|
341
375
|
~~~~
|
|
@@ -350,7 +384,7 @@ import { type LogRecord, configure } from "@logtape/logtape";
|
|
|
350
384
|
|
|
351
385
|
const buffer: LogRecord[] = [];
|
|
352
386
|
|
|
353
|
-
configure({
|
|
387
|
+
await configure({
|
|
354
388
|
sinks: {
|
|
355
389
|
buffer: buffer.push.bind(buffer),
|
|
356
390
|
},
|
package/esm/config.js
CHANGED
|
@@ -10,6 +10,10 @@ let configured = false;
|
|
|
10
10
|
* Disposables to dispose when resetting the configuration.
|
|
11
11
|
*/
|
|
12
12
|
const disposables = new Set();
|
|
13
|
+
/**
|
|
14
|
+
* Async disposables to dispose when resetting the configuration.
|
|
15
|
+
*/
|
|
16
|
+
const asyncDisposables = new Set();
|
|
13
17
|
/**
|
|
14
18
|
* Configure the loggers with the specified configuration.
|
|
15
19
|
*
|
|
@@ -18,7 +22,7 @@ const disposables = new Set();
|
|
|
18
22
|
*
|
|
19
23
|
* @example
|
|
20
24
|
* ```typescript
|
|
21
|
-
* configure({
|
|
25
|
+
* await configure({
|
|
22
26
|
* sinks: {
|
|
23
27
|
* console: getConsoleSink(),
|
|
24
28
|
* },
|
|
@@ -49,11 +53,11 @@ const disposables = new Set();
|
|
|
49
53
|
*
|
|
50
54
|
* @param config The configuration.
|
|
51
55
|
*/
|
|
52
|
-
export function configure(config) {
|
|
56
|
+
export async function configure(config) {
|
|
53
57
|
if (configured && !config.reset) {
|
|
54
58
|
throw new ConfigError("Already configured; if you want to reset, turn on the reset flag.");
|
|
55
59
|
}
|
|
56
|
-
reset();
|
|
60
|
+
await reset();
|
|
57
61
|
configured = true;
|
|
58
62
|
let metaConfigured = false;
|
|
59
63
|
for (const cfg of config.loggers) {
|
|
@@ -68,7 +72,7 @@ export function configure(config) {
|
|
|
68
72
|
for (const sinkId of cfg.sinks ?? []) {
|
|
69
73
|
const sink = config.sinks[sinkId];
|
|
70
74
|
if (!sink) {
|
|
71
|
-
reset();
|
|
75
|
+
await reset();
|
|
72
76
|
throw new ConfigError(`Sink not found: ${sinkId}.`);
|
|
73
77
|
}
|
|
74
78
|
logger.sinks.push(sink);
|
|
@@ -78,18 +82,26 @@ export function configure(config) {
|
|
|
78
82
|
for (const filterId of cfg.filters ?? []) {
|
|
79
83
|
const filter = config.filters[filterId];
|
|
80
84
|
if (filter === undefined) {
|
|
81
|
-
reset();
|
|
85
|
+
await reset();
|
|
82
86
|
throw new ConfigError(`Filter not found: ${filterId}.`);
|
|
83
87
|
}
|
|
84
88
|
logger.filters.push(toFilter(filter));
|
|
85
89
|
}
|
|
86
90
|
}
|
|
87
91
|
for (const sink of Object.values(config.sinks)) {
|
|
92
|
+
if (Symbol.asyncDispose in sink) {
|
|
93
|
+
asyncDisposables.add(sink);
|
|
94
|
+
}
|
|
88
95
|
if (Symbol.dispose in sink)
|
|
89
96
|
disposables.add(sink);
|
|
90
97
|
}
|
|
91
98
|
for (const filter of Object.values(config.filters)) {
|
|
92
|
-
if (filter
|
|
99
|
+
if (filter == null || typeof filter === "string")
|
|
100
|
+
continue;
|
|
101
|
+
if (Symbol.asyncDispose in filter) {
|
|
102
|
+
asyncDisposables.add(filter);
|
|
103
|
+
}
|
|
104
|
+
if (Symbol.dispose in filter)
|
|
93
105
|
disposables.add(filter);
|
|
94
106
|
}
|
|
95
107
|
if ("process" in dntShim.dntGlobalThis) { // @ts-ignore: It's fine to use process in Node
|
|
@@ -114,18 +126,24 @@ export function configure(config) {
|
|
|
114
126
|
/**
|
|
115
127
|
* Reset the configuration. Mostly for testing purposes.
|
|
116
128
|
*/
|
|
117
|
-
export function reset() {
|
|
118
|
-
dispose();
|
|
129
|
+
export async function reset() {
|
|
130
|
+
await dispose();
|
|
119
131
|
LoggerImpl.getLogger([]).resetDescendants();
|
|
120
132
|
configured = false;
|
|
121
133
|
}
|
|
122
134
|
/**
|
|
123
135
|
* Dispose of the disposables.
|
|
124
136
|
*/
|
|
125
|
-
export function dispose() {
|
|
137
|
+
export async function dispose() {
|
|
126
138
|
for (const disposable of disposables)
|
|
127
139
|
disposable[Symbol.dispose]();
|
|
128
140
|
disposables.clear();
|
|
141
|
+
const promises = [];
|
|
142
|
+
for (const disposable of asyncDisposables) {
|
|
143
|
+
promises.push(disposable[Symbol.asyncDispose]());
|
|
144
|
+
asyncDisposables.delete(disposable);
|
|
145
|
+
}
|
|
146
|
+
await Promise.all(promises);
|
|
129
147
|
}
|
|
130
148
|
/**
|
|
131
149
|
* A configuration error.
|
package/esm/mod.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ConfigError, configure, reset, } from "./config.js";
|
|
1
|
+
export { ConfigError, configure, dispose, reset, } from "./config.js";
|
|
2
2
|
export { getFileSink } from "./filesink.node.js";
|
|
3
3
|
export { getLevelFilter, toFilter, } from "./filter.js";
|
|
4
4
|
export { defaultConsoleFormatter, defaultTextFormatter, } from "./formatter.js";
|
package/esm/sink.js
CHANGED
|
@@ -27,11 +27,17 @@ export function getStreamSink(stream, options = {}) {
|
|
|
27
27
|
const formatter = options.formatter ?? defaultTextFormatter;
|
|
28
28
|
const encoder = options.encoder ?? new TextEncoder();
|
|
29
29
|
const writer = stream.getWriter();
|
|
30
|
+
let lastPromise = Promise.resolve();
|
|
30
31
|
const sink = (record) => {
|
|
31
32
|
const bytes = encoder.encode(formatter(record));
|
|
32
|
-
|
|
33
|
+
lastPromise = lastPromise
|
|
34
|
+
.then(() => writer.ready)
|
|
35
|
+
.then(() => writer.write(bytes));
|
|
36
|
+
};
|
|
37
|
+
sink[Symbol.asyncDispose] = async () => {
|
|
38
|
+
await lastPromise;
|
|
39
|
+
await writer.close();
|
|
33
40
|
};
|
|
34
|
-
sink[Symbol.dispose] = () => writer.close();
|
|
35
41
|
return sink;
|
|
36
42
|
}
|
|
37
43
|
/**
|
package/package.json
CHANGED
package/script/config.js
CHANGED
|
@@ -36,6 +36,10 @@ let configured = false;
|
|
|
36
36
|
* Disposables to dispose when resetting the configuration.
|
|
37
37
|
*/
|
|
38
38
|
const disposables = new Set();
|
|
39
|
+
/**
|
|
40
|
+
* Async disposables to dispose when resetting the configuration.
|
|
41
|
+
*/
|
|
42
|
+
const asyncDisposables = new Set();
|
|
39
43
|
/**
|
|
40
44
|
* Configure the loggers with the specified configuration.
|
|
41
45
|
*
|
|
@@ -44,7 +48,7 @@ const disposables = new Set();
|
|
|
44
48
|
*
|
|
45
49
|
* @example
|
|
46
50
|
* ```typescript
|
|
47
|
-
* configure({
|
|
51
|
+
* await configure({
|
|
48
52
|
* sinks: {
|
|
49
53
|
* console: getConsoleSink(),
|
|
50
54
|
* },
|
|
@@ -75,11 +79,11 @@ const disposables = new Set();
|
|
|
75
79
|
*
|
|
76
80
|
* @param config The configuration.
|
|
77
81
|
*/
|
|
78
|
-
function configure(config) {
|
|
82
|
+
async function configure(config) {
|
|
79
83
|
if (configured && !config.reset) {
|
|
80
84
|
throw new ConfigError("Already configured; if you want to reset, turn on the reset flag.");
|
|
81
85
|
}
|
|
82
|
-
reset();
|
|
86
|
+
await reset();
|
|
83
87
|
configured = true;
|
|
84
88
|
let metaConfigured = false;
|
|
85
89
|
for (const cfg of config.loggers) {
|
|
@@ -94,7 +98,7 @@ function configure(config) {
|
|
|
94
98
|
for (const sinkId of cfg.sinks ?? []) {
|
|
95
99
|
const sink = config.sinks[sinkId];
|
|
96
100
|
if (!sink) {
|
|
97
|
-
reset();
|
|
101
|
+
await reset();
|
|
98
102
|
throw new ConfigError(`Sink not found: ${sinkId}.`);
|
|
99
103
|
}
|
|
100
104
|
logger.sinks.push(sink);
|
|
@@ -104,18 +108,26 @@ function configure(config) {
|
|
|
104
108
|
for (const filterId of cfg.filters ?? []) {
|
|
105
109
|
const filter = config.filters[filterId];
|
|
106
110
|
if (filter === undefined) {
|
|
107
|
-
reset();
|
|
111
|
+
await reset();
|
|
108
112
|
throw new ConfigError(`Filter not found: ${filterId}.`);
|
|
109
113
|
}
|
|
110
114
|
logger.filters.push((0, filter_js_1.toFilter)(filter));
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
for (const sink of Object.values(config.sinks)) {
|
|
118
|
+
if (Symbol.asyncDispose in sink) {
|
|
119
|
+
asyncDisposables.add(sink);
|
|
120
|
+
}
|
|
114
121
|
if (Symbol.dispose in sink)
|
|
115
122
|
disposables.add(sink);
|
|
116
123
|
}
|
|
117
124
|
for (const filter of Object.values(config.filters)) {
|
|
118
|
-
if (filter
|
|
125
|
+
if (filter == null || typeof filter === "string")
|
|
126
|
+
continue;
|
|
127
|
+
if (Symbol.asyncDispose in filter) {
|
|
128
|
+
asyncDisposables.add(filter);
|
|
129
|
+
}
|
|
130
|
+
if (Symbol.dispose in filter)
|
|
119
131
|
disposables.add(filter);
|
|
120
132
|
}
|
|
121
133
|
if ("process" in dntShim.dntGlobalThis) { // @ts-ignore: It's fine to use process in Node
|
|
@@ -141,8 +153,8 @@ exports.configure = configure;
|
|
|
141
153
|
/**
|
|
142
154
|
* Reset the configuration. Mostly for testing purposes.
|
|
143
155
|
*/
|
|
144
|
-
function reset() {
|
|
145
|
-
dispose();
|
|
156
|
+
async function reset() {
|
|
157
|
+
await dispose();
|
|
146
158
|
logger_js_1.LoggerImpl.getLogger([]).resetDescendants();
|
|
147
159
|
configured = false;
|
|
148
160
|
}
|
|
@@ -150,10 +162,16 @@ exports.reset = reset;
|
|
|
150
162
|
/**
|
|
151
163
|
* Dispose of the disposables.
|
|
152
164
|
*/
|
|
153
|
-
function dispose() {
|
|
165
|
+
async function dispose() {
|
|
154
166
|
for (const disposable of disposables)
|
|
155
167
|
disposable[Symbol.dispose]();
|
|
156
168
|
disposables.clear();
|
|
169
|
+
const promises = [];
|
|
170
|
+
for (const disposable of asyncDisposables) {
|
|
171
|
+
promises.push(disposable[Symbol.asyncDispose]());
|
|
172
|
+
asyncDisposables.delete(disposable);
|
|
173
|
+
}
|
|
174
|
+
await Promise.all(promises);
|
|
157
175
|
}
|
|
158
176
|
exports.dispose = dispose;
|
|
159
177
|
/**
|
package/script/mod.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getStreamSink = exports.getConsoleSink = exports.getLogger = exports.defaultTextFormatter = exports.defaultConsoleFormatter = exports.toFilter = exports.getLevelFilter = exports.getFileSink = exports.reset = exports.configure = exports.ConfigError = void 0;
|
|
3
|
+
exports.getStreamSink = exports.getConsoleSink = exports.getLogger = exports.defaultTextFormatter = exports.defaultConsoleFormatter = exports.toFilter = exports.getLevelFilter = exports.getFileSink = exports.reset = exports.dispose = exports.configure = exports.ConfigError = void 0;
|
|
4
4
|
var config_js_1 = require("./config.js");
|
|
5
5
|
Object.defineProperty(exports, "ConfigError", { enumerable: true, get: function () { return config_js_1.ConfigError; } });
|
|
6
6
|
Object.defineProperty(exports, "configure", { enumerable: true, get: function () { return config_js_1.configure; } });
|
|
7
|
+
Object.defineProperty(exports, "dispose", { enumerable: true, get: function () { return config_js_1.dispose; } });
|
|
7
8
|
Object.defineProperty(exports, "reset", { enumerable: true, get: function () { return config_js_1.reset; } });
|
|
8
9
|
var filesink_node_js_1 = require("./filesink.node.js");
|
|
9
10
|
Object.defineProperty(exports, "getFileSink", { enumerable: true, get: function () { return filesink_node_js_1.getFileSink; } });
|
package/script/sink.js
CHANGED
|
@@ -30,11 +30,17 @@ function getStreamSink(stream, options = {}) {
|
|
|
30
30
|
const formatter = options.formatter ?? formatter_js_1.defaultTextFormatter;
|
|
31
31
|
const encoder = options.encoder ?? new TextEncoder();
|
|
32
32
|
const writer = stream.getWriter();
|
|
33
|
+
let lastPromise = Promise.resolve();
|
|
33
34
|
const sink = (record) => {
|
|
34
35
|
const bytes = encoder.encode(formatter(record));
|
|
35
|
-
|
|
36
|
+
lastPromise = lastPromise
|
|
37
|
+
.then(() => writer.ready)
|
|
38
|
+
.then(() => writer.write(bytes));
|
|
39
|
+
};
|
|
40
|
+
sink[Symbol.asyncDispose] = async () => {
|
|
41
|
+
await lastPromise;
|
|
42
|
+
await writer.close();
|
|
36
43
|
};
|
|
37
|
-
sink[Symbol.dispose] = () => writer.close();
|
|
38
44
|
return sink;
|
|
39
45
|
}
|
|
40
46
|
exports.getStreamSink = getStreamSink;
|
package/types/config.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ export interface LoggerConfig<TSinkId extends string, TFilterId extends string>
|
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ```typescript
|
|
58
|
-
* configure({
|
|
58
|
+
* await configure({
|
|
59
59
|
* sinks: {
|
|
60
60
|
* console: getConsoleSink(),
|
|
61
61
|
* },
|
|
@@ -86,15 +86,15 @@ export interface LoggerConfig<TSinkId extends string, TFilterId extends string>
|
|
|
86
86
|
*
|
|
87
87
|
* @param config The configuration.
|
|
88
88
|
*/
|
|
89
|
-
export declare function configure<TSinkId extends string, TFilterId extends string>(config: Config<TSinkId, TFilterId>): void
|
|
89
|
+
export declare function configure<TSinkId extends string, TFilterId extends string>(config: Config<TSinkId, TFilterId>): Promise<void>;
|
|
90
90
|
/**
|
|
91
91
|
* Reset the configuration. Mostly for testing purposes.
|
|
92
92
|
*/
|
|
93
|
-
export declare function reset(): void
|
|
93
|
+
export declare function reset(): Promise<void>;
|
|
94
94
|
/**
|
|
95
95
|
* Dispose of the disposables.
|
|
96
96
|
*/
|
|
97
|
-
export declare function dispose(): void
|
|
97
|
+
export declare function dispose(): Promise<void>;
|
|
98
98
|
/**
|
|
99
99
|
* A configuration error.
|
|
100
100
|
*/
|
package/types/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM;IACtE;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,MAAM,EAAE,SAAS,SAAS,MAAM;IACtE;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC3B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM;IAExB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAsB,SAAS,CAC7B,OAAO,SAAS,MAAM,EACtB,SAAS,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EnD;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3C;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7C;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC;;;OAGG;gBACS,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert_rejects.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/0.222.1/assert_rejects.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAAC;AACpB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EACnD,EAAE,EAAE,MAAM,WAAW,CAAC,OAAO,CAAC,EAE9B,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACrC,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
package/types/mod.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { type Config, ConfigError, configure, type LoggerConfig, reset, } from "./config.js";
|
|
1
|
+
export { type Config, ConfigError, configure, dispose, type LoggerConfig, reset, } from "./config.js";
|
|
2
2
|
export { getFileSink } from "./filesink.node.js";
|
|
3
3
|
export { type Filter, type FilterLike, getLevelFilter, toFilter, } from "./filter.js";
|
|
4
4
|
export { type ConsoleFormatter, defaultConsoleFormatter, defaultTextFormatter, type TextFormatter, } from "./formatter.js";
|
package/types/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,WAAW,EACX,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,cAAc,EACd,aAAa,EACb,KAAK,IAAI,EACT,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,GACN,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,KAAK,MAAM,EACX,KAAK,UAAU,EACf,cAAc,EACd,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,cAAc,EACd,aAAa,EACb,KAAK,IAAI,EACT,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC"}
|
package/types/sink.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export interface StreamSinkOptions {
|
|
|
53
53
|
* @param options The options for the sink.
|
|
54
54
|
* @returns A sink that writes to the stream.
|
|
55
55
|
*/
|
|
56
|
-
export declare function getStreamSink(stream: dntShim.WritableStream, options?: StreamSinkOptions): Sink &
|
|
56
|
+
export declare function getStreamSink(stream: dntShim.WritableStream, options?: StreamSinkOptions): Sink & AsyncDisposable;
|
|
57
57
|
/**
|
|
58
58
|
* Options for the {@link getConsoleSink} function.
|
|
59
59
|
*/
|
package/types/sink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.d.ts","sourceRoot":"","sources":["../src/sink.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,CAAC,cAAc,EAC9B,OAAO,GAAE,iBAAsB,GAC9B,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"sink.d.ts","sourceRoot":"","sources":["../src/sink.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,CAAC,cAAc,EAC9B,OAAO,GAAE,iBAAsB,GAC9B,IAAI,GAAG,eAAe,CAgBxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAYrE;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK;IACnC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAE9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAE9C;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAC/C,IAAI,GAAG,UAAU,CAUnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/async/0.222.1/delay.ts"],"names":[],"mappings":";AAMA,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B3E"}
|