From f0f645e9d3600989977a3dab32f3053b480da769 Mon Sep 17 00:00:00 2001 From: omg Date: Thu, 3 Dec 2020 04:00:41 +0200 Subject: [PATCH] caching enabled status per logger --- src/common.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/common.js b/src/common.js index 392a8e00..42b12f3f 100644 --- a/src/common.js +++ b/src/common.js @@ -60,6 +60,7 @@ function setup(env) { function createDebug(namespace) { let prevTime; let enableOverride = null; + let namespacesCache, enabledCache; function debug(...args) { // Disabled? @@ -120,7 +121,17 @@ function setup(env) { Object.defineProperty(debug, 'enabled', { enumerable: true, configurable: false, - get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, + get: () => { + if (enableOverride !== null) { + return enableOverride + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + + }, set: v => { enableOverride = v; } @@ -149,6 +160,7 @@ function setup(env) { */ function enable(namespaces) { createDebug.save(namespaces); + createDebug.namespaces = namespaces; createDebug.names = []; createDebug.skips = [];