@pandacss/config 0.31.0 → 0.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.
@@ -1,6 +1,74 @@
1
1
  // src/merge-config.ts
2
2
  import { mergeAndConcat } from "merge-anything";
3
3
 
4
+ // src/merge-hooks.ts
5
+ import { logger } from "@pandacss/logger";
6
+ var mergeHooks = (plugins) => {
7
+ const hooksFns = {};
8
+ plugins.forEach(({ name, hooks }) => {
9
+ Object.entries(hooks ?? {}).forEach(([key, value]) => {
10
+ if (!hooksFns[key]) {
11
+ hooksFns[key] = [];
12
+ }
13
+ hooksFns[key].push([name, value]);
14
+ });
15
+ });
16
+ const mergedHooks = Object.fromEntries(
17
+ Object.entries(hooksFns).map(([key, entries]) => {
18
+ const fns = entries.map(([name, fn]) => tryCatch(name, fn));
19
+ if (key === "cssgen:done") {
20
+ return [key, reducers["cssgen:done"](fns)];
21
+ }
22
+ if (key === "codegen:prepare") {
23
+ return [key, reducers["codegen:prepare"](fns)];
24
+ }
25
+ return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
26
+ })
27
+ );
28
+ return mergedHooks;
29
+ };
30
+ var reducers = {
31
+ "cssgen:done": (fns) => (args) => {
32
+ let content = args.content;
33
+ for (const hookFn of fns) {
34
+ const result = hookFn({ ...args, content, original: args.content });
35
+ if (result !== void 0) {
36
+ content = result;
37
+ }
38
+ }
39
+ return content;
40
+ },
41
+ "codegen:prepare": (fns) => (args) => {
42
+ let artifacts = args.artifacts;
43
+ for (const hookFn of fns) {
44
+ const result = hookFn({ ...args, artifacts, original: args.artifacts });
45
+ if (result) {
46
+ artifacts = result;
47
+ }
48
+ }
49
+ return artifacts;
50
+ }
51
+ };
52
+ var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
53
+ var callAllAsync = (...fns) => async (...a) => {
54
+ for (const fn of fns) {
55
+ await fn?.(...a);
56
+ }
57
+ };
58
+ var callAll = (...fns) => (...a) => {
59
+ fns.forEach((fn) => fn?.(...a));
60
+ };
61
+ var tryCatch = (name, fn) => {
62
+ return (...args) => {
63
+ try {
64
+ return fn(...args);
65
+ } catch (e) {
66
+ logger.error("hooks", `The error below comes from the plugin ${name}`);
67
+ console.error(e);
68
+ }
69
+ };
70
+ };
71
+
4
72
  // src/utils.ts
5
73
  import { traverse } from "@pandacss/shared";
6
74
  var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
@@ -87,6 +155,11 @@ var compact = (obj) => {
87
155
  }, {});
88
156
  };
89
157
  function mergeConfigs(configs) {
158
+ const [userConfig] = configs;
159
+ const pluginHooks = userConfig.plugins ?? [];
160
+ if (userConfig.hooks) {
161
+ pluginHooks.push({ name: "__panda.config__", hooks: userConfig.hooks });
162
+ }
90
163
  const mergedResult = assign(
91
164
  {
92
165
  conditions: mergeExtensions(configs.map((config) => config.conditions ?? {})),
@@ -94,7 +167,8 @@ function mergeConfigs(configs) {
94
167
  patterns: mergeExtensions(configs.map((config) => config.patterns ?? {})),
95
168
  utilities: mergeExtensions(configs.map((config) => config.utilities ?? {})),
96
169
  globalCss: mergeExtensions(configs.map((config) => config.globalCss ?? {})),
97
- staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {}))
170
+ staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {})),
171
+ hooks: mergeHooks(pluginHooks)
98
172
  },
99
173
  ...configs
100
174
  );
