standard-log 8.0.0 → 8.0.1
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/cjs/config.js +1 -1
- package/cjs/config.js.map +1 -1
- package/cjs/config.spec.js +6 -0
- package/cjs/config.spec.js.map +1 -1
- package/cjs/console/createConsoleLogReporter.d.ts.map +1 -1
- package/cjs/console/createConsoleLogReporter.js +2 -2
- package/cjs/console/createConsoleLogReporter.js.map +1 -1
- package/cjs/console/createConsoleLogReporter.spec.js +13 -0
- package/cjs/console/createConsoleLogReporter.spec.js.map +1 -1
- package/cjs/errors.d.ts +3 -3
- package/cjs/errors.d.ts.map +1 -1
- package/cjs/errors.js +6 -6
- package/cjs/errors.js.map +1 -1
- package/cjs/getLogModeFromEnvironment.js +1 -1
- package/cjs/getLogModeFromEnvironment.js.map +1 -1
- package/cjs/getLogModeFromEnvironment.spec.js +6 -0
- package/cjs/getLogModeFromEnvironment.spec.js.map +1 -1
- package/cjs/getLogger.js +1 -1
- package/cjs/getLogger.js.map +1 -1
- package/cjs/getLogger.spec.js +4 -0
- package/cjs/getLogger.spec.js.map +1 -1
- package/cjs/logReporter.js +2 -2
- package/cjs/logReporter.js.map +1 -1
- package/cjs/logReporter.spec.js +12 -0
- package/cjs/logReporter.spec.js.map +1 -1
- package/cjs/memory/MemoryLogReporter.d.ts.map +1 -1
- package/cjs/memory/MemoryLogReporter.js +2 -2
- package/cjs/memory/MemoryLogReporter.js.map +1 -1
- package/cjs/memory/MemoryLogReporter.spec.js +13 -0
- package/cjs/memory/MemoryLogReporter.spec.js.map +1 -1
- package/cjs/testUtil.d.ts +1 -0
- package/cjs/testUtil.d.ts.map +1 -1
- package/cjs/testUtil.js +7 -1
- package/cjs/testUtil.js.map +1 -1
- package/cjs/utils.d.ts +2 -1
- package/cjs/utils.d.ts.map +1 -1
- package/cjs/utils.js +3 -2
- package/cjs/utils.js.map +1 -1
- package/dist/standard-log.es5.js +17 -16
- package/dist/standard-log.es5.js.gz +0 -0
- package/dist/standard-log.es5.js.map +1 -1
- package/dist/standard-log.es5.js.map.gz +0 -0
- package/dist/standard-log.esm.js +17 -16
- package/dist/standard-log.esm.js.gz +0 -0
- package/dist/standard-log.esm.js.map +1 -1
- package/dist/standard-log.esm.js.map.gz +0 -0
- package/esm/config.js +1 -1
- package/esm/config.js.map +1 -1
- package/esm/config.spec.js +6 -0
- package/esm/config.spec.js.map +1 -1
- package/esm/console/createConsoleLogReporter.d.ts.map +1 -1
- package/esm/console/createConsoleLogReporter.js +2 -2
- package/esm/console/createConsoleLogReporter.js.map +1 -1
- package/esm/console/createConsoleLogReporter.spec.js +13 -0
- package/esm/console/createConsoleLogReporter.spec.js.map +1 -1
- package/esm/errors.d.ts +3 -3
- package/esm/errors.d.ts.map +1 -1
- package/esm/errors.js +6 -6
- package/esm/errors.js.map +1 -1
- package/esm/getLogModeFromEnvironment.js +1 -1
- package/esm/getLogModeFromEnvironment.js.map +1 -1
- package/esm/getLogModeFromEnvironment.spec.js +6 -0
- package/esm/getLogModeFromEnvironment.spec.js.map +1 -1
- package/esm/getLogger.js +1 -1
- package/esm/getLogger.js.map +1 -1
- package/esm/getLogger.spec.js +5 -1
- package/esm/getLogger.spec.js.map +1 -1
- package/esm/logReporter.js +2 -2
- package/esm/logReporter.js.map +1 -1
- package/esm/logReporter.spec.js +12 -0
- package/esm/logReporter.spec.js.map +1 -1
- package/esm/memory/MemoryLogReporter.d.ts.map +1 -1
- package/esm/memory/MemoryLogReporter.js +2 -2
- package/esm/memory/MemoryLogReporter.js.map +1 -1
- package/esm/memory/MemoryLogReporter.spec.js +13 -0
- package/esm/memory/MemoryLogReporter.spec.js.map +1 -1
- package/esm/testUtil.d.ts +1 -0
- package/esm/testUtil.d.ts.map +1 -1
- package/esm/testUtil.js +4 -0
- package/esm/testUtil.js.map +1 -1
- package/esm/utils.d.ts +2 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +3 -2
- package/esm/utils.js.map +1 -1
- package/package.json +3 -2
- package/ts/config.ts +1 -1
- package/ts/console/createConsoleLogReporter.ts +8 -2
- package/ts/errors.ts +6 -6
- package/ts/getLogModeFromEnvironment.ts +1 -1
- package/ts/getLogger.ts +1 -1
- package/ts/logReporter.ts +2 -2
- package/ts/memory/MemoryLogReporter.ts +8 -2
- package/ts/utils.ts +4 -2
- package/ts/testUtil.ts +0 -19
package/cjs/config.js
CHANGED
|
@@ -22,7 +22,7 @@ exports.config = function config(options) {
|
|
|
22
22
|
if (options === void 0) { options = {}; }
|
|
23
23
|
if (store_js_1.store.value.configured) {
|
|
24
24
|
if (store_js_1.store.value.mode === 'production') {
|
|
25
|
-
throw new errors_js_1.ProhibitedDuringProduction('config');
|
|
25
|
+
throw new errors_js_1.ProhibitedDuringProduction('config', { ssf: config });
|
|
26
26
|
}
|
|
27
27
|
if (store_js_1.store.value.mode === 'test' && options.mode !== 'test') {
|
|
28
28
|
var log = (0, getLogger_js_1.getLogger)('standard-log');
|
package/cjs/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../ts/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,yDAAuD;AACvD,yCAAwD;AACxD,iEAA4D;AAC5D,+CAA0C;AAC1C,uCAAkC;AAUrB,QAAA,MAAM,GAA6E,SAAS,MAAM,CAAC,OAAoC;IAApC,wBAAA,EAAA,YAAoC;IAClJ,IAAI,gBAAK,CAAC,KAAK,CAAC,UAAU,EAAE;QAC1B,IAAI,gBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YACrC,MAAM,IAAI,sCAA0B,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../ts/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,yDAAuD;AACvD,yCAAwD;AACxD,iEAA4D;AAC5D,+CAA0C;AAC1C,uCAAkC;AAUrB,QAAA,MAAM,GAA6E,SAAS,MAAM,CAAC,OAAoC;IAApC,wBAAA,EAAA,YAAoC;IAClJ,IAAI,gBAAK,CAAC,KAAK,CAAC,UAAU,EAAE;QAC1B,IAAI,gBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;YACrC,MAAM,IAAI,sCAA0B,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;SAChE;QACD,IAAI,gBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1D,IAAM,GAAG,GAAG,IAAA,wBAAS,EAAC,cAAc,CAAC,CAAA;YACrC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;YAC/D,OAAM;SACP;KACF;IAED,IAAI,OAAO,CAAC,IAAI;QAAE,gBAAK,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEjD,gBAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAK,CAAC,KAAK,CAAC,QAAQ,CAAA;IAE/F,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,IAAM,cAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACzC,IAAA,sBAAU,EAAC,cAAY,EAAE,UAAA,CAAC;YACxB,IAAA,qCAAiB,EAAC,CAAC,EAAE,cAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;KACH;IAED,gBAAK,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,IAAA,0CAAkB,GAAE,CAAC,CAAA;IACnE,gBAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAA;IAE7B,IAAI,gBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;QACrC,gBAAK,CAAC,MAAM,uBAAM,gBAAK,CAAC,KAAK,KAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAG,CAAA;KAClF;SACI,IAAI,gBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;QAC3C,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAA;KACjG;AACH,CAAQ,CAAA;AAER,MAAM,CAAC,cAAc,CAAC,cAAM,EAAE,UAAU,EAAE;IACxC;;OAEG;IACH,GAAG;QACD,OAAO,gBAAK,CAAC,KAAK,CAAC,UAAU,CAAA;IAC/B,CAAC;CACF,CAAC,CAAA","sourcesContent":["import { forEachKey } from 'type-plus'\nimport { addCustomLogLevel } from './customLogLevel.js'\nimport { ProhibitedDuringProduction } from './errors.js'\nimport { getDefaultReporter } from './getDefaultReporter.js'\nimport { getLogger } from './getLogger.js'\nimport { store } from './store.js'\nimport { LogMode, LogReporter } from './types.js'\n\nexport type ConfigOptions = {\n mode: LogMode,\n customLevels: Record<string, number>,\n logLevel: number,\n reporters: LogReporter[]\n}\n\nexport const config: { (options?: Partial<ConfigOptions>): void, readonly isLocked: boolean } = function config(options: Partial<ConfigOptions> = {}) {\n if (store.value.configured) {\n if (store.value.mode === 'production') {\n throw new ProhibitedDuringProduction('config', { ssf: config })\n }\n if (store.value.mode === 'test' && options.mode !== 'test') {\n const log = getLogger('standard-log')\n log.warn(`already configured for test, ignoring config() call`)\n return\n }\n }\n\n if (options.mode) store.value.mode = options.mode\n\n store.value.logLevel = options.logLevel !== undefined ? options.logLevel : store.value.logLevel\n\n if (options.customLevels) {\n const customLevels = options.customLevels\n forEachKey(customLevels, k => {\n addCustomLogLevel(k, customLevels[k])\n })\n }\n\n store.value.reporters = options.reporters || [getDefaultReporter()]\n store.value.configured = true\n\n if (store.value.mode === 'production') {\n store.freeze({ ...store.value, reporters: Object.freeze(store.value.reporters) })\n }\n else if (store.value.mode === 'development') {\n console.warn(`'standard-log' is running in 'development' mode. Configuration is not protected.`)\n }\n} as any\n\nObject.defineProperty(config, 'isLocked', {\n /**\n * Gets if the config has already been locked\n */\n get() {\n return store.value.configured\n }\n})\n"]}
|
package/cjs/config.spec.js
CHANGED
|
@@ -7,6 +7,7 @@ var assertron_1 = __importDefault(require("assertron"));
|
|
|
7
7
|
var index_js_1 = require("./index.js");
|
|
8
8
|
var configForTest_js_1 = require("./configForTest.js");
|
|
9
9
|
var store_js_1 = require("./store.js");
|
|
10
|
+
var testUtil_js_1 = require("./testUtil.js");
|
|
10
11
|
beforeEach(function () { return store_js_1.store.reset(); });
|
|
11
12
|
afterEach(function () { return store_js_1.store.reset(); });
|
|
12
13
|
test('in production mode by default', function () {
|
|
@@ -23,6 +24,11 @@ test('calling config twice throws ProhibitedDuringProduction in production mode'
|
|
|
23
24
|
(0, index_js_1.config)({ mode: 'production' });
|
|
24
25
|
assertron_1.default.throws(function () { return (0, index_js_1.config)({ mode: 'development' }); }, index_js_1.ProhibitedDuringProduction);
|
|
25
26
|
});
|
|
27
|
+
it('throw ProhibitedDuringProduction with ssf to the call site', function () {
|
|
28
|
+
(0, index_js_1.config)({ mode: 'production' });
|
|
29
|
+
var err = assertron_1.default.throws(function () { return (0, index_js_1.config)({ mode: 'development' }); }, index_js_1.ProhibitedDuringProduction);
|
|
30
|
+
(0, testUtil_js_1.assertSSF)(err, __filename);
|
|
31
|
+
});
|
|
26
32
|
test('allow calling config with non-test mode while already running in test mode, but emit a warning', function () {
|
|
27
33
|
var reporter = (0, configForTest_js_1.configForTest)().reporter;
|
|
28
34
|
(0, index_js_1.config)({ mode: 'production' });
|
package/cjs/config.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.spec.js","sourceRoot":"","sources":["../ts/config.spec.ts"],"names":[],"mappings":";;;;;AAAA,wDAAyB;AACzB,uCAGmB;AACnB,uDAAkD;AAClD,uCAAkC;
|
|
1
|
+
{"version":3,"file":"config.spec.js","sourceRoot":"","sources":["../ts/config.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import a from 'assertron'\nimport {\n config, createMemoryLogReporter,\n logLevels, ProhibitedDuringProduction, toLogLevelName\n} from './index.js'\nimport { configForTest } from './configForTest.js'\nimport { store } from './store.js'\nimport { assertSSF } from './testUtil.js'\n\nbeforeEach(() => store.reset())\n\nafterEach(() => store.reset())\n\ntest('in production mode by default', () => {\n expect(store.value.mode).toBe('production')\n})\n\ntest('default logLevel is info', () => {\n expect(store.value.logLevel).toBe(logLevels.info)\n})\n\ntest('configure default logLevel', () => {\n config({ logLevel: logLevels.planck })\n\n expect(store.value.logLevel).toBe(logLevels.planck)\n})\n\ntest('calling config twice throws ProhibitedDuringProduction in production mode', () => {\n config({ mode: 'production' })\n a.throws(() => config({ mode: 'development' }), ProhibitedDuringProduction)\n})\n\nit('throw ProhibitedDuringProduction with ssf to the call site', () => {\n config({ mode: 'production' })\n const err = a.throws(() => config({ mode: 'development' }), ProhibitedDuringProduction)\n\n assertSSF(err, __filename)\n})\n\ntest('allow calling config with non-test mode while already running in test mode, but emit a warning', () => {\n const { reporter } = configForTest()\n config({ mode: 'production' })\n expect(reporter.getLogMessageWithLevel()).toEqual('(WARN) already configured for test, ignoring config() call')\n})\n\ntest('allow calling config in test mode again while in test mode. Emit no warning', () => {\n const { reporter } = configForTest()\n config({ mode: 'test' })\n expect(reporter.getLogMessageWithLevel()).toEqual('')\n})\n\n\ntest('add custom levels', () => {\n config({\n customLevels: {\n 'urgent': 80\n }\n })\n\n expect(toLogLevelName(80)).toBe('urgent')\n})\n\ntest('configure to use a reporter instance', () => {\n config({\n reporters: [\n createMemoryLogReporter()\n ]\n })\n a.satisfies(store.value.reporters, [{ id: 'memory' }])\n expect(store.value.reporters.length).toBe(1)\n})\n\ntest('configure as development will emit warning', () => {\n const warn = console.warn\n let actual: string\n console.warn = message => actual = message\n config({ mode: 'development' })\n\n expect(actual!).toBe(`'standard-log' is running in 'development' mode. Configuration is not protected.`)\n\n console.warn = warn\n})\n\ntest('config.configured', () => {\n expect(config.isLocked).toBeFalsy()\n config({ mode: 'test' })\n expect(config.isLocked).toBe(true)\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConsoleLogReporter.d.ts","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAa,MAAM,aAAa,CAAA;AAItF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,oBAAY,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAC1E,oBAAY,mBAAmB,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;AACrD,oBAAY,yBAAyB,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAA;AAEjE,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"createConsoleLogReporter.d.ts","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAa,MAAM,aAAa,CAAA;AAItF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,oBAAY,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAC1E,oBAAY,mBAAmB,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAA;AACrD,oBAAY,yBAAyB,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAA;AAEjE,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,kBAAkB,CAmChG"}
|
|
@@ -17,14 +17,14 @@ function createConsoleLogReporter(options) {
|
|
|
17
17
|
return formatter;
|
|
18
18
|
},
|
|
19
19
|
set formatter(value) {
|
|
20
|
-
(0, utils_js_1.assertLogModeIsNotProduction)('set Reporter.formatter');
|
|
20
|
+
(0, utils_js_1.assertLogModeIsNotProduction)('set Reporter.formatter', Object.getOwnPropertyDescriptor(this, 'formatter').set);
|
|
21
21
|
formatter = value;
|
|
22
22
|
},
|
|
23
23
|
get filter() {
|
|
24
24
|
return filter;
|
|
25
25
|
},
|
|
26
26
|
set filter(value) {
|
|
27
|
-
(0, utils_js_1.assertLogModeIsNotProduction)('set Reporter.filter');
|
|
27
|
+
(0, utils_js_1.assertLogModeIsNotProduction)('set Reporter.filter', Object.getOwnPropertyDescriptor(this, 'filter').set);
|
|
28
28
|
filter = value;
|
|
29
29
|
},
|
|
30
30
|
console: polyfilledConsole_js_1.polyfilledConsole,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConsoleLogReporter.js","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AACpC,kDAAyD;AAEzD,wCAA0D;AAC1D,+DAA0D;AAC1D,2DAAsD;AAOtD,SAAgB,wBAAwB,CAAC,OAAmC;IAC1E,IAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,4BAAiB,EAAE,EAAE,OAAO,CAAC,CAAA;IACvE,IAAA,EAAE,GAAK,IAAI,GAAT,CAAS;IACb,IAAA,SAAS,GAAa,IAAI,UAAjB,EAAE,MAAM,GAAK,IAAI,OAAT,CAAS;IAChC,OAAO;QACL,EAAE,IAAA;QACF,iBAAiB,EAAE,IAAI;QACvB,IAAI,SAAS;YACX,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,SAAS,CAAC,KAA0B;YACtC,IAAA,uCAA4B,
|
|
1
|
+
{"version":3,"file":"createConsoleLogReporter.js","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AACpC,kDAAyD;AAEzD,wCAA0D;AAC1D,+DAA0D;AAC1D,2DAAsD;AAOtD,SAAgB,wBAAwB,CAAC,OAAmC;IAC1E,IAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,4BAAiB,EAAE,EAAE,OAAO,CAAC,CAAA;IACvE,IAAA,EAAE,GAAK,IAAI,GAAT,CAAS;IACb,IAAA,SAAS,GAAa,IAAI,UAAjB,EAAE,MAAM,GAAK,IAAI,OAAT,CAAS;IAChC,OAAO;QACL,EAAE,IAAA;QACF,iBAAiB,EAAE,IAAI;QACvB,IAAI,SAAS;YACX,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,SAAS,CAAC,KAA0B;YACtC,IAAA,uCAA4B,EAC1B,wBAAwB,EACxB,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,WAAW,CAAE,CAAC,GAAI,CACzD,CAAA;YACD,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;QACD,IAAI,MAAM;YACR,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,MAAM,CAAC,KAAgB;YACzB,IAAA,uCAA4B,EAC1B,qBAAqB,EACrB,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAE,CAAC,GAAI,CACtD,CAAA;YACD,MAAM,GAAG,KAAK,CAAA;QAChB,CAAC;QACD,OAAO,EAAE,wCAAiB;QAC1B,KAAK,YAAC,KAAK;;YACT,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAM;YACpC,IAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAM,MAAM,GAAG,IAAA,oCAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC3C,CAAA,KAAA,IAAI,CAAC,OAAO,CAAA,CAAC,MAAM,CAAC,WAAI,MAAM,EAAC;QACjC,CAAC;KACF,CAAA;AACH,CAAC;AAnCD,4DAmCC","sourcesContent":["import { required } from 'type-plus'\nimport { plainLogFormatter } from '../formatter/index.js'\nimport { LogFormatter, LogReporter, LogReporterOptions, LogFilter } from '../types.js'\nimport { assertLogModeIsNotProduction } from '../utils.js'\nimport { polyfilledConsole } from './polyfilledConsole.js'\nimport { toConsoleMethod } from './toConsoleMethod.js'\nimport { Console } from './types.js'\n\nexport type ConsoleLogReporter = LogReporter<any[]> & { console: Console }\nexport type ConsoleLogFormatter = LogFormatter<any[]>\nexport type ConsoleLogReporterOptions = LogReporterOptions<any[]>\n\nexport function createConsoleLogReporter(options?: ConsoleLogReporterOptions): ConsoleLogReporter {\n const opts = required({ id: 'console', formatter: plainLogFormatter }, options)\n const { id } = opts\n let { formatter, filter } = opts\n return {\n id,\n isConsoleReporter: true,\n get formatter() {\n return formatter\n },\n set formatter(value: ConsoleLogFormatter) {\n assertLogModeIsNotProduction(\n 'set Reporter.formatter',\n Object.getOwnPropertyDescriptor(this, 'formatter')!.set!\n )\n formatter = value\n },\n get filter() {\n return filter\n },\n set filter(value: LogFilter) {\n assertLogModeIsNotProduction(\n 'set Reporter.filter',\n Object.getOwnPropertyDescriptor(this, 'filter')!.set!\n )\n filter = value\n },\n console: polyfilledConsole,\n write(entry) {\n if (filter && !filter(entry)) return\n const values = formatter(entry)\n const method = toConsoleMethod(entry.level)\n this.console[method](...values)\n }\n }\n}\n"]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var assertron_1 = __importDefault(require("assertron"));
|
|
7
7
|
var index_js_1 = require("../index.js");
|
|
8
8
|
var store_js_1 = require("../store.js");
|
|
9
|
+
var testUtil_js_1 = require("../testUtil.js");
|
|
9
10
|
describe('production checks', function () {
|
|
10
11
|
beforeEach(function () { return store_js_1.store.reset(); });
|
|
11
12
|
test('set filter during production mode throws', function () {
|
|
@@ -13,12 +14,24 @@ describe('production checks', function () {
|
|
|
13
14
|
var reporter = (0, index_js_1.createConsoleLogReporter)();
|
|
14
15
|
assertron_1.default.throws(function () { reporter.filter = function () { return true; }; }, index_js_1.ProhibitedDuringProduction);
|
|
15
16
|
});
|
|
17
|
+
it('set filter throws with ssf at call site', function () {
|
|
18
|
+
(0, index_js_1.config)({ mode: 'production' });
|
|
19
|
+
var reporter = (0, index_js_1.createConsoleLogReporter)();
|
|
20
|
+
var err = assertron_1.default.throws(function () { reporter.filter = function () { return true; }; }, index_js_1.ProhibitedDuringProduction);
|
|
21
|
+
(0, testUtil_js_1.assertSSF)(err, __filename);
|
|
22
|
+
});
|
|
16
23
|
var idFormatter = function (entry) { return [entry.id]; };
|
|
17
24
|
test('set formatter during production mode throws', function () {
|
|
18
25
|
(0, index_js_1.config)({ mode: 'production' });
|
|
19
26
|
var reporter = (0, index_js_1.createConsoleLogReporter)();
|
|
20
27
|
assertron_1.default.throws(function () { return reporter.formatter = idFormatter; }, index_js_1.ProhibitedDuringProduction);
|
|
21
28
|
});
|
|
29
|
+
it('set formatter throws with ssf at call site', function () {
|
|
30
|
+
(0, index_js_1.config)({ mode: 'production' });
|
|
31
|
+
var reporter = (0, index_js_1.createConsoleLogReporter)();
|
|
32
|
+
var err = assertron_1.default.throws(function () { return reporter.formatter = idFormatter; }, index_js_1.ProhibitedDuringProduction);
|
|
33
|
+
(0, testUtil_js_1.assertSSF)(err, __filename);
|
|
34
|
+
});
|
|
22
35
|
});
|
|
23
36
|
describe('unit tests', function () {
|
|
24
37
|
beforeEach(function () { return (0, index_js_1.configForTest)(); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConsoleLogReporter.spec.js","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import a from 'assertron'\nimport {\n addCustomLogLevel, clearCustomLogLevel, config, configForTest,\n ConsoleLogFormatter, createConsoleLogReporter,\n LogFilter, logLevels, plainLogFormatter, ProhibitedDuringProduction\n} from '../index.js'\nimport { store } from '../store.js'\n\ndescribe('production checks', () => {\n beforeEach(() => store.reset())\n\n test('set filter during production mode throws', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n a.throws(() => { reporter.filter = () => true }, ProhibitedDuringProduction)\n })\n\n const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n test('set formatter during production mode throws', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n a.throws(() => reporter.formatter = idFormatter, ProhibitedDuringProduction)\n })\n})\n\n\ndescribe('unit tests', () => {\n beforeEach(() => configForTest())\n\n describe('rendering tests', () => {\n test('plain rendering', () => {\n const reporter = createConsoleLogReporter({ formatter: plainLogFormatter });\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'plain', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n })\n\n describe('id', () => {\n test('default is \"console\"', () => {\n const reporter = createConsoleLogReporter()\n expect(reporter.id).toBe('console')\n })\n test('can be overridden', () => {\n const reporter = createConsoleLogReporter({ id: 'neo-console' })\n expect(reporter.id).toBe('neo-console')\n })\n })\n\n describe('log level', () => {\n test('error, alert, critical and emergency logs are written to console.error', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(4)\n })\n\n test('warn logs are written to console.warn', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() })\n\n expect(fakeConsole.warns.length).toBe(1)\n })\n\n test('notice and info logs are written to console.info', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() })\n\n expect(fakeConsole.infos.length).toBe(2)\n })\n\n\n test('debug, trace, and planck logs are written to console.debug', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() })\n\n expect(fakeConsole.debugs.length).toBe(3)\n })\n })\n\n describe('custom logs', () => {\n afterEach(() => clearCustomLogLevel())\n\n test('are written according to their log level value', () => {\n addCustomLogLevel('high', 50)\n addCustomLogLevel('important', 450)\n addCustomLogLevel('interest', 650)\n addCustomLogLevel('silly', 1000)\n\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() })\n reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() })\n reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() })\n reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(1)\n expect(fakeConsole.warns.length).toBe(1)\n expect(fakeConsole.infos.length).toBe(1)\n expect(fakeConsole.debugs.length).toBe(1)\n })\n })\n\n const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n\n describe('formatter', () => {\n test('use specific formatter', () => {\n const id = 'id-only'\n const reporter = createConsoleLogReporter({ formatter: idFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n\n test('formatter can be changed afterward', () => {\n const reporter = createConsoleLogReporter()\n const formatter = reporter.formatter\n reporter.formatter = idFormatter\n expect(reporter.formatter).not.toEqual(formatter)\n })\n })\n\n describe('filter', () => {\n const filter: LogFilter = (entry) => entry.id !== 'secret'\n test('use specific filter', () => {\n const reporter = createConsoleLogReporter({ formatter: idFormatter, filter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['normal']])\n })\n\n test('can change filter', () => {\n const reporter = createConsoleLogReporter()\n const filter = reporter.filter\n reporter.filter = entry => entry.id !== 'secret'\n expect(reporter.filter).not.toEqual(filter)\n })\n })\n\n test('write log entry with multiple arguments', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter({ formatter: plainLogFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() }\n\n reporter.write(entry)\n\n expect(fakeConsole.infos).toEqual([\n [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']\n ])\n })\n})\n\n\nfunction createFakeConsole() {\n const errors: any[] = []\n const infos: any[] = []\n const warns: any[] = []\n const debugs: any[] = []\n return {\n errors,\n infos,\n warns,\n debugs,\n error(...args: any[]) { errors.push(args) },\n info(...args: any[]) { infos.push(args) },\n warn(...args: any[]) { warns.push(args) },\n debug(...args: any[]) { debugs.push(args) }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"createConsoleLogReporter.spec.js","sourceRoot":"","sources":["../../ts/console/createConsoleLogReporter.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import a from 'assertron'\nimport {\n addCustomLogLevel, clearCustomLogLevel, config, configForTest,\n ConsoleLogFormatter, createConsoleLogReporter,\n LogFilter, logLevels, plainLogFormatter, ProhibitedDuringProduction\n} from '../index.js'\nimport { store } from '../store.js'\nimport { assertSSF } from '../testUtil.js'\n\ndescribe('production checks', () => {\n beforeEach(() => store.reset())\n\n test('set filter during production mode throws', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n a.throws(() => { reporter.filter = () => true }, ProhibitedDuringProduction)\n })\n\n it('set filter throws with ssf at call site', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n const err = a.throws(() => { reporter.filter = () => true }, ProhibitedDuringProduction)\n\n assertSSF(err, __filename)\n })\n\n const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n test('set formatter during production mode throws', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n a.throws(() => reporter.formatter = idFormatter, ProhibitedDuringProduction)\n })\n it('set formatter throws with ssf at call site', () => {\n config({ mode: 'production' })\n const reporter = createConsoleLogReporter()\n const err = a.throws(() => reporter.formatter = idFormatter, ProhibitedDuringProduction)\n\n assertSSF(err, __filename)\n })\n})\n\n\ndescribe('unit tests', () => {\n beforeEach(() => configForTest())\n\n describe('rendering tests', () => {\n test('plain rendering', () => {\n const reporter = createConsoleLogReporter({ formatter: plainLogFormatter });\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'plain', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n })\n\n describe('id', () => {\n test('default is \"console\"', () => {\n const reporter = createConsoleLogReporter()\n expect(reporter.id).toBe('console')\n })\n test('can be overridden', () => {\n const reporter = createConsoleLogReporter({ id: 'neo-console' })\n expect(reporter.id).toBe('neo-console')\n })\n })\n\n describe('log level', () => {\n test('error, alert, critical and emergency logs are written to console.error', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(4)\n })\n\n test('warn logs are written to console.warn', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() })\n\n expect(fakeConsole.warns.length).toBe(1)\n })\n\n test('notice and info logs are written to console.info', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() })\n\n expect(fakeConsole.infos.length).toBe(2)\n })\n\n\n test('debug, trace, and planck logs are written to console.debug', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() })\n\n expect(fakeConsole.debugs.length).toBe(3)\n })\n })\n\n describe('custom logs', () => {\n afterEach(() => clearCustomLogLevel())\n\n test('are written according to their log level value', () => {\n addCustomLogLevel('high', 50)\n addCustomLogLevel('important', 450)\n addCustomLogLevel('interest', 650)\n addCustomLogLevel('silly', 1000)\n\n const id = 'log'\n const reporter = createConsoleLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() })\n reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() })\n reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() })\n reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(1)\n expect(fakeConsole.warns.length).toBe(1)\n expect(fakeConsole.infos.length).toBe(1)\n expect(fakeConsole.debugs.length).toBe(1)\n })\n })\n\n const idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n\n describe('formatter', () => {\n test('use specific formatter', () => {\n const id = 'id-only'\n const reporter = createConsoleLogReporter({ formatter: idFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n\n test('formatter can be changed afterward', () => {\n const reporter = createConsoleLogReporter()\n const formatter = reporter.formatter\n reporter.formatter = idFormatter\n expect(reporter.formatter).not.toEqual(formatter)\n })\n })\n\n describe('filter', () => {\n const filter: LogFilter = (entry) => entry.id !== 'secret'\n test('use specific filter', () => {\n const reporter = createConsoleLogReporter({ formatter: idFormatter, filter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['normal']])\n })\n\n test('can change filter', () => {\n const reporter = createConsoleLogReporter()\n const filter = reporter.filter\n reporter.filter = entry => entry.id !== 'secret'\n expect(reporter.filter).not.toEqual(filter)\n })\n })\n\n test('write log entry with multiple arguments', () => {\n const id = 'log'\n const reporter = createConsoleLogReporter({ formatter: plainLogFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() }\n\n reporter.write(entry)\n\n expect(fakeConsole.infos).toEqual([\n [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']\n ])\n })\n})\n\n\nfunction createFakeConsole() {\n const errors: any[] = []\n const infos: any[] = []\n const warns: any[] = []\n const debugs: any[] = []\n return {\n errors,\n infos,\n warns,\n debugs,\n error(...args: any[]) { errors.push(args) },\n info(...args: any[]) { infos.push(args) },\n warn(...args: any[]) { warns.push(args) },\n debug(...args: any[]) { debugs.push(args) }\n }\n}\n"]}
|
package/cjs/errors.d.ts
CHANGED
|
@@ -4,16 +4,16 @@ export declare class StandardLogError extends ModuleError {
|
|
|
4
4
|
}
|
|
5
5
|
export declare class InvalidId extends StandardLogError {
|
|
6
6
|
id: string;
|
|
7
|
-
constructor(id: string);
|
|
7
|
+
constructor(id: string, options?: IsoError.Options);
|
|
8
8
|
}
|
|
9
9
|
export declare class ProhibitedDuringProduction extends StandardLogError {
|
|
10
10
|
action: string;
|
|
11
|
-
constructor(action: string);
|
|
11
|
+
constructor(action: string, options?: IsoError.Options);
|
|
12
12
|
}
|
|
13
13
|
export declare class InvalidEnvVar extends StandardLogError {
|
|
14
14
|
name: string;
|
|
15
15
|
value: string;
|
|
16
16
|
possibleValues: string[];
|
|
17
|
-
constructor(name: string, value: string, possibleValues: string[]);
|
|
17
|
+
constructor(name: string, value: string, possibleValues: string[], options?: IsoError.Options);
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=errors.d.ts.map
|
package/cjs/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEjD,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO;CAG5D;AACD,qBAAa,SAAU,SAAQ,gBAAgB;IAC1B,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEjD,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO;CAG5D;AACD,qBAAa,SAAU,SAAQ,gBAAgB;IAC1B,EAAE,EAAE,MAAM;gBAAV,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO;CAG1D;AAED,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC3C,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO;CAG9D;AAED,qBAAa,aAAc,SAAQ,gBAAgB;IAC9B,IAAI,EAAE,MAAM;IAAS,KAAK,EAAE,MAAM;IAAS,cAAc,EAAE,MAAM,EAAE;gBAAnE,IAAI,EAAE,MAAM,EAAS,KAAK,EAAE,MAAM,EAAS,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO;CAGnH"}
|
package/cjs/errors.js
CHANGED
|
@@ -27,8 +27,8 @@ var StandardLogError = /** @class */ (function (_super) {
|
|
|
27
27
|
exports.StandardLogError = StandardLogError;
|
|
28
28
|
var InvalidId = /** @class */ (function (_super) {
|
|
29
29
|
__extends(InvalidId, _super);
|
|
30
|
-
function InvalidId(id) {
|
|
31
|
-
var _this = _super.call(this, "logger id only supports alphanumeric, unicode characters, and [:_-.]. Received ".concat(id)) || this;
|
|
30
|
+
function InvalidId(id, options) {
|
|
31
|
+
var _this = _super.call(this, "logger id only supports alphanumeric, unicode characters, and [:_-.]. Received ".concat(id), options) || this;
|
|
32
32
|
Object.defineProperty(_this, "id", {
|
|
33
33
|
enumerable: true,
|
|
34
34
|
configurable: true,
|
|
@@ -42,8 +42,8 @@ var InvalidId = /** @class */ (function (_super) {
|
|
|
42
42
|
exports.InvalidId = InvalidId;
|
|
43
43
|
var ProhibitedDuringProduction = /** @class */ (function (_super) {
|
|
44
44
|
__extends(ProhibitedDuringProduction, _super);
|
|
45
|
-
function ProhibitedDuringProduction(action) {
|
|
46
|
-
var _this = _super.call(this, "Cannot perform ".concat(action, " during production")) || this;
|
|
45
|
+
function ProhibitedDuringProduction(action, options) {
|
|
46
|
+
var _this = _super.call(this, "Cannot perform ".concat(action, " during production"), options) || this;
|
|
47
47
|
Object.defineProperty(_this, "action", {
|
|
48
48
|
enumerable: true,
|
|
49
49
|
configurable: true,
|
|
@@ -57,8 +57,8 @@ var ProhibitedDuringProduction = /** @class */ (function (_super) {
|
|
|
57
57
|
exports.ProhibitedDuringProduction = ProhibitedDuringProduction;
|
|
58
58
|
var InvalidEnvVar = /** @class */ (function (_super) {
|
|
59
59
|
__extends(InvalidEnvVar, _super);
|
|
60
|
-
function InvalidEnvVar(name, value, possibleValues) {
|
|
61
|
-
var _this = _super.call(this, "".concat(name, " contains invalid value '").concat(value, "'").concat(" valid values: [".concat(possibleValues.join(), "]"))) || this;
|
|
60
|
+
function InvalidEnvVar(name, value, possibleValues, options) {
|
|
61
|
+
var _this = _super.call(this, "".concat(name, " contains invalid value '").concat(value, "'").concat(" valid values: [".concat(possibleValues.join(), "]")), options) || this;
|
|
62
62
|
Object.defineProperty(_this, "name", {
|
|
63
63
|
enumerable: true,
|
|
64
64
|
configurable: true,
|
package/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAiD;AAEjD;IAAsC,oCAAW;IAC/C,0BAAY,WAAmB,EAAE,OAA0B;eACzD,kBAAM,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC;IAC7C,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,CAAsC,uBAAW,GAIhD;AAJY,4CAAgB;AAK7B;IAA+B,6BAAgB;IAC7C,mBAAmB,EAAU;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../ts/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAiD;AAEjD;IAAsC,oCAAW;IAC/C,0BAAY,WAAmB,EAAE,OAA0B;eACzD,kBAAM,cAAc,EAAE,WAAW,EAAE,OAAO,CAAC;IAC7C,CAAC;IACH,uBAAC;AAAD,CAAC,AAJD,CAAsC,uBAAW,GAIhD;AAJY,4CAAgB;AAK7B;IAA+B,6BAAgB;IAC7C,mBAAmB,EAAU,EAAE,OAA0B;QAAzD,YACE,kBAAM,yFAAkF,EAAE,CAAE,EAAE,OAAO,CAAC,SACvG;;;;;mBAFkB;;;IAEnB,CAAC;IACH,gBAAC;AAAD,CAAC,AAJD,CAA+B,gBAAgB,GAI9C;AAJY,8BAAS;AAMtB;IAAgD,8CAAgB;IAC9D,oCAAmB,MAAc,EAAE,OAA0B;QAA7D,YACE,kBAAM,yBAAkB,MAAM,uBAAoB,EAAE,OAAO,CAAC,SAC7D;;;;;mBAFkB;;;IAEnB,CAAC;IACH,iCAAC;AAAD,CAAC,AAJD,CAAgD,gBAAgB,GAI/D;AAJY,gEAA0B;AAMvC;IAAmC,iCAAgB;IACjD,uBAAmB,IAAY,EAAS,KAAa,EAAS,cAAwB,EAAE,OAA0B;QAAlH,YACE,kBAAM,UAAG,IAAI,sCAA4B,KAAK,cAAI,0BAAmB,cAAc,CAAC,IAAI,EAAE,MAAG,CAAE,EAAE,OAAO,CAAC,SAC1G;;;;;mBAFkB;;;;;;mBAAqB;;;;;;mBAAsB;;;IAE9D,CAAC;IACH,oBAAC;AAAD,CAAC,AAJD,CAAmC,gBAAgB,GAIlD;AAJY,sCAAa","sourcesContent":["import { IsoError, ModuleError } from 'iso-error'\n\nexport class StandardLogError extends ModuleError {\n constructor(description: string, options?: IsoError.Options) {\n super('standard-log', description, options)\n }\n}\nexport class InvalidId extends StandardLogError {\n constructor(public id: string, options?: IsoError.Options) {\n super(`logger id only supports alphanumeric, unicode characters, and [:_-.]. Received ${id}`, options)\n }\n}\n\nexport class ProhibitedDuringProduction extends StandardLogError {\n constructor(public action: string, options?: IsoError.Options) {\n super(`Cannot perform ${action} during production`, options)\n }\n}\n\nexport class InvalidEnvVar extends StandardLogError {\n constructor(public name: string, public value: string, public possibleValues: string[], options?: IsoError.Options) {\n super(`${name} contains invalid value '${value}'${` valid values: [${possibleValues.join()}]`}`, options)\n }\n}\n"]}
|
|
@@ -8,7 +8,7 @@ function getLogModeFromEnvironment() {
|
|
|
8
8
|
if (mode === undefined || isLogMode(mode)) {
|
|
9
9
|
return mode;
|
|
10
10
|
}
|
|
11
|
-
throw new errors_js_1.InvalidEnvVar('STANDARD_LOG', mode, logModeValues);
|
|
11
|
+
throw new errors_js_1.InvalidEnvVar('STANDARD_LOG', mode, logModeValues, { ssf: getLogModeFromEnvironment });
|
|
12
12
|
}
|
|
13
13
|
exports.getLogModeFromEnvironment = getLogModeFromEnvironment;
|
|
14
14
|
function isLogMode(mode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLogModeFromEnvironment.js","sourceRoot":"","sources":["../ts/getLogModeFromEnvironment.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,IAAM,aAAa,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;AAE3D,SAAgB,yBAAyB;IACvC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;IACrC,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;QACzC,OAAO,IAAe,CAAA;KACvB;IACD,MAAM,IAAI,yBAAa,CAAC,cAAc,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"getLogModeFromEnvironment.js","sourceRoot":"","sources":["../ts/getLogModeFromEnvironment.ts"],"names":[],"mappings":";;;AAAA,yCAA2C;AAG3C,IAAM,aAAa,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;AAE3D,SAAgB,yBAAyB;IACvC,IAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;IACrC,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;QACzC,OAAO,IAAe,CAAA;KACvB;IACD,MAAM,IAAI,yBAAa,CAAC,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,yBAAyB,EAAE,CAAC,CAAA;AAClG,CAAC;AAND,8DAMC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3C,CAAC","sourcesContent":["import { InvalidEnvVar } from './errors.js'\nimport { LogMode } from './types.js'\n\nconst logModeValues = ['production', 'development', 'test']\n\nexport function getLogModeFromEnvironment(): LogMode | undefined {\n const mode = process.env.STANDARD_LOG\n if (mode === undefined || isLogMode(mode)) {\n return mode as LogMode\n }\n throw new InvalidEnvVar('STANDARD_LOG', mode, logModeValues, { ssf: getLogModeFromEnvironment })\n}\n\nfunction isLogMode(mode: string): mode is LogMode {\n return logModeValues.indexOf(mode) !== -1\n}\n"]}
|
|
@@ -6,10 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var assertron_1 = __importDefault(require("assertron"));
|
|
7
7
|
var index_js_1 = require("./index.js");
|
|
8
8
|
var getLogModeFromEnvironment_js_1 = require("./getLogModeFromEnvironment.js");
|
|
9
|
+
var testUtil_js_1 = require("./testUtil.js");
|
|
9
10
|
test('invalid value throws', function () {
|
|
10
11
|
process.env.STANDARD_LOG = 'unknown';
|
|
11
12
|
assertron_1.default.throws(function () { return (0, getLogModeFromEnvironment_js_1.getLogModeFromEnvironment)(); }, index_js_1.InvalidEnvVar);
|
|
12
13
|
});
|
|
14
|
+
it('throws with ssf at call site', function () {
|
|
15
|
+
process.env.STANDARD_LOG = 'unknown';
|
|
16
|
+
var err = assertron_1.default.throws(function () { return (0, getLogModeFromEnvironment_js_1.getLogModeFromEnvironment)(); }, index_js_1.InvalidEnvVar);
|
|
17
|
+
(0, testUtil_js_1.assertSSF)(err, __filename);
|
|
18
|
+
});
|
|
13
19
|
test('valid values', function () {
|
|
14
20
|
process.env.STANDARD_LOG = 'production';
|
|
15
21
|
expect((0, getLogModeFromEnvironment_js_1.getLogModeFromEnvironment)()).toBe('production');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLogModeFromEnvironment.spec.js","sourceRoot":"","sources":["../ts/getLogModeFromEnvironment.spec.ts"],"names":[],"mappings":";;;;;AAAA,wDAAyB;AACzB,uCAA0C;AAC1C,+EAA0E;
|
|
1
|
+
{"version":3,"file":"getLogModeFromEnvironment.spec.js","sourceRoot":"","sources":["../ts/getLogModeFromEnvironment.spec.ts"],"names":[],"mappings":";;;;;AAAA,wDAAyB;AACzB,uCAA0C;AAC1C,+EAA0E;AAC1E,6CAAyC;AAEzC,IAAI,CAAC,sBAAsB,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAA;IACpC,mBAAC,CAAC,MAAM,CAAC,cAAM,OAAA,IAAA,wDAAyB,GAAE,EAA3B,CAA2B,EAAE,wBAAa,CAAC,CAAA;AAC5D,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,8BAA8B,EAAE;IACjC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,SAAS,CAAA;IACpC,IAAM,GAAG,GAAG,mBAAC,CAAC,MAAM,CAAC,cAAM,OAAA,IAAA,wDAAyB,GAAE,EAA3B,CAA2B,EAAE,wBAAa,CAAC,CAAA;IACtE,IAAA,uBAAS,EAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,cAAc,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,YAAY,CAAA;IACvC,MAAM,CAAC,IAAA,wDAAyB,GAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,aAAa,CAAA;IACxC,MAAM,CAAC,IAAA,wDAAyB,GAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA","sourcesContent":["import a from 'assertron'\nimport { InvalidEnvVar } from './index.js'\nimport { getLogModeFromEnvironment } from './getLogModeFromEnvironment.js'\nimport { assertSSF } from './testUtil.js'\n\ntest('invalid value throws', () => {\n process.env.STANDARD_LOG = 'unknown'\n a.throws(() => getLogModeFromEnvironment(), InvalidEnvVar)\n})\n\nit('throws with ssf at call site', () => {\n process.env.STANDARD_LOG = 'unknown'\n const err = a.throws(() => getLogModeFromEnvironment(), InvalidEnvVar)\n assertSSF(err, __filename)\n})\n\ntest('valid values', () => {\n process.env.STANDARD_LOG = 'production'\n expect(getLogModeFromEnvironment()).toBe('production')\n\n process.env.STANDARD_LOG = 'development'\n expect(getLogModeFromEnvironment()).toBe('development')\n})\n"]}
|
package/cjs/getLogger.js
CHANGED
|
@@ -27,7 +27,7 @@ function getLogger(id, options) {
|
|
|
27
27
|
exports.getLogger = getLogger;
|
|
28
28
|
function validateId(id) {
|
|
29
29
|
if (/[`~!#$%^&*()=+[\]{},|<>?]/.test(id))
|
|
30
|
-
throw new errors_js_1.InvalidId(id);
|
|
30
|
+
throw new errors_js_1.InvalidId(id, { ssf: getLogger });
|
|
31
31
|
}
|
|
32
32
|
function createLoggerClosure(id, _a) {
|
|
33
33
|
var _b = _a === void 0 ? {} : _a, level = _b.level, _c = _b.writeTo, writeTo = _c === void 0 ? function () { return true; } : _c;
|
package/cjs/getLogger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLogger.js","sourceRoot":"","sources":["../ts/getLogger.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuC;AACvC,6CAAyC;AACzC,iDAA6E;AAC7E,mEAAiE;AACjE,+CAA0C;AAC1C,uCAAkC;AAGlC,6DAAwD;AASxD,SAAgB,SAAS,CACvB,EAAU,EAAE,OAA2B;IAEvC,UAAU,CAAC,EAAE,CAAC,CAAA;IACd,IAAM,cAAc,GAAG,gBAAK,CAAC,KAAK,CAAC,cAAc,CAAA;IACjD,IAAM,aAAa,GAAQ,cAAc,CAAC,EAAE,CAAC;QAC3C,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAqB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7E,OAAO,aAAa,CAAC,MAAM,CAAA;AAC7B,CAAC;AARD,8BAQC;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,qBAAS,CAAC,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"getLogger.js","sourceRoot":"","sources":["../ts/getLogger.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidId } from './errors.js'\nimport { logLevels } from './logLevel.js'\nimport { getAllLogLevels, toLogLevel, toLogLevelName } from './logLevelFn.js'\nimport { addLogReporterInternal } from './logReporterInternal.js'\nimport { shouldLog } from './shouldLog.js'\nimport { store } from './store.js'\nimport { LogEntry, LogFunction, Logger, LogMethodNames, LogReporter, ReporterFilter } from './types.js'\nimport { LoggerClosure } from './typesInternal.js'\nimport { writeToReporters } from './writeToReporters.js'\n\nexport namespace getLogger {\n export type Options = {\n level?: number,\n writeTo?: LogReporter | ReporterFilter\n }\n}\n\nexport function getLogger<T extends string = LogMethodNames>(\n id: string, options?: getLogger.Options\n): Logger<T | LogMethodNames> {\n validateId(id)\n const loggerClosures = store.value.loggerClosures\n const loggerClosure: any = loggerClosures[id] ||\n (loggerClosures[id] = createLoggerClosure<T | LogMethodNames>(id, options))\n return loggerClosure.logger\n}\n\nfunction validateId(id: string) {\n if (/[`~!#$%^&*()=+[\\]{},|<>?]/.test(id)) throw new InvalidId(id, { ssf: getLogger })\n}\n\nfunction createLoggerClosure<T extends string>(id: string, { level, writeTo = () => true }: getLogger.Options = {}): LoggerClosure<T> {\n const filter: (reporterId: string) => boolean = typeof writeTo === 'string'\n ? id => id === writeTo\n : writeTo instanceof RegExp\n ? id => writeTo.test(id)\n : typeof writeTo === 'function'\n ? writeTo\n : (addLogReporterInternal(writeTo), id => id === writeTo.id)\n\n function write(entry: LogEntry) {\n writeToReporters(entry, filter)\n }\n const logger = {\n level,\n write\n } as any\n\n Object.defineProperties(logger, {\n id: { value: id, writable: false },\n count: {\n writable: false,\n value: ((counter) => (...args: any[]) => {\n const level = logLevels.debug\n if (shouldLog(level, logger.level))\n write({\n id,\n level,\n args: [++counter, ...args],\n timestamp: new Date()\n })\n })(0)\n },\n on: {\n writable: false,\n value: (level: number | T, logFn: LogFunction) => {\n const logLevel = typeof level === 'string' ? toLogLevel(level)! : level\n if (shouldLog(logLevel, logger.level)) {\n const methodName = toLogLevelName(logLevel)\n const bindedMethod = logger[methodName].bind(logger)\n const result = logFn(bindedMethod)\n if (result) bindedMethod(result)\n }\n }\n }\n })\n const loggerClosure: LoggerClosure<T> = {\n addMethod(name, level) {\n Object.defineProperty(logger, name, {\n writable: false,\n value: (...args: any[]) => {\n if (shouldLog(level, logger.level)) write({ id, level, args, timestamp: new Date() })\n }\n })\n },\n logger\n }\n\n getAllLogLevels().forEach(({ name, level }) => loggerClosure.addMethod(name, level))\n\n return loggerClosure\n}\n"]}
|
package/cjs/getLogger.spec.js
CHANGED
|
@@ -63,6 +63,10 @@ test('logger id supports @, \\ and /', function () {
|
|
|
63
63
|
test.each('`~!#$%^&*()=+|[]{}<>,?'.split(''))('throws if id has unsupported character %s', function (char) {
|
|
64
64
|
assertron_1.default.throws(function () { return (0, index_js_1.getLogger)(char); }, index_js_1.InvalidId);
|
|
65
65
|
});
|
|
66
|
+
it('throw InvalidId with ssf to the call site', function () {
|
|
67
|
+
var err = assertron_1.default.throws(function () { return (0, index_js_1.getLogger)('!'); }, index_js_1.InvalidId);
|
|
68
|
+
(0, testUtil_js_1.assertSSF)(err, __filename);
|
|
69
|
+
});
|
|
66
70
|
test('get logger with same name gets the same instance', function () {
|
|
67
71
|
var expected = (0, index_js_1.getLogger)('same-inst');
|
|
68
72
|
var actual = (0, index_js_1.getLogger)('same-inst');
|