nightingale-debug 11.7.0 → 12.0.0
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/.eslintrc.json +1 -1
- package/CHANGELOG.md +52 -0
- package/dist/index-browser.cjs.js +38 -23
- package/dist/index-browser.cjs.js.map +1 -1
- package/dist/index-browser.es.js +37 -18
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +2 -3
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/{index-browsermodern-dev.es.js → index-node14.cjs.js} +12 -9
- package/dist/index-node14.cjs.js.map +1 -0
- package/dist/{index-node12.mjs → index-node14.mjs} +3 -4
- package/dist/index-node14.mjs.map +1 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/package.json +20 -77
- package/rollup.config.mjs +3 -0
- package/src/index.test.ts +1 -1
- package/src/index.ts +6 -8
- package/dist/index-browser-dev.cjs.js +0 -99
- package/dist/index-browser-dev.cjs.js.map +0 -1
- package/dist/index-browser-dev.es.js +0 -91
- package/dist/index-browser-dev.es.js.map +0 -1
- package/dist/index-browsermodern-dev.es.js.map +0 -1
- package/dist/index-node12-dev.cjs.js +0 -99
- package/dist/index-node12-dev.cjs.js.map +0 -1
- package/dist/index-node12-dev.mjs +0 -91
- package/dist/index-node12-dev.mjs.map +0 -1
- package/dist/index-node12.cjs.js +0 -99
- package/dist/index-node12.cjs.js.map +0 -1
- package/dist/index-node12.mjs.map +0 -1
- package/index.js +0 -6
package/dist/index-node12.cjs.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const Level = require('nightingale-levels');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
8
|
-
|
|
9
|
-
const Level__default = /*#__PURE__*/_interopDefaultLegacy(Level);
|
|
10
|
-
|
|
11
|
-
/* eslint-disable complexity */
|
|
12
|
-
const specialRegexpChars = /[$()+.?[\\\]^{|}]/;
|
|
13
|
-
|
|
14
|
-
const createTestFunctionFromRegexp = regexp => string => regexp.test(string);
|
|
15
|
-
|
|
16
|
-
const createTestFunctionFromRegexpString = value => {
|
|
17
|
-
if (!value.endsWith('/')) throw new Error('Invalid RegExp DEBUG value');
|
|
18
|
-
return createTestFunctionFromRegexp(new RegExp(value.slice(1, -1)));
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const createTestFunctionFromValue = value => {
|
|
22
|
-
if (value.endsWith(':*')) {
|
|
23
|
-
value = value.slice(0, -2);
|
|
24
|
-
return string => string.startsWith(value);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return string => string === value;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
function createFindDebugLevel(debugValue) {
|
|
31
|
-
let isWildcard = false;
|
|
32
|
-
const debugValues = [];
|
|
33
|
-
const skips = [];
|
|
34
|
-
|
|
35
|
-
if (!Array.isArray(debugValue)) {
|
|
36
|
-
if (debugValue instanceof RegExp) {
|
|
37
|
-
debugValues.push(createTestFunctionFromRegexp(debugValue));
|
|
38
|
-
debugValue = undefined;
|
|
39
|
-
} else if (debugValue) {
|
|
40
|
-
debugValue = debugValue.trim();
|
|
41
|
-
|
|
42
|
-
if (debugValue.startsWith('/')) {
|
|
43
|
-
debugValues.push(createTestFunctionFromRegexpString(debugValue));
|
|
44
|
-
debugValue = undefined;
|
|
45
|
-
} else {
|
|
46
|
-
debugValue = debugValue.split(/[\s,]+/);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (debugValue) {
|
|
52
|
-
debugValue.forEach(value => {
|
|
53
|
-
if (specialRegexpChars.test(value)) {
|
|
54
|
-
throw new Error(`Invalid debug value: "${value}" (contains special chars)`);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (!value) return;
|
|
58
|
-
|
|
59
|
-
if (value === '*') {
|
|
60
|
-
isWildcard = true;
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (value.startsWith('-')) {
|
|
65
|
-
skips.push(createTestFunctionFromValue(value.slice(1)));
|
|
66
|
-
} else if (!isWildcard) {
|
|
67
|
-
debugValues.push(createTestFunctionFromValue(value));
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (isWildcard) {
|
|
73
|
-
if (skips.length === 0) {
|
|
74
|
-
return () => Level__default.ALL;
|
|
75
|
-
} else {
|
|
76
|
-
return (minLevel, key) => skips.some(skip => skip(key)) ? minLevel : Level__default.ALL;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (debugValues.length === 0) {
|
|
81
|
-
return minLevel => minLevel;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return (minLevel, key) => {
|
|
85
|
-
if (minLevel === Level__default.ALL || !key) {
|
|
86
|
-
return minLevel;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if (debugValues.some(debugValue => debugValue(key))) {
|
|
90
|
-
return skips.some(skip => skip(key)) ? minLevel : Level__default.ALL;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return minLevel;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
exports.createFindDebugLevel = createFindDebugLevel;
|
|
98
|
-
exports.default = createFindDebugLevel;
|
|
99
|
-
//# sourceMappingURL=index-node12.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable complexity */\nimport Level from 'nightingale-levels';\n\nconst specialRegexpChars = /[$()+.?[\\\\\\]^{|}]/;\n\ntype TestFunction = (string: string) => boolean;\nexport type DebugValueType = string | RegExp | string[];\n\nconst createTestFunctionFromRegexp = (regexp: RegExp): TestFunction => (\n string: string,\n) => regexp.test(string);\n\nconst createTestFunctionFromRegexpString = (value: string): TestFunction => {\n if (!value.endsWith('/')) throw new Error('Invalid RegExp DEBUG value');\n return createTestFunctionFromRegexp(new RegExp(value.slice(1, -1)));\n};\n\nconst createTestFunctionFromValue = (value: string): TestFunction => {\n if (value.endsWith(':*')) {\n value = value.slice(0, -2);\n return (string: string) => string.startsWith(value);\n }\n\n return (string: string) => string === value;\n};\n\nexport type FindDebugLevel = (minLevel: Level, key: string) => Level;\n\nexport function createFindDebugLevel(\n debugValue?: DebugValueType,\n): FindDebugLevel {\n let isWildcard = false;\n const debugValues: TestFunction[] = [];\n const skips: TestFunction[] = [];\n\n if (!Array.isArray(debugValue)) {\n if (debugValue instanceof RegExp) {\n debugValues.push(createTestFunctionFromRegexp(debugValue));\n debugValue = undefined;\n } else if (debugValue) {\n debugValue = debugValue.trim();\n\n if (debugValue.startsWith('/')) {\n debugValues.push(createTestFunctionFromRegexpString(debugValue));\n debugValue = undefined;\n } else {\n debugValue = debugValue.split(/[\\s,]+/);\n }\n }\n }\n\n if (debugValue) {\n (debugValue as string[]).forEach((value) => {\n if (specialRegexpChars.test(value)) {\n throw new Error(\n `Invalid debug value: \"${value}\" (contains special chars)`,\n );\n }\n\n if (!value) return;\n\n if (value === '*') {\n isWildcard = true;\n return;\n }\n\n if (value.startsWith('-')) {\n skips.push(createTestFunctionFromValue(value.slice(1)));\n } else if (!isWildcard) {\n debugValues.push(createTestFunctionFromValue(value));\n }\n });\n }\n\n if (isWildcard) {\n if (skips.length === 0) {\n return () => Level.ALL;\n } else {\n return (minLevel: Level, key: string) =>\n skips.some((skip) => skip(key)) ? minLevel : Level.ALL;\n }\n }\n\n if (debugValues.length === 0) {\n return (minLevel: Level) => minLevel;\n }\n\n return (minLevel: Level, key: string) => {\n if (minLevel === Level.ALL || !key) {\n return minLevel;\n }\n\n if (debugValues.some((debugValue) => debugValue(key))) {\n return skips.some((skip) => skip(key)) ? minLevel : Level.ALL;\n }\n\n return minLevel;\n };\n}\n\n/** @deprecated use named export instead */\nexport default createFindDebugLevel;\n"],"names":["specialRegexpChars","createTestFunctionFromRegexp","regexp","string","test","createTestFunctionFromRegexpString","value","endsWith","Error","RegExp","slice","createTestFunctionFromValue","startsWith","createFindDebugLevel","debugValue","isWildcard","debugValues","skips","Array","isArray","push","undefined","trim","split","forEach","length","Level","ALL","minLevel","key","some","skip"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node12.mjs","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable complexity */\nimport Level from 'nightingale-levels';\n\nconst specialRegexpChars = /[$()+.?[\\\\\\]^{|}]/;\n\ntype TestFunction = (string: string) => boolean;\nexport type DebugValueType = string | RegExp | string[];\n\nconst createTestFunctionFromRegexp = (regexp: RegExp): TestFunction => (\n string: string,\n) => regexp.test(string);\n\nconst createTestFunctionFromRegexpString = (value: string): TestFunction => {\n if (!value.endsWith('/')) throw new Error('Invalid RegExp DEBUG value');\n return createTestFunctionFromRegexp(new RegExp(value.slice(1, -1)));\n};\n\nconst createTestFunctionFromValue = (value: string): TestFunction => {\n if (value.endsWith(':*')) {\n value = value.slice(0, -2);\n return (string: string) => string.startsWith(value);\n }\n\n return (string: string) => string === value;\n};\n\nexport type FindDebugLevel = (minLevel: Level, key: string) => Level;\n\nexport function createFindDebugLevel(\n debugValue?: DebugValueType,\n): FindDebugLevel {\n let isWildcard = false;\n const debugValues: TestFunction[] = [];\n const skips: TestFunction[] = [];\n\n if (!Array.isArray(debugValue)) {\n if (debugValue instanceof RegExp) {\n debugValues.push(createTestFunctionFromRegexp(debugValue));\n debugValue = undefined;\n } else if (debugValue) {\n debugValue = debugValue.trim();\n\n if (debugValue.startsWith('/')) {\n debugValues.push(createTestFunctionFromRegexpString(debugValue));\n debugValue = undefined;\n } else {\n debugValue = debugValue.split(/[\\s,]+/);\n }\n }\n }\n\n if (debugValue) {\n (debugValue as string[]).forEach((value) => {\n if (specialRegexpChars.test(value)) {\n throw new Error(\n `Invalid debug value: \"${value}\" (contains special chars)`,\n );\n }\n\n if (!value) return;\n\n if (value === '*') {\n isWildcard = true;\n return;\n }\n\n if (value.startsWith('-')) {\n skips.push(createTestFunctionFromValue(value.slice(1)));\n } else if (!isWildcard) {\n debugValues.push(createTestFunctionFromValue(value));\n }\n });\n }\n\n if (isWildcard) {\n if (skips.length === 0) {\n return () => Level.ALL;\n } else {\n return (minLevel: Level, key: string) =>\n skips.some((skip) => skip(key)) ? minLevel : Level.ALL;\n }\n }\n\n if (debugValues.length === 0) {\n return (minLevel: Level) => minLevel;\n }\n\n return (minLevel: Level, key: string) => {\n if (minLevel === Level.ALL || !key) {\n return minLevel;\n }\n\n if (debugValues.some((debugValue) => debugValue(key))) {\n return skips.some((skip) => skip(key)) ? minLevel : Level.ALL;\n }\n\n return minLevel;\n };\n}\n\n/** @deprecated use named export instead */\nexport default createFindDebugLevel;\n"],"names":["specialRegexpChars","createTestFunctionFromRegexp","regexp","string","test","createTestFunctionFromRegexpString","value","endsWith","Error","RegExp","slice","createTestFunctionFromValue","startsWith","createFindDebugLevel","debugValue","isWildcard","debugValues","skips","Array","isArray","push","undefined","trim","split","forEach","length","Level","ALL","minLevel","key","some","skip"],"mappings":"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"}
|