package/dist/index.js CHANGED
@@ -376,6 +376,74 @@ function getConfigDependencies(filePath, tsOptions = { pathMappings: [] }, compi
376
376
  // src/merge-config.ts
377
377
  var import_merge_anything = require("merge-anything");
378
378
 
379
+ // src/merge-hooks.ts
380
+ var import_logger2 = require("@pandacss/logger");
381
+ var mergeHooks = (plugins) => {
382
+ const hooksFns = {};
383
+ plugins.forEach(({ name, hooks }) => {
384
+ Object.entries(hooks ?? {}).forEach(([key, value]) => {
385
+ if (!hooksFns[key]) {
386
+ hooksFns[key] = [];
387
+ }
388
+ hooksFns[key].push([name, value]);
389
+ });
390
+ });
391
+ const mergedHooks = Object.fromEntries(
392
+ Object.entries(hooksFns).map(([key, entries]) => {
393
+ const fns = entries.map(([name, fn]) => tryCatch(name, fn));
394
+ if (key === "cssgen:done") {
395
+ return [key, reducers["cssgen:done"](fns)];
396
+ }
397
+ if (key === "codegen:prepare") {
398
+ return [key, reducers["codegen:prepare"](fns)];
399
+ }
400
+ return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
401
+ })
402
+ );
403
+ return mergedHooks;
404
+ };
405
+ var reducers = {
406
+ "cssgen:done": (fns) => (args) => {
407
+ let content = args.content;
408
+ for (const hookFn of fns) {
409
+ const result = hookFn({ ...args, content, original: args.content });
410
+ if (result !== void 0) {
411
+ content = result;
412
+ }
413
+ }
414
+ return content;
415
+ },
416
+ "codegen:prepare": (fns) => (args) => {
417
+ let artifacts = args.artifacts;
418
+ for (const hookFn of fns) {
419
+ const result = hookFn({ ...args, artifacts, original: args.artifacts });
420
+ if (result) {
421
+ artifacts = result;
422
+ }
423
+ }
424
+ return artifacts;
425
+ }
426
+ };
427
+ var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
428
+ var callAllAsync = (...fns) => async (...a) => {
429
+ for (const fn of fns) {
430
+ await fn?.(...a);
431
+ }
432
+ };
433
+ var callAll = (...fns) => (...a) => {
434
+ fns.forEach((fn) => fn?.(...a));
435
+ };
436
+ var tryCatch = (name, fn) => {
437
+ return (...args) => {
438
+ try {
439
+ return fn(...args);
440
+ } catch (e) {
441
+ import_logger2.logger.error("hooks", `The error below comes from the plugin ${name}`);
442
+ console.error(e);
443
+ }
444
+ };
445
+ };
446
+
379
447
  // src/utils.ts
380
448
  var import_shared4 = require("@pandacss/shared");
381
449
  var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
@@ -462,6 +530,11 @@ var compact = (obj) => {
462
530
  }, {});
463
531
  };
464
532
  function mergeConfigs(configs2) {
533
+ const [userConfig] = configs2;
534
+ const pluginHooks = userConfig.plugins ?? [];
535
+ if (userConfig.hooks) {
536
+ pluginHooks.push({ name: "__panda.config__", hooks: userConfig.hooks });
537
+ }
465
538
  const mergedResult = assign(
466
539
  {
467
540
  conditions: mergeExtensions(configs2.map((config) => config.conditions ?? {})),
@@ -469,7 +542,8 @@ function mergeConfigs(configs2) {
469
542
  patterns: mergeExtensions(configs2.map((config) => config.patterns ?? {})),
470
543
  utilities: mergeExtensions(configs2.map((config) => config.utilities ?? {})),
471
544
  globalCss: mergeExtensions(configs2.map((config) => config.globalCss ?? {})),
472
- staticCss: mergeExtensions(configs2.map((config) => config.staticCss ?? {}))
545
+ staticCss: mergeExtensions(configs2.map((config) => config.staticCss ?? {})),
546
+ hooks: mergeHooks(pluginHooks)
473
547
  },
474
548
  ...configs2
475
549
  );
@@ -496,7 +570,7 @@ async function getResolvedConfig(config, cwd) {
496
570
  }
497
571
 
498
572
  // src/resolve-config.ts
499
- var import_logger3 = require("@pandacss/logger");
573
+ var import_logger4 = require("@pandacss/logger");
500
574
  var import_shared8 = require("@pandacss/shared");
501
575
 
502
576
  // src/bundled-preset.ts
@@ -514,7 +588,7 @@ var getBundledPreset = (preset) => {
514
588
  };
515
589
 
516
590
  // src/validate-config.ts
517
- var import_logger2 = require("@pandacss/logger");
591
+ var import_logger3 = require("@pandacss/logger");
518
592
  var import_shared7 = require("@pandacss/shared");
519
593
 
520
594
  // src/validation/validate-artifact.ts
@@ -743,7 +817,7 @@ ${Array.from(warnings).map((err) => "- " + err).join("\n")}
743
817
  if (config.validation === "error") {
744
818
  throw new import_shared7.PandaError("CONFIG_ERROR", errors);
745
819
  }
746
- import_logger2.logger.warn("config", errors);
820
+ import_logger3.logger.warn("config", errors);
747
821
  return warnings;
748
822
  }
749
823
  };
