Permalink
Cannot retrieve contributors at this time
93 lines (93 sloc)
2.4 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/@azure/logger/dist-esm/src/debug.js
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copyright (c) Microsoft Corporation. | |
// Licensed under the MIT license. | |
import { log } from "./log"; | |
const debugEnvVariable = (typeof process !== "undefined" && process.env && process.env.DEBUG) || undefined; | |
let enabledString; | |
let enabledNamespaces = []; | |
let skippedNamespaces = []; | |
const debuggers = []; | |
if (debugEnvVariable) { | |
enable(debugEnvVariable); | |
} | |
const debugObj = Object.assign((namespace) => { | |
return createDebugger(namespace); | |
}, { | |
enable, | |
enabled, | |
disable, | |
log, | |
}); | |
function enable(namespaces) { | |
enabledString = namespaces; | |
enabledNamespaces = []; | |
skippedNamespaces = []; | |
const wildcard = /\*/g; | |
const namespaceList = namespaces.split(",").map((ns) => ns.trim().replace(wildcard, ".*?")); | |
for (const ns of namespaceList) { | |
if (ns.startsWith("-")) { | |
skippedNamespaces.push(new RegExp(`^${ns.substr(1)}$`)); | |
} | |
else { | |
enabledNamespaces.push(new RegExp(`^${ns}$`)); | |
} | |
} | |
for (const instance of debuggers) { | |
instance.enabled = enabled(instance.namespace); | |
} | |
} | |
function enabled(namespace) { | |
if (namespace.endsWith("*")) { | |
return true; | |
} | |
for (const skipped of skippedNamespaces) { | |
if (skipped.test(namespace)) { | |
return false; | |
} | |
} | |
for (const enabledNamespace of enabledNamespaces) { | |
if (enabledNamespace.test(namespace)) { | |
return true; | |
} | |
} | |
return false; | |
} | |
function disable() { | |
const result = enabledString || ""; | |
enable(""); | |
return result; | |
} | |
function createDebugger(namespace) { | |
const newDebugger = Object.assign(debug, { | |
enabled: enabled(namespace), | |
destroy, | |
log: debugObj.log, | |
namespace, | |
extend, | |
}); | |
function debug(...args) { | |
if (!newDebugger.enabled) { | |
return; | |
} | |
if (args.length > 0) { | |
args[0] = `${namespace} ${args[0]}`; | |
} | |
newDebugger.log(...args); | |
} | |
debuggers.push(newDebugger); | |
return newDebugger; | |
} | |
function destroy() { | |
const index = debuggers.indexOf(this); | |
if (index >= 0) { | |
debuggers.splice(index, 1); | |
return true; | |
} | |
return false; | |
} | |
function extend(namespace) { | |
const newDebugger = createDebugger(`${this.namespace}:${namespace}`); | |
newDebugger.log = this.log; | |
return newDebugger; | |
} | |
export default debugObj; | |
//# sourceMappingURL=debug.js.map |