/**
* Selects a color for a debug namespace
- * @param {String} namespace The namespace string for the for the debug instance to be colored
+ * @param {String} namespace The namespace string for the debug instance to be colored
* @return {Number|String} An ANSI color code for the given namespace
* @api private
*/
function createDebug(namespace) {
let prevTime;
let enableOverride = null;
+ let namespacesCache;
+ let enabledCache;
function debug(...args) {
// Disabled?
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;
}
*/
function enable(namespaces) {
createDebug.save(namespaces);
+ createDebug.namespaces = namespaces;
createDebug.names = [];
createDebug.skips = [];