@bamboocss/logger 1.30.1 → 1.32.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/dist/index.cjs CHANGED
@@ -112,7 +112,16 @@ function isMatch(inputs, patterns, options) {
112
112
  const createLogger = (conf = {}) => {
113
113
  let onLog = conf.onLog;
114
114
  let level = conf.isDebug ? "debug" : conf.level ?? "info";
115
- const filter = conf.filter !== "*" ? conf.filter?.split(/[\s,]+/) ?? [] : [];
115
+ /**
116
+ * Which log *types* to show, as globs over the namespaced type — `vite:transform`,
117
+ * `tokens:unresolved`, `prune:tokens`, `config`. A non-empty filter forces the effective
118
+ * level to debug for the types it matches, so it answers "which subsystem" without
119
+ * `logLevel` having to answer "how loud" for everything at once.
120
+ *
121
+ * Settable, because it arrives from the config, which is resolved after this logger is
122
+ * constructed — the same reason `level` is.
123
+ */
124
+ let filter = parseFilter(conf.filter);
116
125
  const getLevel = () => filter.length ? "debug" : level;
117
126
  const isValid = (level, type) => {
118
127
  const badLevel = logLevels[getLevel()].weight > logLevels[level].weight;
@@ -151,6 +160,12 @@ const createLogger = (conf = {}) => {
151
160
  set level(newLevel) {
152
161
  level = newLevel;
153
162
  },
163
+ get filter() {
164
+ return filter.join(",");
165
+ },
166
+ set filter(value) {
167
+ filter = parseFilter(value);
168
+ },
154
169
  set onLog(fn) {
155
170
  onLog = fn;
156
171
  },
@@ -170,6 +185,8 @@ const createLogger = (conf = {}) => {
170
185
  isDebug: Boolean(conf.isDebug)
171
186
  };
172
187
  };
188
+ /** `'*'` is "everything", which is what an empty filter already means. */
189
+ const parseFilter = (value) => value !== "*" ? value?.split(/[\s,]+/).filter(Boolean) ?? [] : [];
173
190
  const matches = (filters, value) => filters.some((search) => isMatch(value, search));
174
191
  const createEntry = (level, type, data) => {
175
192
  const msg = data instanceof Error ? kleur.default.red(data.stack ?? data.message) : data;
package/dist/index.mjs CHANGED
@@ -88,7 +88,16 @@ function isMatch(inputs, patterns, options) {
88
88
  const createLogger = (conf = {}) => {
89
89
  let onLog = conf.onLog;
90
90
  let level = conf.isDebug ? "debug" : conf.level ?? "info";
91
- const filter = conf.filter !== "*" ? conf.filter?.split(/[\s,]+/) ?? [] : [];
91
+ /**
92
+ * Which log *types* to show, as globs over the namespaced type — `vite:transform`,
93
+ * `tokens:unresolved`, `prune:tokens`, `config`. A non-empty filter forces the effective
94
+ * level to debug for the types it matches, so it answers "which subsystem" without
95
+ * `logLevel` having to answer "how loud" for everything at once.
96
+ *
97
+ * Settable, because it arrives from the config, which is resolved after this logger is
98
+ * constructed — the same reason `level` is.
99
+ */
100
+ let filter = parseFilter(conf.filter);
92
101
  const getLevel = () => filter.length ? "debug" : level;
93
102
  const isValid = (level, type) => {
94
103
  const badLevel = logLevels[getLevel()].weight > logLevels[level].weight;
@@ -127,6 +136,12 @@ const createLogger = (conf = {}) => {
127
136
  set level(newLevel) {
128
137
  level = newLevel;
129
138
  },
139
+ get filter() {
140
+ return filter.join(",");
141
+ },
142
+ set filter(value) {
143
+ filter = parseFilter(value);
144
+ },
130
145
  set onLog(fn) {
131
146
  onLog = fn;
132
147
  },
@@ -146,6 +161,8 @@ const createLogger = (conf = {}) => {
146
161
  isDebug: Boolean(conf.isDebug)
147
162
  };
148
163
  };
164
+ /** `'*'` is "everything", which is what an empty filter already means. */
165
+ const parseFilter = (value) => value !== "*" ? value?.split(/[\s,]+/).filter(Boolean) ?? [] : [];
149
166
  const matches = (filters, value) => filters.some((search) => isMatch(value, search));
150
167
  const createEntry = (level, type, data) => {
151
168
  const msg = data instanceof Error ? colors$1.red(data.stack ?? data.message) : data;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bamboocss/logger",
3
- "version": "1.30.1",
3
+ "version": "1.32.0",
4
4
  "description": "The core css bamboo library",
5
5
  "homepage": "https://bamboocss.com",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "kleur": "4.1.5",
37
- "@bamboocss/types": "1.30.1"
37
+ "@bamboocss/types": "1.32.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "matcher": "6.0.0"