@decohere/scribe-pino 0.0.1-dev.78 → 0.0.1-dev.8
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/commonjs/src/index.js +1 -2
- package/commonjs/src/pino.adapater.js +1 -123
- package/commonjs/src/scribe-pino.js +28 -131
- package/es6/src/index.js +1 -2
- package/es6/src/pino.adapater.js +2 -124
- package/es6/src/scribe-pino.js +25 -113
- package/package.json +4 -16
- package/types/src/index.d.ts +0 -1
- package/types/src/pino.adapater.d.ts +0 -8
- package/types/src/scribe-pino.d.ts +7 -55
- package/commonjs/src/pino.recipe.js +0 -108
- package/commonjs/src/pino.transport-guard.js +0 -70
- package/es6/src/pino.recipe.js +0 -98
- package/es6/src/pino.transport-guard.js +0 -63
- package/types/src/pino.recipe.d.ts +0 -45
- package/types/src/pino.transport-guard.d.ts +0 -10
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "pinoRecipe", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return pinoRecipe;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _system = require("@decohere/nexus/system");
|
|
12
|
-
const DEFAULT_ROLL_SIZE = "10m";
|
|
13
|
-
const DEFAULT_ROLL_FREQUENCY = "daily";
|
|
14
|
-
const DEFAULT_ROLL_KEEP = 14;
|
|
15
|
-
const ENV_LOG_FILE = "SCRIBE_LOG_FILE";
|
|
16
|
-
const ENV_LOG_SIZE = "SCRIBE_LOG_SIZE";
|
|
17
|
-
const ENV_LOG_FREQUENCY = "SCRIBE_LOG_FREQUENCY";
|
|
18
|
-
const ENV_LOG_KEEP = "SCRIBE_LOG_KEEP";
|
|
19
|
-
function currentEnvironment() {
|
|
20
|
-
return process.env.NODE_ENV === _system.Environments.production ? _system.Environments.production : _system.Environments.development;
|
|
21
|
-
}
|
|
22
|
-
function isEnabled(when, environment) {
|
|
23
|
-
return (when ?? "development") === "always" || environment === _system.Environments.development;
|
|
24
|
-
}
|
|
25
|
-
function envString(name) {
|
|
26
|
-
const value = process.env[name]?.trim();
|
|
27
|
-
return value ? value : undefined;
|
|
28
|
-
}
|
|
29
|
-
function envFrequency() {
|
|
30
|
-
const raw = envString(ENV_LOG_FREQUENCY);
|
|
31
|
-
if (raw == null) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
if (/^\d+$/.test(raw)) {
|
|
35
|
-
return Number(raw);
|
|
36
|
-
}
|
|
37
|
-
return raw;
|
|
38
|
-
}
|
|
39
|
-
function envKeep() {
|
|
40
|
-
const raw = envString(ENV_LOG_KEEP);
|
|
41
|
-
if (raw == null) {
|
|
42
|
-
return undefined;
|
|
43
|
-
}
|
|
44
|
-
const keep = Number(raw);
|
|
45
|
-
return Number.isFinite(keep) && keep >= 0 ? keep : undefined;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
|
|
49
|
-
* without touching app code. Size / frequency / keep: explicit > env > default.
|
|
50
|
-
*/ function resolveRoll(options) {
|
|
51
|
-
return {
|
|
52
|
-
file: envString(ENV_LOG_FILE) ?? options.file,
|
|
53
|
-
size: options.size ?? envString(ENV_LOG_SIZE) ?? DEFAULT_ROLL_SIZE,
|
|
54
|
-
frequency: options.frequency ?? envFrequency() ?? DEFAULT_ROLL_FREQUENCY,
|
|
55
|
-
keep: options.keep ?? envKeep() ?? DEFAULT_ROLL_KEEP,
|
|
56
|
-
mkdir: options.mkdir ?? true,
|
|
57
|
-
symlink: options.symlink ?? false
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function prettyTarget(options) {
|
|
61
|
-
return {
|
|
62
|
-
target: "pino-pretty",
|
|
63
|
-
options: {
|
|
64
|
-
colorize: options.colorize ?? true
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function rollTarget(options) {
|
|
69
|
-
const roll = resolveRoll(options);
|
|
70
|
-
return {
|
|
71
|
-
target: "pino-roll",
|
|
72
|
-
options: {
|
|
73
|
-
file: roll.file,
|
|
74
|
-
mkdir: roll.mkdir,
|
|
75
|
-
size: roll.size,
|
|
76
|
-
frequency: roll.frequency,
|
|
77
|
-
limit: {
|
|
78
|
-
count: roll.keep
|
|
79
|
-
},
|
|
80
|
-
symlink: roll.symlink
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function transport(plan, environment = currentEnvironment()) {
|
|
85
|
-
const targets = [];
|
|
86
|
-
if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
|
|
87
|
-
targets.push(prettyTarget(plan.pretty));
|
|
88
|
-
}
|
|
89
|
-
if (plan.roll && isEnabled(plan.roll.when, environment)) {
|
|
90
|
-
targets.push(rollTarget(plan.roll));
|
|
91
|
-
}
|
|
92
|
-
if (targets.length === 0) {
|
|
93
|
-
return undefined;
|
|
94
|
-
}
|
|
95
|
-
if (targets.length === 1) {
|
|
96
|
-
return targets[0];
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
targets
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
const pinoRecipe = {
|
|
103
|
-
transport,
|
|
104
|
-
currentEnvironment,
|
|
105
|
-
resolveRoll
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0LyoqIERlZmF1bHQgcm9sbCBwYXRoLiBPdmVycmlkZGVuIGF0IHJ1bnRpbWUgYnkgYFNDUklCRV9MT0dfRklMRWAgd2hlbiBzZXQuICovXG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZT86IHN0cmluZztcblx0ZnJlcXVlbmN5Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRrZWVwPzogbnVtYmVyO1xuXHRta2Rpcj86IGJvb2xlYW47XG5cdHN5bWxpbms/OiBib29sZWFuO1xuXHRsb2dMZXZlbD86IHN0cmluZztcblx0d2hlbj86IFBpbm9XaGVuO1xufTtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZVBsYW4gPSB7XG5cdHByZXR0eT86IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zO1xuXHRyb2xsPzogUGlub1JvbGxSZWNpcGVPcHRpb25zO1xuXHRsb2dMZXZlbD86IHN0cmluZztcbn07XG5cbmNvbnN0IERFRkFVTFRfUk9MTF9TSVpFID0gXCIxMG1cIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9GUkVRVUVOQ1kgPSBcImRhaWx5XCI7XG5jb25zdCBERUZBVUxUX1JPTExfS0VFUCA9IDE0O1xuXG5jb25zdCBFTlZfTE9HX0ZJTEUgPSBcIlNDUklCRV9MT0dfRklMRVwiO1xuY29uc3QgRU5WX0xPR19TSVpFID0gXCJTQ1JJQkVfTE9HX1NJWkVcIjtcbmNvbnN0IEVOVl9MT0dfRlJFUVVFTkNZID0gXCJTQ1JJQkVfTE9HX0ZSRVFVRU5DWVwiO1xuY29uc3QgRU5WX0xPR19LRUVQID0gXCJTQ1JJQkVfTE9HX0tFRVBcIjtcblxuZnVuY3Rpb24gY3VycmVudEVudmlyb25tZW50KCk6IEVudmlyb25tZW50IHtcblx0cmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBFbnZpcm9ubWVudHMucHJvZHVjdGlvblxuXHRcdD8gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ6IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gaXNFbmFibGVkKHdoZW46IFBpbm9XaGVuIHwgdW5kZWZpbmVkLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBib29sZWFuIHtcblx0cmV0dXJuICh3aGVuID8/IFwiZGV2ZWxvcG1lbnRcIikgPT09IFwiYWx3YXlzXCIgfHwgZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gZW52U3RyaW5nKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0/LnRyaW0oKTtcblx0cmV0dXJuIHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVudkZyZXF1ZW5jeSgpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19GUkVRVUVOQ1kpO1xuXHRpZiAocmF3ID09IG51bGwpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdGlmICgvXlxcZCskLy50ZXN0KHJhdykpIHtcblx0XHRyZXR1cm4gTnVtYmVyKHJhdyk7XG5cdH1cblx0cmV0dXJuIHJhdztcbn1cblxuZnVuY3Rpb24gZW52S2VlcCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19LRUVQKTtcblx0aWYgKHJhdyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBrZWVwID0gTnVtYmVyKHJhdyk7XG5cdHJldHVybiBOdW1iZXIuaXNGaW5pdGUoa2VlcCkgJiYga2VlcCA+PSAwID8ga2VlcCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHJvbGwgb3B0aW9ucy4gYFNDUklCRV9MT0dfRklMRWAgb3ZlcnJpZGVzIGBmaWxlYCBzbyBvcHMgY2FuIHJlZGlyZWN0XG4gKiB3aXRob3V0IHRvdWNoaW5nIGFwcCBjb2RlLiBTaXplIC8gZnJlcXVlbmN5IC8ga2VlcDogZXhwbGljaXQgPiBlbnYgPiBkZWZhdWx0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlUm9sbChvcHRpb25zOiBQaW5vUm9sbFJlY2lwZU9wdGlvbnMpOiB7XG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZTogc3RyaW5nO1xuXHRmcmVxdWVuY3k6IHN0cmluZyB8IG51bWJlcjtcblx0a2VlcDogbnVtYmVyO1xuXHRta2RpcjogYm9vbGVhbjtcblx0c3ltbGluazogYm9vbGVhbjtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGZpbGU6IGVudlN0cmluZyhFTlZfTE9HX0ZJTEUpID8/IG9wdGlvbnMuZmlsZSxcblx0XHRzaXplOiBvcHRpb25zLnNpemUgPz8gZW52U3RyaW5nKEVOVl9MT0dfU0laRSkgPz8gREVGQVVMVF9ST0xMX1NJWkUsXG5cdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBlbnZGcmVxdWVuY3koKSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdGtlZXA6IG9wdGlvbnMua2VlcCA/PyBlbnZLZWVwKCkgPz8gREVGQVVMVF9ST0xMX0tFRVAsXG5cdFx0bWtkaXI6IG9wdGlvbnMubWtkaXIgPz8gdHJ1ZSxcblx0XHRzeW1saW5rOiBvcHRpb25zLnN5bWxpbmsgPz8gZmFsc2UsXG5cdH07XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRjb25zdCByb2xsID0gcmVzb2x2ZVJvbGwob3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0OiBcInBpbm8tcm9sbFwiLFxuXHRcdG9wdGlvbnM6IHtcblx0XHRcdGZpbGU6IHJvbGwuZmlsZSxcblx0XHRcdG1rZGlyOiByb2xsLm1rZGlyLFxuXHRcdFx0c2l6ZTogcm9sbC5zaXplLFxuXHRcdFx0ZnJlcXVlbmN5OiByb2xsLmZyZXF1ZW5jeSxcblx0XHRcdGxpbWl0OiB7IGNvdW50OiByb2xsLmtlZXAgfSxcblx0XHRcdHN5bWxpbms6IHJvbGwuc3ltbGluayxcblx0XHR9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiB0cmFuc3BvcnQoXG5cdHBsYW46IFBpbm9SZWNpcGVQbGFuLFxuXHRlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBjdXJyZW50RW52aXJvbm1lbnQoKSxcbik6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCB1bmRlZmluZWQge1xuXHRjb25zdCB0YXJnZXRzOiBUcmFuc3BvcnRTaW5nbGVPcHRpb25zW10gPSBbXTtcblx0aWYgKHBsYW4ucHJldHR5ICYmIGlzRW5hYmxlZChwbGFuLnByZXR0eS53aGVuLCBlbnZpcm9ubWVudCkpIHtcblx0XHR0YXJnZXRzLnB1c2gocHJldHR5VGFyZ2V0KHBsYW4ucHJldHR5KSk7XG5cdH1cblx0aWYgKHBsYW4ucm9sbCAmJiBpc0VuYWJsZWQocGxhbi5yb2xsLndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChyb2xsVGFyZ2V0KHBsYW4ucm9sbCkpO1xuXHR9XG5cdGlmICh0YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIHRhcmdldHNbMF07XG5cdH1cblx0cmV0dXJuIHsgdGFyZ2V0cyB9O1xufVxuXG5leHBvcnQgY29uc3QgcGlub1JlY2lwZSA9IHsgdHJhbnNwb3J0LCBjdXJyZW50RW52aXJvbm1lbnQsIHJlc29sdmVSb2xsIH07XG4iXSwibmFtZXMiOlsicGlub1JlY2lwZSIsIkRFRkFVTFRfUk9MTF9TSVpFIiwiREVGQVVMVF9ST0xMX0ZSRVFVRU5DWSIsIkRFRkFVTFRfUk9MTF9LRUVQIiwiRU5WX0xPR19GSUxFIiwiRU5WX0xPR19TSVpFIiwiRU5WX0xPR19GUkVRVUVOQ1kiLCJFTlZfTE9HX0tFRVAiLCJjdXJyZW50RW52aXJvbm1lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJFbnZpcm9ubWVudHMiLCJwcm9kdWN0aW9uIiwiZGV2ZWxvcG1lbnQiLCJpc0VuYWJsZWQiLCJ3aGVuIiwiZW52aXJvbm1lbnQiLCJlbnZTdHJpbmciLCJuYW1lIiwidmFsdWUiLCJ0cmltIiwidW5kZWZpbmVkIiwiZW52RnJlcXVlbmN5IiwicmF3IiwidGVzdCIsIk51bWJlciIsImVudktlZXAiLCJrZWVwIiwiaXNGaW5pdGUiLCJyZXNvbHZlUm9sbCIsIm9wdGlvbnMiLCJmaWxlIiwic2l6ZSIsImZyZXF1ZW5jeSIsIm1rZGlyIiwic3ltbGluayIsInByZXR0eVRhcmdldCIsInRhcmdldCIsImNvbG9yaXplIiwicm9sbFRhcmdldCIsInJvbGwiLCJsaW1pdCIsImNvdW50IiwidHJhbnNwb3J0IiwicGxhbiIsInRhcmdldHMiLCJwcmV0dHkiLCJwdXNoIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBJYUE7OztlQUFBQTs7O3dCQTFJa0M7QUE4Qi9DLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyx5QkFBeUI7QUFDL0IsTUFBTUMsb0JBQW9CO0FBRTFCLE1BQU1DLGVBQWU7QUFDckIsTUFBTUMsZUFBZTtBQUNyQixNQUFNQyxvQkFBb0I7QUFDMUIsTUFBTUMsZUFBZTtBQUVyQixTQUFTQztJQUNSLE9BQU9DLFFBQVFDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLQyxvQkFBWSxDQUFDQyxVQUFVLEdBQ3BERCxvQkFBWSxDQUFDQyxVQUFVLEdBQ3ZCRCxvQkFBWSxDQUFDRSxXQUFXO0FBQzVCO0FBRUEsU0FBU0MsVUFBVUMsSUFBMEIsRUFBRUMsV0FBd0I7SUFDdEUsT0FBTyxBQUFDRCxDQUFBQSxRQUFRLGFBQVksTUFBTyxZQUFZQyxnQkFBZ0JMLG9CQUFZLENBQUNFLFdBQVc7QUFDeEY7QUFFQSxTQUFTSSxVQUFVQyxJQUFZO0lBQzlCLE1BQU1DLFFBQVFYLFFBQVFDLEdBQUcsQ0FBQ1MsS0FBSyxFQUFFRTtJQUNqQyxPQUFPRCxRQUFRQSxRQUFRRTtBQUN4QjtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsTUFBTU4sVUFBVVo7SUFDdEIsSUFBSWtCLE9BQU8sTUFBTTtRQUNoQixPQUFPRjtJQUNSO0lBQ0EsSUFBSSxRQUFRRyxJQUFJLENBQUNELE1BQU07UUFDdEIsT0FBT0UsT0FBT0Y7SUFDZjtJQUNBLE9BQU9BO0FBQ1I7QUFFQSxTQUFTRztJQUNSLE1BQU1ILE1BQU1OLFVBQVVYO0lBQ3RCLElBQUlpQixPQUFPLE1BQU07UUFDaEIsT0FBT0Y7SUFDUjtJQUNBLE1BQU1NLE9BQU9GLE9BQU9GO0lBQ3BCLE9BQU9FLE9BQU9HLFFBQVEsQ0FBQ0QsU0FBU0EsUUFBUSxJQUFJQSxPQUFPTjtBQUNwRDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNRLFlBQVlDLE9BQThCO0lBUWxELE9BQU87UUFDTkMsTUFBTWQsVUFBVWQsaUJBQWlCMkIsUUFBUUMsSUFBSTtRQUM3Q0MsTUFBTUYsUUFBUUUsSUFBSSxJQUFJZixVQUFVYixpQkFBaUJKO1FBQ2pEaUMsV0FBV0gsUUFBUUcsU0FBUyxJQUFJWCxrQkFBa0JyQjtRQUNsRDBCLE1BQU1HLFFBQVFILElBQUksSUFBSUQsYUFBYXhCO1FBQ25DZ0MsT0FBT0osUUFBUUksS0FBSyxJQUFJO1FBQ3hCQyxTQUFTTCxRQUFRSyxPQUFPLElBQUk7SUFDN0I7QUFDRDtBQUVBLFNBQVNDLGFBQWFOLE9BQWdDO0lBQ3JELE9BQU87UUFDTk8sUUFBUTtRQUNSUCxTQUFTO1lBQUVRLFVBQVVSLFFBQVFRLFFBQVEsSUFBSTtRQUFLO0lBQy9DO0FBQ0Q7QUFFQSxTQUFTQyxXQUFXVCxPQUE4QjtJQUNqRCxNQUFNVSxPQUFPWCxZQUFZQztJQUN6QixPQUFPO1FBQ05PLFFBQVE7UUFDUlAsU0FBUztZQUNSQyxNQUFNUyxLQUFLVCxJQUFJO1lBQ2ZHLE9BQU9NLEtBQUtOLEtBQUs7WUFDakJGLE1BQU1RLEtBQUtSLElBQUk7WUFDZkMsV0FBV08sS0FBS1AsU0FBUztZQUN6QlEsT0FBTztnQkFBRUMsT0FBT0YsS0FBS2IsSUFBSTtZQUFDO1lBQzFCUSxTQUFTSyxLQUFLTCxPQUFPO1FBQ3RCO0lBQ0Q7QUFDRDtBQUVBLFNBQVNRLFVBQ1JDLElBQW9CLEVBQ3BCNUIsY0FBMkJULG9CQUFvQjtJQUUvQyxNQUFNc0MsVUFBb0MsRUFBRTtJQUM1QyxJQUFJRCxLQUFLRSxNQUFNLElBQUloQyxVQUFVOEIsS0FBS0UsTUFBTSxDQUFDL0IsSUFBSSxFQUFFQyxjQUFjO1FBQzVENkIsUUFBUUUsSUFBSSxDQUFDWCxhQUFhUSxLQUFLRSxNQUFNO0lBQ3RDO0lBQ0EsSUFBSUYsS0FBS0osSUFBSSxJQUFJMUIsVUFBVThCLEtBQUtKLElBQUksQ0FBQ3pCLElBQUksRUFBRUMsY0FBYztRQUN4RDZCLFFBQVFFLElBQUksQ0FBQ1IsV0FBV0ssS0FBS0osSUFBSTtJQUNsQztJQUNBLElBQUlLLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU8zQjtJQUNSO0lBQ0EsSUFBSXdCLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU9ILE9BQU8sQ0FBQyxFQUFFO0lBQ2xCO0lBQ0EsT0FBTztRQUFFQTtJQUFRO0FBQ2xCO0FBRU8sTUFBTTlDLGFBQWE7SUFBRTRDO0lBQVdwQztJQUFvQnNCO0FBQVkifQ==
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "guardTransport", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return guardTransport;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function guardTransport(transport) {
|
|
12
|
-
const stream = transport;
|
|
13
|
-
let retired = false;
|
|
14
|
-
let reported = false;
|
|
15
|
-
const retire = (reason = "retired")=>{
|
|
16
|
-
if (retired) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
retired = true;
|
|
20
|
-
if (!reported) {
|
|
21
|
-
reported = true;
|
|
22
|
-
process.stderr.write(`[scribe-pino] transport retired: ${reason}\n`);
|
|
23
|
-
}
|
|
24
|
-
if (typeof stream.destroy === "function") {
|
|
25
|
-
try {
|
|
26
|
-
stream.destroy();
|
|
27
|
-
} catch {
|
|
28
|
-
// already dead
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
if (typeof stream.on === "function") {
|
|
33
|
-
stream.on("error", (err)=>{
|
|
34
|
-
retire(err?.message ?? String(err));
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
if (typeof stream.write === "function") {
|
|
38
|
-
const originalWrite = stream.write.bind(stream);
|
|
39
|
-
stream.write = (chunk, encodingOrCb, cb)=>{
|
|
40
|
-
if (retired) {
|
|
41
|
-
completeWrite(encodingOrCb, cb);
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
try {
|
|
45
|
-
return originalWrite(chunk, encodingOrCb, cb);
|
|
46
|
-
} catch (err) {
|
|
47
|
-
retire(err instanceof Error ? err.message : String(err));
|
|
48
|
-
completeWrite(encodingOrCb, cb);
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
Object.defineProperty(stream, "retired", {
|
|
54
|
-
get: ()=>retired,
|
|
55
|
-
enumerable: true
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(stream, "retire", {
|
|
58
|
-
value: retire,
|
|
59
|
-
enumerable: true
|
|
60
|
-
});
|
|
61
|
-
return stream;
|
|
62
|
-
}
|
|
63
|
-
function completeWrite(encodingOrCb, cb) {
|
|
64
|
-
const done = typeof encodingOrCb === "function" ? encodingOrCb : typeof cb === "function" ? cb : undefined;
|
|
65
|
-
if (typeof done === "function") {
|
|
66
|
-
done();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby50cmFuc3BvcnQtZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXN0aW5hdGlvblN0cmVhbSB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIEd1YXJkZWRUcmFuc3BvcnQgPSBEZXN0aW5hdGlvblN0cmVhbSAmIHtcblx0cmVhZG9ubHkgcmV0aXJlZDogYm9vbGVhbjtcblx0cmV0aXJlKHJlYXNvbj86IHN0cmluZyk6IHZvaWQ7XG59O1xuXG50eXBlIFdyaXRhYmxlTGlrZSA9IERlc3RpbmF0aW9uU3RyZWFtICYge1xuXHR3cml0ZT86ICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duO1xuXHRvbj86IChldmVudDogXCJlcnJvclwiLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHVua25vd247XG5cdGRlc3Ryb3k/OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogV3JhcCBhIHBpbm8gd29ya2VyIHRyYW5zcG9ydCBzbyBhIGRlYWQgVGhyZWFkU3RyZWFtIGNhbm5vdCBzcGFtIG9yIGNyYXNoLlxuICogT24gZmlyc3QgZXJyb3IgLyB3cml0ZSB0aHJvdzogcmVwb3J0IG9uY2UsIGRlc3Ryb3ksIG5vLW9wIGZ1cnRoZXIgd3JpdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VhcmRUcmFuc3BvcnQodHJhbnNwb3J0OiBEZXN0aW5hdGlvblN0cmVhbSk6IEd1YXJkZWRUcmFuc3BvcnQge1xuXHRjb25zdCBzdHJlYW0gPSB0cmFuc3BvcnQgYXMgV3JpdGFibGVMaWtlO1xuXHRsZXQgcmV0aXJlZCA9IGZhbHNlO1xuXHRsZXQgcmVwb3J0ZWQgPSBmYWxzZTtcblxuXHRjb25zdCByZXRpcmUgPSAocmVhc29uID0gXCJyZXRpcmVkXCIpOiB2b2lkID0+IHtcblx0XHRpZiAocmV0aXJlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXRpcmVkID0gdHJ1ZTtcblx0XHRpZiAoIXJlcG9ydGVkKSB7XG5cdFx0XHRyZXBvcnRlZCA9IHRydWU7XG5cdFx0XHRwcm9jZXNzLnN0ZGVyci53cml0ZShgW3NjcmliZS1waW5vXSB0cmFuc3BvcnQgcmV0aXJlZDogJHtyZWFzb259XFxuYCk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2Ygc3RyZWFtLmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0c3RyZWFtLmRlc3Ryb3koKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvLyBhbHJlYWR5IGRlYWRcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ub24gPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHN0cmVhbS5vbihcImVycm9yXCIsIChlcnIpID0+IHtcblx0XHRcdHJldGlyZShlcnI/Lm1lc3NhZ2UgPz8gU3RyaW5nKGVycikpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ud3JpdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdGNvbnN0IG9yaWdpbmFsV3JpdGUgPSBzdHJlYW0ud3JpdGUuYmluZChzdHJlYW0pIGFzIChcblx0XHRcdGNodW5rOiB1bmtub3duLFxuXHRcdFx0ZW5jb2RpbmdPckNiPzogdW5rbm93bixcblx0XHRcdGNiPzogdW5rbm93bixcblx0XHQpID0+IHVua25vd247XG5cblx0XHRzdHJlYW0ud3JpdGUgPSAoKGNodW5rOiB1bmtub3duLCBlbmNvZGluZ09yQ2I/OiB1bmtub3duLCBjYj86IHVua25vd24pID0+IHtcblx0XHRcdGlmIChyZXRpcmVkKSB7XG5cdFx0XHRcdGNvbXBsZXRlV3JpdGUoZW5jb2RpbmdPckNiLCBjYik7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmV0dXJuIG9yaWdpbmFsV3JpdGUoY2h1bmssIGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdHJldGlyZShlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikpO1xuXHRcdFx0XHRjb21wbGV0ZVdyaXRlKGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KSBhcyB0eXBlb2Ygc3RyZWFtLndyaXRlO1xuXHR9XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0cmVhbSwgXCJyZXRpcmVkXCIsIHtcblx0XHRnZXQ6ICgpID0+IHJldGlyZWQsXG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0fSk7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHJlYW0sIFwicmV0aXJlXCIsIHtcblx0XHR2YWx1ZTogcmV0aXJlLFxuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdH0pO1xuXG5cdHJldHVybiBzdHJlYW0gYXMgR3VhcmRlZFRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVXcml0ZShlbmNvZGluZ09yQ2I6IHVua25vd24sIGNiOiB1bmtub3duKTogdm9pZCB7XG5cdGNvbnN0IGRvbmUgPVxuXHRcdHR5cGVvZiBlbmNvZGluZ09yQ2IgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0PyBlbmNvZGluZ09yQ2Jcblx0XHRcdDogdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCJcblx0XHRcdFx0PyBjYlxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBkb25lID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRkb25lKCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJndWFyZFRyYW5zcG9ydCIsInRyYW5zcG9ydCIsInN0cmVhbSIsInJldGlyZWQiLCJyZXBvcnRlZCIsInJldGlyZSIsInJlYXNvbiIsInByb2Nlc3MiLCJzdGRlcnIiLCJ3cml0ZSIsImRlc3Ryb3kiLCJvbiIsImVyciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJvcmlnaW5hbFdyaXRlIiwiYmluZCIsImNodW5rIiwiZW5jb2RpbmdPckNiIiwiY2IiLCJjb21wbGV0ZVdyaXRlIiwiRXJyb3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImVudW1lcmFibGUiLCJ2YWx1ZSIsImRvbmUiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaUJnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsZUFBZUMsU0FBNEI7SUFDMUQsTUFBTUMsU0FBU0Q7SUFDZixJQUFJRSxVQUFVO0lBQ2QsSUFBSUMsV0FBVztJQUVmLE1BQU1DLFNBQVMsQ0FBQ0MsU0FBUyxTQUFTO1FBQ2pDLElBQUlILFNBQVM7WUFDWjtRQUNEO1FBQ0FBLFVBQVU7UUFDVixJQUFJLENBQUNDLFVBQVU7WUFDZEEsV0FBVztZQUNYRyxRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLGlDQUFpQyxFQUFFSCxPQUFPLEVBQUUsQ0FBQztRQUNwRTtRQUNBLElBQUksT0FBT0osT0FBT1EsT0FBTyxLQUFLLFlBQVk7WUFDekMsSUFBSTtnQkFDSFIsT0FBT1EsT0FBTztZQUNmLEVBQUUsT0FBTTtZQUNQLGVBQWU7WUFDaEI7UUFDRDtJQUNEO0lBRUEsSUFBSSxPQUFPUixPQUFPUyxFQUFFLEtBQUssWUFBWTtRQUNwQ1QsT0FBT1MsRUFBRSxDQUFDLFNBQVMsQ0FBQ0M7WUFDbkJQLE9BQU9PLEtBQUtDLFdBQVdDLE9BQU9GO1FBQy9CO0lBQ0Q7SUFFQSxJQUFJLE9BQU9WLE9BQU9PLEtBQUssS0FBSyxZQUFZO1FBQ3ZDLE1BQU1NLGdCQUFnQmIsT0FBT08sS0FBSyxDQUFDTyxJQUFJLENBQUNkO1FBTXhDQSxPQUFPTyxLQUFLLEdBQUksQ0FBQ1EsT0FBZ0JDLGNBQXdCQztZQUN4RCxJQUFJaEIsU0FBUztnQkFDWmlCLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7WUFDQSxJQUFJO2dCQUNILE9BQU9KLGNBQWNFLE9BQU9DLGNBQWNDO1lBQzNDLEVBQUUsT0FBT1AsS0FBSztnQkFDYlAsT0FBT08sZUFBZVMsUUFBUVQsSUFBSUMsT0FBTyxHQUFHQyxPQUFPRjtnQkFDbkRRLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7UUFDRDtJQUNEO0lBRUFHLE9BQU9DLGNBQWMsQ0FBQ3JCLFFBQVEsV0FBVztRQUN4Q3NCLEtBQUssSUFBTXJCO1FBQ1hzQixZQUFZO0lBQ2I7SUFDQUgsT0FBT0MsY0FBYyxDQUFDckIsUUFBUSxVQUFVO1FBQ3ZDd0IsT0FBT3JCO1FBQ1BvQixZQUFZO0lBQ2I7SUFFQSxPQUFPdkI7QUFDUjtBQUVBLFNBQVNrQixjQUFjRixZQUFxQixFQUFFQyxFQUFXO0lBQ3hELE1BQU1RLE9BQ0wsT0FBT1QsaUJBQWlCLGFBQ3JCQSxlQUNBLE9BQU9DLE9BQU8sYUFDYkEsS0FDQVM7SUFDTCxJQUFJLE9BQU9ELFNBQVMsWUFBWTtRQUMvQkE7SUFDRDtBQUNEIn0=
|
package/es6/src/pino.recipe.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Environments } from "@decohere/nexus/system";
|
|
2
|
-
const DEFAULT_ROLL_SIZE = "10m";
|
|
3
|
-
const DEFAULT_ROLL_FREQUENCY = "daily";
|
|
4
|
-
const DEFAULT_ROLL_KEEP = 14;
|
|
5
|
-
const ENV_LOG_FILE = "SCRIBE_LOG_FILE";
|
|
6
|
-
const ENV_LOG_SIZE = "SCRIBE_LOG_SIZE";
|
|
7
|
-
const ENV_LOG_FREQUENCY = "SCRIBE_LOG_FREQUENCY";
|
|
8
|
-
const ENV_LOG_KEEP = "SCRIBE_LOG_KEEP";
|
|
9
|
-
function currentEnvironment() {
|
|
10
|
-
return process.env.NODE_ENV === Environments.production ? Environments.production : Environments.development;
|
|
11
|
-
}
|
|
12
|
-
function isEnabled(when, environment) {
|
|
13
|
-
return (when ?? "development") === "always" || environment === Environments.development;
|
|
14
|
-
}
|
|
15
|
-
function envString(name) {
|
|
16
|
-
const value = process.env[name]?.trim();
|
|
17
|
-
return value ? value : undefined;
|
|
18
|
-
}
|
|
19
|
-
function envFrequency() {
|
|
20
|
-
const raw = envString(ENV_LOG_FREQUENCY);
|
|
21
|
-
if (raw == null) {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
if (/^\d+$/.test(raw)) {
|
|
25
|
-
return Number(raw);
|
|
26
|
-
}
|
|
27
|
-
return raw;
|
|
28
|
-
}
|
|
29
|
-
function envKeep() {
|
|
30
|
-
const raw = envString(ENV_LOG_KEEP);
|
|
31
|
-
if (raw == null) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
const keep = Number(raw);
|
|
35
|
-
return Number.isFinite(keep) && keep >= 0 ? keep : undefined;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
|
|
39
|
-
* without touching app code. Size / frequency / keep: explicit > env > default.
|
|
40
|
-
*/ function resolveRoll(options) {
|
|
41
|
-
return {
|
|
42
|
-
file: envString(ENV_LOG_FILE) ?? options.file,
|
|
43
|
-
size: options.size ?? envString(ENV_LOG_SIZE) ?? DEFAULT_ROLL_SIZE,
|
|
44
|
-
frequency: options.frequency ?? envFrequency() ?? DEFAULT_ROLL_FREQUENCY,
|
|
45
|
-
keep: options.keep ?? envKeep() ?? DEFAULT_ROLL_KEEP,
|
|
46
|
-
mkdir: options.mkdir ?? true,
|
|
47
|
-
symlink: options.symlink ?? false
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
function prettyTarget(options) {
|
|
51
|
-
return {
|
|
52
|
-
target: "pino-pretty",
|
|
53
|
-
options: {
|
|
54
|
-
colorize: options.colorize ?? true
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function rollTarget(options) {
|
|
59
|
-
const roll = resolveRoll(options);
|
|
60
|
-
return {
|
|
61
|
-
target: "pino-roll",
|
|
62
|
-
options: {
|
|
63
|
-
file: roll.file,
|
|
64
|
-
mkdir: roll.mkdir,
|
|
65
|
-
size: roll.size,
|
|
66
|
-
frequency: roll.frequency,
|
|
67
|
-
limit: {
|
|
68
|
-
count: roll.keep
|
|
69
|
-
},
|
|
70
|
-
symlink: roll.symlink
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
function transport(plan, environment = currentEnvironment()) {
|
|
75
|
-
const targets = [];
|
|
76
|
-
if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
|
|
77
|
-
targets.push(prettyTarget(plan.pretty));
|
|
78
|
-
}
|
|
79
|
-
if (plan.roll && isEnabled(plan.roll.when, environment)) {
|
|
80
|
-
targets.push(rollTarget(plan.roll));
|
|
81
|
-
}
|
|
82
|
-
if (targets.length === 0) {
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
if (targets.length === 1) {
|
|
86
|
-
return targets[0];
|
|
87
|
-
}
|
|
88
|
-
return {
|
|
89
|
-
targets
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
export const pinoRecipe = {
|
|
93
|
-
transport,
|
|
94
|
-
currentEnvironment,
|
|
95
|
-
resolveRoll
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0LyoqIERlZmF1bHQgcm9sbCBwYXRoLiBPdmVycmlkZGVuIGF0IHJ1bnRpbWUgYnkgYFNDUklCRV9MT0dfRklMRWAgd2hlbiBzZXQuICovXG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZT86IHN0cmluZztcblx0ZnJlcXVlbmN5Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRrZWVwPzogbnVtYmVyO1xuXHRta2Rpcj86IGJvb2xlYW47XG5cdHN5bWxpbms/OiBib29sZWFuO1xuXHRsb2dMZXZlbD86IHN0cmluZztcblx0d2hlbj86IFBpbm9XaGVuO1xufTtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZVBsYW4gPSB7XG5cdHByZXR0eT86IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zO1xuXHRyb2xsPzogUGlub1JvbGxSZWNpcGVPcHRpb25zO1xuXHRsb2dMZXZlbD86IHN0cmluZztcbn07XG5cbmNvbnN0IERFRkFVTFRfUk9MTF9TSVpFID0gXCIxMG1cIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9GUkVRVUVOQ1kgPSBcImRhaWx5XCI7XG5jb25zdCBERUZBVUxUX1JPTExfS0VFUCA9IDE0O1xuXG5jb25zdCBFTlZfTE9HX0ZJTEUgPSBcIlNDUklCRV9MT0dfRklMRVwiO1xuY29uc3QgRU5WX0xPR19TSVpFID0gXCJTQ1JJQkVfTE9HX1NJWkVcIjtcbmNvbnN0IEVOVl9MT0dfRlJFUVVFTkNZID0gXCJTQ1JJQkVfTE9HX0ZSRVFVRU5DWVwiO1xuY29uc3QgRU5WX0xPR19LRUVQID0gXCJTQ1JJQkVfTE9HX0tFRVBcIjtcblxuZnVuY3Rpb24gY3VycmVudEVudmlyb25tZW50KCk6IEVudmlyb25tZW50IHtcblx0cmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBFbnZpcm9ubWVudHMucHJvZHVjdGlvblxuXHRcdD8gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ6IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gaXNFbmFibGVkKHdoZW46IFBpbm9XaGVuIHwgdW5kZWZpbmVkLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBib29sZWFuIHtcblx0cmV0dXJuICh3aGVuID8/IFwiZGV2ZWxvcG1lbnRcIikgPT09IFwiYWx3YXlzXCIgfHwgZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gZW52U3RyaW5nKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0/LnRyaW0oKTtcblx0cmV0dXJuIHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVudkZyZXF1ZW5jeSgpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19GUkVRVUVOQ1kpO1xuXHRpZiAocmF3ID09IG51bGwpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdGlmICgvXlxcZCskLy50ZXN0KHJhdykpIHtcblx0XHRyZXR1cm4gTnVtYmVyKHJhdyk7XG5cdH1cblx0cmV0dXJuIHJhdztcbn1cblxuZnVuY3Rpb24gZW52S2VlcCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19LRUVQKTtcblx0aWYgKHJhdyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBrZWVwID0gTnVtYmVyKHJhdyk7XG5cdHJldHVybiBOdW1iZXIuaXNGaW5pdGUoa2VlcCkgJiYga2VlcCA+PSAwID8ga2VlcCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHJvbGwgb3B0aW9ucy4gYFNDUklCRV9MT0dfRklMRWAgb3ZlcnJpZGVzIGBmaWxlYCBzbyBvcHMgY2FuIHJlZGlyZWN0XG4gKiB3aXRob3V0IHRvdWNoaW5nIGFwcCBjb2RlLiBTaXplIC8gZnJlcXVlbmN5IC8ga2VlcDogZXhwbGljaXQgPiBlbnYgPiBkZWZhdWx0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlUm9sbChvcHRpb25zOiBQaW5vUm9sbFJlY2lwZU9wdGlvbnMpOiB7XG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZTogc3RyaW5nO1xuXHRmcmVxdWVuY3k6IHN0cmluZyB8IG51bWJlcjtcblx0a2VlcDogbnVtYmVyO1xuXHRta2RpcjogYm9vbGVhbjtcblx0c3ltbGluazogYm9vbGVhbjtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGZpbGU6IGVudlN0cmluZyhFTlZfTE9HX0ZJTEUpID8/IG9wdGlvbnMuZmlsZSxcblx0XHRzaXplOiBvcHRpb25zLnNpemUgPz8gZW52U3RyaW5nKEVOVl9MT0dfU0laRSkgPz8gREVGQVVMVF9ST0xMX1NJWkUsXG5cdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBlbnZGcmVxdWVuY3koKSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdGtlZXA6IG9wdGlvbnMua2VlcCA/PyBlbnZLZWVwKCkgPz8gREVGQVVMVF9ST0xMX0tFRVAsXG5cdFx0bWtkaXI6IG9wdGlvbnMubWtkaXIgPz8gdHJ1ZSxcblx0XHRzeW1saW5rOiBvcHRpb25zLnN5bWxpbmsgPz8gZmFsc2UsXG5cdH07XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRjb25zdCByb2xsID0gcmVzb2x2ZVJvbGwob3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0OiBcInBpbm8tcm9sbFwiLFxuXHRcdG9wdGlvbnM6IHtcblx0XHRcdGZpbGU6IHJvbGwuZmlsZSxcblx0XHRcdG1rZGlyOiByb2xsLm1rZGlyLFxuXHRcdFx0c2l6ZTogcm9sbC5zaXplLFxuXHRcdFx0ZnJlcXVlbmN5OiByb2xsLmZyZXF1ZW5jeSxcblx0XHRcdGxpbWl0OiB7IGNvdW50OiByb2xsLmtlZXAgfSxcblx0XHRcdHN5bWxpbms6IHJvbGwuc3ltbGluayxcblx0XHR9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiB0cmFuc3BvcnQoXG5cdHBsYW46IFBpbm9SZWNpcGVQbGFuLFxuXHRlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBjdXJyZW50RW52aXJvbm1lbnQoKSxcbik6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCB1bmRlZmluZWQge1xuXHRjb25zdCB0YXJnZXRzOiBUcmFuc3BvcnRTaW5nbGVPcHRpb25zW10gPSBbXTtcblx0aWYgKHBsYW4ucHJldHR5ICYmIGlzRW5hYmxlZChwbGFuLnByZXR0eS53aGVuLCBlbnZpcm9ubWVudCkpIHtcblx0XHR0YXJnZXRzLnB1c2gocHJldHR5VGFyZ2V0KHBsYW4ucHJldHR5KSk7XG5cdH1cblx0aWYgKHBsYW4ucm9sbCAmJiBpc0VuYWJsZWQocGxhbi5yb2xsLndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChyb2xsVGFyZ2V0KHBsYW4ucm9sbCkpO1xuXHR9XG5cdGlmICh0YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIHRhcmdldHNbMF07XG5cdH1cblx0cmV0dXJuIHsgdGFyZ2V0cyB9O1xufVxuXG5leHBvcnQgY29uc3QgcGlub1JlY2lwZSA9IHsgdHJhbnNwb3J0LCBjdXJyZW50RW52aXJvbm1lbnQsIHJlc29sdmVSb2xsIH07XG4iXSwibmFtZXMiOlsiRW52aXJvbm1lbnRzIiwiREVGQVVMVF9ST0xMX1NJWkUiLCJERUZBVUxUX1JPTExfRlJFUVVFTkNZIiwiREVGQVVMVF9ST0xMX0tFRVAiLCJFTlZfTE9HX0ZJTEUiLCJFTlZfTE9HX1NJWkUiLCJFTlZfTE9HX0ZSRVFVRU5DWSIsIkVOVl9MT0dfS0VFUCIsImN1cnJlbnRFbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb2R1Y3Rpb24iLCJkZXZlbG9wbWVudCIsImlzRW5hYmxlZCIsIndoZW4iLCJlbnZpcm9ubWVudCIsImVudlN0cmluZyIsIm5hbWUiLCJ2YWx1ZSIsInRyaW0iLCJ1bmRlZmluZWQiLCJlbnZGcmVxdWVuY3kiLCJyYXciLCJ0ZXN0IiwiTnVtYmVyIiwiZW52S2VlcCIsImtlZXAiLCJpc0Zpbml0ZSIsInJlc29sdmVSb2xsIiwib3B0aW9ucyIsImZpbGUiLCJzaXplIiwiZnJlcXVlbmN5IiwibWtkaXIiLCJzeW1saW5rIiwicHJldHR5VGFyZ2V0IiwidGFyZ2V0IiwiY29sb3JpemUiLCJyb2xsVGFyZ2V0Iiwicm9sbCIsImxpbWl0IiwiY291bnQiLCJ0cmFuc3BvcnQiLCJwbGFuIiwidGFyZ2V0cyIsInByZXR0eSIsInB1c2giLCJsZW5ndGgiLCJwaW5vUmVjaXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUEyQkEsWUFBWSxRQUFRLHlCQUF5QjtBQThCeEUsTUFBTUMsb0JBQW9CO0FBQzFCLE1BQU1DLHlCQUF5QjtBQUMvQixNQUFNQyxvQkFBb0I7QUFFMUIsTUFBTUMsZUFBZTtBQUNyQixNQUFNQyxlQUFlO0FBQ3JCLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyxlQUFlO0FBRXJCLFNBQVNDO0lBQ1IsT0FBT0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLEtBQUtYLGFBQWFZLFVBQVUsR0FDcERaLGFBQWFZLFVBQVUsR0FDdkJaLGFBQWFhLFdBQVc7QUFDNUI7QUFFQSxTQUFTQyxVQUFVQyxJQUEwQixFQUFFQyxXQUF3QjtJQUN0RSxPQUFPLEFBQUNELENBQUFBLFFBQVEsYUFBWSxNQUFPLFlBQVlDLGdCQUFnQmhCLGFBQWFhLFdBQVc7QUFDeEY7QUFFQSxTQUFTSSxVQUFVQyxJQUFZO0lBQzlCLE1BQU1DLFFBQVFWLFFBQVFDLEdBQUcsQ0FBQ1EsS0FBSyxFQUFFRTtJQUNqQyxPQUFPRCxRQUFRQSxRQUFRRTtBQUN4QjtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsTUFBTU4sVUFBVVg7SUFDdEIsSUFBSWlCLE9BQU8sTUFBTTtRQUNoQixPQUFPRjtJQUNSO0lBQ0EsSUFBSSxRQUFRRyxJQUFJLENBQUNELE1BQU07UUFDdEIsT0FBT0UsT0FBT0Y7SUFDZjtJQUNBLE9BQU9BO0FBQ1I7QUFFQSxTQUFTRztJQUNSLE1BQU1ILE1BQU1OLFVBQVVWO0lBQ3RCLElBQUlnQixPQUFPLE1BQU07UUFDaEIsT0FBT0Y7SUFDUjtJQUNBLE1BQU1NLE9BQU9GLE9BQU9GO0lBQ3BCLE9BQU9FLE9BQU9HLFFBQVEsQ0FBQ0QsU0FBU0EsUUFBUSxJQUFJQSxPQUFPTjtBQUNwRDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNRLFlBQVlDLE9BQThCO0lBUWxELE9BQU87UUFDTkMsTUFBTWQsVUFBVWIsaUJBQWlCMEIsUUFBUUMsSUFBSTtRQUM3Q0MsTUFBTUYsUUFBUUUsSUFBSSxJQUFJZixVQUFVWixpQkFBaUJKO1FBQ2pEZ0MsV0FBV0gsUUFBUUcsU0FBUyxJQUFJWCxrQkFBa0JwQjtRQUNsRHlCLE1BQU1HLFFBQVFILElBQUksSUFBSUQsYUFBYXZCO1FBQ25DK0IsT0FBT0osUUFBUUksS0FBSyxJQUFJO1FBQ3hCQyxTQUFTTCxRQUFRSyxPQUFPLElBQUk7SUFDN0I7QUFDRDtBQUVBLFNBQVNDLGFBQWFOLE9BQWdDO0lBQ3JELE9BQU87UUFDTk8sUUFBUTtRQUNSUCxTQUFTO1lBQUVRLFVBQVVSLFFBQVFRLFFBQVEsSUFBSTtRQUFLO0lBQy9DO0FBQ0Q7QUFFQSxTQUFTQyxXQUFXVCxPQUE4QjtJQUNqRCxNQUFNVSxPQUFPWCxZQUFZQztJQUN6QixPQUFPO1FBQ05PLFFBQVE7UUFDUlAsU0FBUztZQUNSQyxNQUFNUyxLQUFLVCxJQUFJO1lBQ2ZHLE9BQU9NLEtBQUtOLEtBQUs7WUFDakJGLE1BQU1RLEtBQUtSLElBQUk7WUFDZkMsV0FBV08sS0FBS1AsU0FBUztZQUN6QlEsT0FBTztnQkFBRUMsT0FBT0YsS0FBS2IsSUFBSTtZQUFDO1lBQzFCUSxTQUFTSyxLQUFLTCxPQUFPO1FBQ3RCO0lBQ0Q7QUFDRDtBQUVBLFNBQVNRLFVBQ1JDLElBQW9CLEVBQ3BCNUIsY0FBMkJSLG9CQUFvQjtJQUUvQyxNQUFNcUMsVUFBb0MsRUFBRTtJQUM1QyxJQUFJRCxLQUFLRSxNQUFNLElBQUloQyxVQUFVOEIsS0FBS0UsTUFBTSxDQUFDL0IsSUFBSSxFQUFFQyxjQUFjO1FBQzVENkIsUUFBUUUsSUFBSSxDQUFDWCxhQUFhUSxLQUFLRSxNQUFNO0lBQ3RDO0lBQ0EsSUFBSUYsS0FBS0osSUFBSSxJQUFJMUIsVUFBVThCLEtBQUtKLElBQUksQ0FBQ3pCLElBQUksRUFBRUMsY0FBYztRQUN4RDZCLFFBQVFFLElBQUksQ0FBQ1IsV0FBV0ssS0FBS0osSUFBSTtJQUNsQztJQUNBLElBQUlLLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU8zQjtJQUNSO0lBQ0EsSUFBSXdCLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU9ILE9BQU8sQ0FBQyxFQUFFO0lBQ2xCO0lBQ0EsT0FBTztRQUFFQTtJQUFRO0FBQ2xCO0FBRUEsT0FBTyxNQUFNSSxhQUFhO0lBQUVOO0lBQVduQztJQUFvQnFCO0FBQVksRUFBRSJ9
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrap a pino worker transport so a dead ThreadStream cannot spam or crash.
|
|
3
|
-
* On first error / write throw: report once, destroy, no-op further writes.
|
|
4
|
-
*/ export function guardTransport(transport) {
|
|
5
|
-
const stream = transport;
|
|
6
|
-
let retired = false;
|
|
7
|
-
let reported = false;
|
|
8
|
-
const retire = (reason = "retired")=>{
|
|
9
|
-
if (retired) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
retired = true;
|
|
13
|
-
if (!reported) {
|
|
14
|
-
reported = true;
|
|
15
|
-
process.stderr.write(`[scribe-pino] transport retired: ${reason}\n`);
|
|
16
|
-
}
|
|
17
|
-
if (typeof stream.destroy === "function") {
|
|
18
|
-
try {
|
|
19
|
-
stream.destroy();
|
|
20
|
-
} catch {
|
|
21
|
-
// already dead
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
if (typeof stream.on === "function") {
|
|
26
|
-
stream.on("error", (err)=>{
|
|
27
|
-
retire(err?.message ?? String(err));
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
if (typeof stream.write === "function") {
|
|
31
|
-
const originalWrite = stream.write.bind(stream);
|
|
32
|
-
stream.write = (chunk, encodingOrCb, cb)=>{
|
|
33
|
-
if (retired) {
|
|
34
|
-
completeWrite(encodingOrCb, cb);
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
try {
|
|
38
|
-
return originalWrite(chunk, encodingOrCb, cb);
|
|
39
|
-
} catch (err) {
|
|
40
|
-
retire(err instanceof Error ? err.message : String(err));
|
|
41
|
-
completeWrite(encodingOrCb, cb);
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
Object.defineProperty(stream, "retired", {
|
|
47
|
-
get: ()=>retired,
|
|
48
|
-
enumerable: true
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(stream, "retire", {
|
|
51
|
-
value: retire,
|
|
52
|
-
enumerable: true
|
|
53
|
-
});
|
|
54
|
-
return stream;
|
|
55
|
-
}
|
|
56
|
-
function completeWrite(encodingOrCb, cb) {
|
|
57
|
-
const done = typeof encodingOrCb === "function" ? encodingOrCb : typeof cb === "function" ? cb : undefined;
|
|
58
|
-
if (typeof done === "function") {
|
|
59
|
-
done();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby50cmFuc3BvcnQtZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXN0aW5hdGlvblN0cmVhbSB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIEd1YXJkZWRUcmFuc3BvcnQgPSBEZXN0aW5hdGlvblN0cmVhbSAmIHtcblx0cmVhZG9ubHkgcmV0aXJlZDogYm9vbGVhbjtcblx0cmV0aXJlKHJlYXNvbj86IHN0cmluZyk6IHZvaWQ7XG59O1xuXG50eXBlIFdyaXRhYmxlTGlrZSA9IERlc3RpbmF0aW9uU3RyZWFtICYge1xuXHR3cml0ZT86ICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duO1xuXHRvbj86IChldmVudDogXCJlcnJvclwiLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHVua25vd247XG5cdGRlc3Ryb3k/OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogV3JhcCBhIHBpbm8gd29ya2VyIHRyYW5zcG9ydCBzbyBhIGRlYWQgVGhyZWFkU3RyZWFtIGNhbm5vdCBzcGFtIG9yIGNyYXNoLlxuICogT24gZmlyc3QgZXJyb3IgLyB3cml0ZSB0aHJvdzogcmVwb3J0IG9uY2UsIGRlc3Ryb3ksIG5vLW9wIGZ1cnRoZXIgd3JpdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VhcmRUcmFuc3BvcnQodHJhbnNwb3J0OiBEZXN0aW5hdGlvblN0cmVhbSk6IEd1YXJkZWRUcmFuc3BvcnQge1xuXHRjb25zdCBzdHJlYW0gPSB0cmFuc3BvcnQgYXMgV3JpdGFibGVMaWtlO1xuXHRsZXQgcmV0aXJlZCA9IGZhbHNlO1xuXHRsZXQgcmVwb3J0ZWQgPSBmYWxzZTtcblxuXHRjb25zdCByZXRpcmUgPSAocmVhc29uID0gXCJyZXRpcmVkXCIpOiB2b2lkID0+IHtcblx0XHRpZiAocmV0aXJlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXRpcmVkID0gdHJ1ZTtcblx0XHRpZiAoIXJlcG9ydGVkKSB7XG5cdFx0XHRyZXBvcnRlZCA9IHRydWU7XG5cdFx0XHRwcm9jZXNzLnN0ZGVyci53cml0ZShgW3NjcmliZS1waW5vXSB0cmFuc3BvcnQgcmV0aXJlZDogJHtyZWFzb259XFxuYCk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2Ygc3RyZWFtLmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0c3RyZWFtLmRlc3Ryb3koKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvLyBhbHJlYWR5IGRlYWRcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ub24gPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHN0cmVhbS5vbihcImVycm9yXCIsIChlcnIpID0+IHtcblx0XHRcdHJldGlyZShlcnI/Lm1lc3NhZ2UgPz8gU3RyaW5nKGVycikpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ud3JpdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdGNvbnN0IG9yaWdpbmFsV3JpdGUgPSBzdHJlYW0ud3JpdGUuYmluZChzdHJlYW0pIGFzIChcblx0XHRcdGNodW5rOiB1bmtub3duLFxuXHRcdFx0ZW5jb2RpbmdPckNiPzogdW5rbm93bixcblx0XHRcdGNiPzogdW5rbm93bixcblx0XHQpID0+IHVua25vd247XG5cblx0XHRzdHJlYW0ud3JpdGUgPSAoKGNodW5rOiB1bmtub3duLCBlbmNvZGluZ09yQ2I/OiB1bmtub3duLCBjYj86IHVua25vd24pID0+IHtcblx0XHRcdGlmIChyZXRpcmVkKSB7XG5cdFx0XHRcdGNvbXBsZXRlV3JpdGUoZW5jb2RpbmdPckNiLCBjYik7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmV0dXJuIG9yaWdpbmFsV3JpdGUoY2h1bmssIGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdHJldGlyZShlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikpO1xuXHRcdFx0XHRjb21wbGV0ZVdyaXRlKGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KSBhcyB0eXBlb2Ygc3RyZWFtLndyaXRlO1xuXHR9XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0cmVhbSwgXCJyZXRpcmVkXCIsIHtcblx0XHRnZXQ6ICgpID0+IHJldGlyZWQsXG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0fSk7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHJlYW0sIFwicmV0aXJlXCIsIHtcblx0XHR2YWx1ZTogcmV0aXJlLFxuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdH0pO1xuXG5cdHJldHVybiBzdHJlYW0gYXMgR3VhcmRlZFRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVXcml0ZShlbmNvZGluZ09yQ2I6IHVua25vd24sIGNiOiB1bmtub3duKTogdm9pZCB7XG5cdGNvbnN0IGRvbmUgPVxuXHRcdHR5cGVvZiBlbmNvZGluZ09yQ2IgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0PyBlbmNvZGluZ09yQ2Jcblx0XHRcdDogdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCJcblx0XHRcdFx0PyBjYlxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBkb25lID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRkb25lKCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJndWFyZFRyYW5zcG9ydCIsInRyYW5zcG9ydCIsInN0cmVhbSIsInJldGlyZWQiLCJyZXBvcnRlZCIsInJldGlyZSIsInJlYXNvbiIsInByb2Nlc3MiLCJzdGRlcnIiLCJ3cml0ZSIsImRlc3Ryb3kiLCJvbiIsImVyciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJvcmlnaW5hbFdyaXRlIiwiYmluZCIsImNodW5rIiwiZW5jb2RpbmdPckNiIiwiY2IiLCJjb21wbGV0ZVdyaXRlIiwiRXJyb3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImVudW1lcmFibGUiLCJ2YWx1ZSIsImRvbmUiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQWFBOzs7Q0FHQyxHQUNELE9BQU8sU0FBU0EsZUFBZUMsU0FBNEI7SUFDMUQsTUFBTUMsU0FBU0Q7SUFDZixJQUFJRSxVQUFVO0lBQ2QsSUFBSUMsV0FBVztJQUVmLE1BQU1DLFNBQVMsQ0FBQ0MsU0FBUyxTQUFTO1FBQ2pDLElBQUlILFNBQVM7WUFDWjtRQUNEO1FBQ0FBLFVBQVU7UUFDVixJQUFJLENBQUNDLFVBQVU7WUFDZEEsV0FBVztZQUNYRyxRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLGlDQUFpQyxFQUFFSCxPQUFPLEVBQUUsQ0FBQztRQUNwRTtRQUNBLElBQUksT0FBT0osT0FBT1EsT0FBTyxLQUFLLFlBQVk7WUFDekMsSUFBSTtnQkFDSFIsT0FBT1EsT0FBTztZQUNmLEVBQUUsT0FBTTtZQUNQLGVBQWU7WUFDaEI7UUFDRDtJQUNEO0lBRUEsSUFBSSxPQUFPUixPQUFPUyxFQUFFLEtBQUssWUFBWTtRQUNwQ1QsT0FBT1MsRUFBRSxDQUFDLFNBQVMsQ0FBQ0M7WUFDbkJQLE9BQU9PLEtBQUtDLFdBQVdDLE9BQU9GO1FBQy9CO0lBQ0Q7SUFFQSxJQUFJLE9BQU9WLE9BQU9PLEtBQUssS0FBSyxZQUFZO1FBQ3ZDLE1BQU1NLGdCQUFnQmIsT0FBT08sS0FBSyxDQUFDTyxJQUFJLENBQUNkO1FBTXhDQSxPQUFPTyxLQUFLLEdBQUksQ0FBQ1EsT0FBZ0JDLGNBQXdCQztZQUN4RCxJQUFJaEIsU0FBUztnQkFDWmlCLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7WUFDQSxJQUFJO2dCQUNILE9BQU9KLGNBQWNFLE9BQU9DLGNBQWNDO1lBQzNDLEVBQUUsT0FBT1AsS0FBSztnQkFDYlAsT0FBT08sZUFBZVMsUUFBUVQsSUFBSUMsT0FBTyxHQUFHQyxPQUFPRjtnQkFDbkRRLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7UUFDRDtJQUNEO0lBRUFHLE9BQU9DLGNBQWMsQ0FBQ3JCLFFBQVEsV0FBVztRQUN4Q3NCLEtBQUssSUFBTXJCO1FBQ1hzQixZQUFZO0lBQ2I7SUFDQUgsT0FBT0MsY0FBYyxDQUFDckIsUUFBUSxVQUFVO1FBQ3ZDd0IsT0FBT3JCO1FBQ1BvQixZQUFZO0lBQ2I7SUFFQSxPQUFPdkI7QUFDUjtBQUVBLFNBQVNrQixjQUFjRixZQUFxQixFQUFFQyxFQUFXO0lBQ3hELE1BQU1RLE9BQ0wsT0FBT1QsaUJBQWlCLGFBQ3JCQSxlQUNBLE9BQU9DLE9BQU8sYUFDYkEsS0FDQVM7SUFDTCxJQUFJLE9BQU9ELFNBQVMsWUFBWTtRQUMvQkE7SUFDRDtBQUNEIn0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { type Environment } from "@decohere/nexus/system";
|
|
2
|
-
import type { TransportMultiOptions, TransportSingleOptions } from "pino";
|
|
3
|
-
/** Pretty and roll are local-dev conveniences. Production ships JSON on stdout. */
|
|
4
|
-
export type PinoWhen = "development" | "always";
|
|
5
|
-
export type PinoPrettyRecipeOptions = {
|
|
6
|
-
colorize?: boolean;
|
|
7
|
-
logLevel?: string;
|
|
8
|
-
when?: PinoWhen;
|
|
9
|
-
};
|
|
10
|
-
export type PinoRollRecipeOptions = {
|
|
11
|
-
/** Default roll path. Overridden at runtime by `SCRIBE_LOG_FILE` when set. */
|
|
12
|
-
file: string;
|
|
13
|
-
size?: string;
|
|
14
|
-
frequency?: string | number;
|
|
15
|
-
keep?: number;
|
|
16
|
-
mkdir?: boolean;
|
|
17
|
-
symlink?: boolean;
|
|
18
|
-
logLevel?: string;
|
|
19
|
-
when?: PinoWhen;
|
|
20
|
-
};
|
|
21
|
-
export type PinoRecipePlan = {
|
|
22
|
-
pretty?: PinoPrettyRecipeOptions;
|
|
23
|
-
roll?: PinoRollRecipeOptions;
|
|
24
|
-
logLevel?: string;
|
|
25
|
-
};
|
|
26
|
-
declare function currentEnvironment(): Environment;
|
|
27
|
-
/**
|
|
28
|
-
* Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
|
|
29
|
-
* without touching app code. Size / frequency / keep: explicit > env > default.
|
|
30
|
-
*/
|
|
31
|
-
declare function resolveRoll(options: PinoRollRecipeOptions): {
|
|
32
|
-
file: string;
|
|
33
|
-
size: string;
|
|
34
|
-
frequency: string | number;
|
|
35
|
-
keep: number;
|
|
36
|
-
mkdir: boolean;
|
|
37
|
-
symlink: boolean;
|
|
38
|
-
};
|
|
39
|
-
declare function transport(plan: PinoRecipePlan, environment?: Environment): TransportSingleOptions | TransportMultiOptions | undefined;
|
|
40
|
-
export declare const pinoRecipe: {
|
|
41
|
-
transport: typeof transport;
|
|
42
|
-
currentEnvironment: typeof currentEnvironment;
|
|
43
|
-
resolveRoll: typeof resolveRoll;
|
|
44
|
-
};
|
|
45
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { DestinationStream } from "pino";
|
|
2
|
-
export type GuardedTransport = DestinationStream & {
|
|
3
|
-
readonly retired: boolean;
|
|
4
|
-
retire(reason?: string): void;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Wrap a pino worker transport so a dead ThreadStream cannot spam or crash.
|
|
8
|
-
* On first error / write throw: report once, destroy, no-op further writes.
|
|
9
|
-
*/
|
|
10
|
-
export declare function guardTransport(transport: DestinationStream): GuardedTransport;
|