@@ -762,15 +836,15 @@ async function resolveConfig(result, cwd) {
762
836
  presets.add(import_preset_panda.preset);
763
837
  }
764
838
  result.config.presets = Array.from(presets);
765
- const config = await getResolvedConfig(result.config, cwd);
766
- if (config.logLevel) {
767
- import_logger3.logger.level = config.logLevel;
839
+ const mergedConfig = await getResolvedConfig(result.config, cwd);
840
+ const hooks = mergedConfig.hooks ?? {};
841
+ if (mergedConfig.logLevel) {
842
+ import_logger4.logger.level = mergedConfig.logLevel;
768
843
  }
769
- validateConfig(config);
770
- const { hooks = {} } = result.config;
844
+ validateConfig(mergedConfig);
771
845
  const loadConfigResult = {
772
846
  ...result,
773
- config
847
+ config: mergedConfig
774
848
  };
775
849
  if (hooks["config:resolved"]) {
776
850
  const result2 = await hooks["config:resolved"]({
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  mergeConfigs,
3
3
  utils
4
- } from "./chunk-XG56JT63.mjs";
4
+ } from "./chunk-MT2A5AKG.mjs";
5
5
  import {
6
6
  diffConfigs
7
7
  } from "./chunk-5YOGLJPA.mjs";
@@ -480,15 +480,15 @@ async function resolveConfig(result, cwd) {
480
480
  presets.add(presetPanda);
481
481
  }
482
482
  result.config.presets = Array.from(presets);
483
- const config = await getResolvedConfig(result.config, cwd);
484
- if (config.logLevel) {
485
- logger3.level = config.logLevel;
483
+ const mergedConfig = await getResolvedConfig(result.config, cwd);
484
+ const hooks = mergedConfig.hooks ?? {};
485
+ if (mergedConfig.logLevel) {
486
+ logger3.level = mergedConfig.logLevel;
486
487
  }
487
- validateConfig(config);
488
- const { hooks = {} } = result.config;
488
+ validateConfig(mergedConfig);
489
489
  const loadConfigResult = {
490
490
  ...result,
491
- config
491
+ config: mergedConfig
492
492
  };
493
493
  if (hooks["config:resolved"]) {
494
494
  const result2 = await hooks["config:resolved"]({
@@ -25,6 +25,74 @@ __export(merge_config_exports, {
25
25
  module.exports = __toCommonJS(merge_config_exports);
26
26
  var import_merge_anything = require("merge-anything");
27
27
 
28
+ // src/merge-hooks.ts
29
+ var import_logger = require("@pandacss/logger");
30
+ var mergeHooks = (plugins) => {
31
+ const hooksFns = {};
32
+ plugins.forEach(({ name, hooks }) => {
33
+ Object.entries(hooks ?? {}).forEach(([key, value]) => {
34
+ if (!hooksFns[key]) {
35
+ hooksFns[key] = [];
36
+ }
37
+ hooksFns[key].push([name, value]);
38
+ });
39
+ });
40
+ const mergedHooks = Object.fromEntries(
41
+ Object.entries(hooksFns).map(([key, entries]) => {
42
+ const fns = entries.map(([name, fn]) => tryCatch(name, fn));
43
+ if (key === "cssgen:done") {
44
+ return [key, reducers["cssgen:done"](fns)];
45
+ }
46
+ if (key === "codegen:prepare") {
47
+ return [key, reducers["codegen:prepare"](fns)];
48
+ }
49
+ return [key, syncHooks.includes(key) ? callAll(...fns) : callAllAsync(...fns)];
50
+ })
51
+ );
52
+ return mergedHooks;
53
+ };
54
+ var reducers = {
55
+ "cssgen:done": (fns) => (args) => {
56
+ let content = args.content;
57
+ for (const hookFn of fns) {
58
+ const result = hookFn({ ...args, content, original: args.content });
59
+ if (result !== void 0) {
60
+ content = result;
61
+ }
62
+ }
63
+ return content;
64
+ },
65
+ "codegen:prepare": (fns) => (args) => {
66
+ let artifacts = args.artifacts;
67
+ for (const hookFn of fns) {
68
+ const result = hookFn({ ...args, artifacts, original: args.artifacts });
69
+ if (result) {
70
+ artifacts = result;
71
+ }
72
+ }
73
+ return artifacts;
74
+ }
75
+ };
76
+ var syncHooks = ["context:created", "parser:before", "parser:after", "cssgen:done"];
77
+ var callAllAsync = (...fns) => async (...a) => {
78
+ for (const fn of fns) {
79
+ await fn?.(...a);
80
+ }
81
+ };
82
+ var callAll = (...fns) => (...a) => {
83
+ fns.forEach((fn) => fn?.(...a));
84
+ };
85
+ var tryCatch = (name, fn) => {
86
+ return (...args) => {
87
+ try {
88
+ return fn(...args);
89
+ } catch (e) {
90
+ import_logger.logger.error("hooks", `The error below comes from the plugin ${name}`);
91
+ console.error(e);
92
+ }
93
+ };
94
+ };
95
+
28
96
  // src/utils.ts
29
97
  var import_shared = require("@pandacss/shared");
30
98
  var isObject = (v) => Object.prototype.toString.call(v) === "[object Object]";
@@ -98,6 +166,11 @@ var compact = (obj) => {
98
166
  }, {});
99
167
  };
100
168
  function mergeConfigs(configs) {
169
+ const [userConfig] = configs;
170
+ const pluginHooks = userConfig.plugins ?? [];
171
+ if (userConfig.hooks) {
172
+ pluginHooks.push({ name: "__panda.config__", hooks: userConfig.hooks });
173
+ }
101
174
  const mergedResult = assign(
102
175
  {
103
176
  conditions: mergeExtensions(configs.map((config) => config.conditions ?? {})),
@@ -105,7 +178,8 @@ function mergeConfigs(configs) {
105
178
  patterns: mergeExtensions(configs.map((config) => config.patterns ?? {})),
106
179
  utilities: mergeExtensions(configs.map((config) => config.utilities ?? {})),
107
180
  globalCss: mergeExtensions(configs.map((config) => config.globalCss ?? {})),
108
- staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {}))
181
+ staticCss: mergeExtensions(configs.map((config) => config.staticCss ?? {})),
182
+ hooks: mergeHooks(pluginHooks)
109
183
  },
110
184
  ...configs
111
185
  );
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mergeConfigs
3
- } from "./chunk-XG56JT63.mjs";
3
+ } from "./chunk-MT2A5AKG.mjs";
4
4
  export {
5
5
  mergeConfigs
6
6
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/config",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Find and load panda config",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -64,11 +64,11 @@
64
64
  "merge-anything": "5.1.7",
65
65
  "microdiff": "1.3.2",
66
66
  "typescript": "5.3.3",
67
- "@pandacss/logger": "0.31.0",
68
- "@pandacss/preset-base": "0.31.0",
69
- "@pandacss/preset-panda": "0.31.0",
70
- "@pandacss/shared": "0.31.0",
71
- "@pandacss/types": "0.31.0"
67
+ "@pandacss/logger": "0.32.0",
68
+ "@pandacss/preset-base": "0.32.0",
69
+ "@pandacss/preset-panda": "0.32.0",
70
+ "@pandacss/shared": "0.32.0",
71
+ "@pandacss/types": "0.32.0"
72
72
  },
73
73
  "devDependencies": {
74
74
  "pkg-types": "1.0.3"