@pandacss/config 0.0.0-dev-20221220033401 → 0.0.0-dev-20221220144042
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.d.ts +16 -2
- package/dist/index.js +94 -9
- package/dist/index.mjs +92 -9
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ type ConfigFileOptions = {
|
|
|
5
5
|
file?: string;
|
|
6
6
|
};
|
|
7
7
|
declare function loadConfigFile(options: ConfigFileOptions): Promise<{
|
|
8
|
+
config: any;
|
|
8
9
|
path: string;
|
|
9
|
-
config: UserConfig;
|
|
10
10
|
dependencies: string[];
|
|
11
11
|
}>;
|
|
12
12
|
type LoadConfigResult = {
|
|
@@ -15,4 +15,18 @@ type LoadConfigResult = {
|
|
|
15
15
|
dependencies: string[];
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
type Extendable<T> = T & {
|
|
19
|
+
extend?: T;
|
|
20
|
+
};
|
|
21
|
+
type Dict = Record<string, any>;
|
|
22
|
+
type ExtendableRecord = Extendable<Dict>;
|
|
23
|
+
/**
|
|
24
|
+
* Merge all configs into a single config
|
|
25
|
+
*/
|
|
26
|
+
declare function mergeConfigs(configs: ExtendableRecord[]): any;
|
|
27
|
+
/**
|
|
28
|
+
* Recursively merge all presets into a single config
|
|
29
|
+
*/
|
|
30
|
+
declare function getResolvedConfig(config: ExtendableRecord, cwd: string): Promise<any>;
|
|
31
|
+
|
|
32
|
+
export { LoadConfigResult, getResolvedConfig, loadConfigFile, mergeConfigs };
|
package/dist/index.js
CHANGED
|
@@ -26,14 +26,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
26
26
|
// src/index.ts
|
|
27
27
|
var src_exports = {};
|
|
28
28
|
__export(src_exports, {
|
|
29
|
-
|
|
29
|
+
getResolvedConfig: () => getResolvedConfig,
|
|
30
|
+
loadConfigFile: () => loadConfigFile,
|
|
31
|
+
mergeConfigs: () => mergeConfigs
|
|
30
32
|
});
|
|
31
33
|
module.exports = __toCommonJS(src_exports);
|
|
32
34
|
|
|
33
35
|
// src/load-config.ts
|
|
34
36
|
var import_error = require("@pandacss/error");
|
|
35
37
|
var import_logger2 = require("@pandacss/logger");
|
|
36
|
-
var import_merge_anything = require("merge-anything");
|
|
37
38
|
|
|
38
39
|
// src/bundle-require.ts
|
|
39
40
|
var import_logger = require("@pandacss/logger");
|
|
@@ -124,6 +125,91 @@ function findConfigFile({ cwd, file }) {
|
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
127
|
|
|
128
|
+
// src/merge-config.ts
|
|
129
|
+
var import_merge_anything = require("merge-anything");
|
|
130
|
+
|
|
131
|
+
// src/utils.ts
|
|
132
|
+
var isObject = (value) => {
|
|
133
|
+
return Object.prototype.toString.call(value) === "[object Object]";
|
|
134
|
+
};
|
|
135
|
+
function mergeWith(target, ...sources) {
|
|
136
|
+
const customizer = sources.pop();
|
|
137
|
+
for (const source of sources) {
|
|
138
|
+
for (const key in source) {
|
|
139
|
+
const merged = customizer(target[key], source[key]);
|
|
140
|
+
if (merged === void 0) {
|
|
141
|
+
if (isObject(target[key]) && isObject(source[key])) {
|
|
142
|
+
target[key] = mergeWith({}, target[key], source[key], customizer);
|
|
143
|
+
} else {
|
|
144
|
+
target[key] = source[key];
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
target[key] = merged;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return target;
|
|
152
|
+
}
|
|
153
|
+
function assign(target, ...sources) {
|
|
154
|
+
for (const source of sources) {
|
|
155
|
+
for (const key in source) {
|
|
156
|
+
if (!target?.hasOwnProperty?.(key)) {
|
|
157
|
+
target[key] = source[key];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return target;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// src/merge-config.ts
|
|
165
|
+
function getExtends(items) {
|
|
166
|
+
return items.reduce((merged, { extend }) => {
|
|
167
|
+
return mergeWith(merged, extend, (originalValue, newValue) => {
|
|
168
|
+
if (originalValue === void 0) {
|
|
169
|
+
return [newValue];
|
|
170
|
+
}
|
|
171
|
+
if (Array.isArray(originalValue)) {
|
|
172
|
+
return [newValue, ...originalValue];
|
|
173
|
+
}
|
|
174
|
+
return [newValue, originalValue];
|
|
175
|
+
});
|
|
176
|
+
}, {});
|
|
177
|
+
}
|
|
178
|
+
function mergeRecords(records) {
|
|
179
|
+
return {
|
|
180
|
+
...records.reduce((acc, record) => assign(acc, record), {}),
|
|
181
|
+
extend: getExtends(records)
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function mergeExtensions(records) {
|
|
185
|
+
const { extend = [], ...restProps } = mergeRecords(records);
|
|
186
|
+
return mergeWith(restProps, extend, (obj, extensions) => {
|
|
187
|
+
return (0, import_merge_anything.mergeAndConcat)({}, obj, ...extensions);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
function mergeConfigs(configs2) {
|
|
191
|
+
return assign(
|
|
192
|
+
{
|
|
193
|
+
conditions: mergeExtensions(configs2.map((config) => config.conditions ?? {})),
|
|
194
|
+
theme: mergeExtensions(configs2.map((config) => config.theme ?? {})),
|
|
195
|
+
patterns: mergeExtensions(configs2.map((config) => config.patterns ?? {})),
|
|
196
|
+
utilities: mergeExtensions(configs2.map((config) => config.utilities ?? {}))
|
|
197
|
+
},
|
|
198
|
+
...configs2
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
async function getResolvedConfig(config, cwd) {
|
|
202
|
+
const presets = config.presets ?? [];
|
|
203
|
+
const configs2 = await Promise.all(
|
|
204
|
+
presets.slice().reverse().map(async (preset) => {
|
|
205
|
+
const presetModule = await bundleAndRequire(preset, cwd);
|
|
206
|
+
return getResolvedConfig(presetModule.config, cwd);
|
|
207
|
+
})
|
|
208
|
+
);
|
|
209
|
+
delete config.presets;
|
|
210
|
+
return mergeConfigs([config, ...configs2]);
|
|
211
|
+
}
|
|
212
|
+
|
|
127
213
|
// src/load-config.ts
|
|
128
214
|
async function loadConfigFile(options) {
|
|
129
215
|
const { cwd, file } = options;
|
|
@@ -136,18 +222,17 @@ async function loadConfigFile(options) {
|
|
|
136
222
|
if (typeof result.config !== "object") {
|
|
137
223
|
throw new import_error.ConfigError(`\u{1F4A5} Config must export or return an object.`);
|
|
138
224
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const presetResult = await bundleAndRequire(preset, cwd);
|
|
142
|
-
result.config = (0, import_merge_anything.merge)({}, presetResult.config, result.config);
|
|
143
|
-
}
|
|
144
|
-
delete result.config.presets;
|
|
225
|
+
result.config.presets ||= ["css-panda/presets"];
|
|
226
|
+
const mergedConfig = await getResolvedConfig(result.config, cwd);
|
|
145
227
|
return {
|
|
146
228
|
...result,
|
|
229
|
+
config: mergedConfig,
|
|
147
230
|
path: filePath
|
|
148
231
|
};
|
|
149
232
|
}
|
|
150
233
|
// Annotate the CommonJS export names for ESM import in node:
|
|
151
234
|
0 && (module.exports = {
|
|
152
|
-
|
|
235
|
+
getResolvedConfig,
|
|
236
|
+
loadConfigFile,
|
|
237
|
+
mergeConfigs
|
|
153
238
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -7,9 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
// src/load-config.ts
|
|
10
|
-
import {
|
|
10
|
+
import { ConfigError, ConfigNotFoundError } from "@pandacss/error";
|
|
11
11
|
import { logger as logger2 } from "@pandacss/logger";
|
|
12
|
-
import { merge } from "merge-anything";
|
|
13
12
|
|
|
14
13
|
// src/bundle-require.ts
|
|
15
14
|
import { logger, quote } from "@pandacss/logger";
|
|
@@ -100,6 +99,91 @@ function findConfigFile({ cwd, file }) {
|
|
|
100
99
|
});
|
|
101
100
|
}
|
|
102
101
|
|
|
102
|
+
// src/merge-config.ts
|
|
103
|
+
import { mergeAndConcat } from "merge-anything";
|
|
104
|
+
|
|
105
|
+
// src/utils.ts
|
|
106
|
+
var isObject = (value) => {
|
|
107
|
+
return Object.prototype.toString.call(value) === "[object Object]";
|
|
108
|
+
};
|
|
109
|
+
function mergeWith(target, ...sources) {
|
|
110
|
+
const customizer = sources.pop();
|
|
111
|
+
for (const source of sources) {
|
|
112
|
+
for (const key in source) {
|
|
113
|
+
const merged = customizer(target[key], source[key]);
|
|
114
|
+
if (merged === void 0) {
|
|
115
|
+
if (isObject(target[key]) && isObject(source[key])) {
|
|
116
|
+
target[key] = mergeWith({}, target[key], source[key], customizer);
|
|
117
|
+
} else {
|
|
118
|
+
target[key] = source[key];
|
|
119
|
+
}
|
|
120
|
+
} else {
|
|
121
|
+
target[key] = merged;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return target;
|
|
126
|
+
}
|
|
127
|
+
function assign(target, ...sources) {
|
|
128
|
+
for (const source of sources) {
|
|
129
|
+
for (const key in source) {
|
|
130
|
+
if (!target?.hasOwnProperty?.(key)) {
|
|
131
|
+
target[key] = source[key];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return target;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// src/merge-config.ts
|
|
139
|
+
function getExtends(items) {
|
|
140
|
+
return items.reduce((merged, { extend }) => {
|
|
141
|
+
return mergeWith(merged, extend, (originalValue, newValue) => {
|
|
142
|
+
if (originalValue === void 0) {
|
|
143
|
+
return [newValue];
|
|
144
|
+
}
|
|
145
|
+
if (Array.isArray(originalValue)) {
|
|
146
|
+
return [newValue, ...originalValue];
|
|
147
|
+
}
|
|
148
|
+
return [newValue, originalValue];
|
|
149
|
+
});
|
|
150
|
+
}, {});
|
|
151
|
+
}
|
|
152
|
+
function mergeRecords(records) {
|
|
153
|
+
return {
|
|
154
|
+
...records.reduce((acc, record) => assign(acc, record), {}),
|
|
155
|
+
extend: getExtends(records)
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function mergeExtensions(records) {
|
|
159
|
+
const { extend = [], ...restProps } = mergeRecords(records);
|
|
160
|
+
return mergeWith(restProps, extend, (obj, extensions) => {
|
|
161
|
+
return mergeAndConcat({}, obj, ...extensions);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
function mergeConfigs(configs2) {
|
|
165
|
+
return assign(
|
|
166
|
+
{
|
|
167
|
+
conditions: mergeExtensions(configs2.map((config) => config.conditions ?? {})),
|
|
168
|
+
theme: mergeExtensions(configs2.map((config) => config.theme ?? {})),
|
|
169
|
+
patterns: mergeExtensions(configs2.map((config) => config.patterns ?? {})),
|
|
170
|
+
utilities: mergeExtensions(configs2.map((config) => config.utilities ?? {}))
|
|
171
|
+
},
|
|
172
|
+
...configs2
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
async function getResolvedConfig(config, cwd) {
|
|
176
|
+
const presets = config.presets ?? [];
|
|
177
|
+
const configs2 = await Promise.all(
|
|
178
|
+
presets.slice().reverse().map(async (preset) => {
|
|
179
|
+
const presetModule = await bundleAndRequire(preset, cwd);
|
|
180
|
+
return getResolvedConfig(presetModule.config, cwd);
|
|
181
|
+
})
|
|
182
|
+
);
|
|
183
|
+
delete config.presets;
|
|
184
|
+
return mergeConfigs([config, ...configs2]);
|
|
185
|
+
}
|
|
186
|
+
|
|
103
187
|
// src/load-config.ts
|
|
104
188
|
async function loadConfigFile(options) {
|
|
105
189
|
const { cwd, file } = options;
|
|
@@ -112,17 +196,16 @@ async function loadConfigFile(options) {
|
|
|
112
196
|
if (typeof result.config !== "object") {
|
|
113
197
|
throw new ConfigError(`\u{1F4A5} Config must export or return an object.`);
|
|
114
198
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const presetResult = await bundleAndRequire(preset, cwd);
|
|
118
|
-
result.config = merge({}, presetResult.config, result.config);
|
|
119
|
-
}
|
|
120
|
-
delete result.config.presets;
|
|
199
|
+
result.config.presets ||= ["css-panda/presets"];
|
|
200
|
+
const mergedConfig = await getResolvedConfig(result.config, cwd);
|
|
121
201
|
return {
|
|
122
202
|
...result,
|
|
203
|
+
config: mergedConfig,
|
|
123
204
|
path: filePath
|
|
124
205
|
};
|
|
125
206
|
}
|
|
126
207
|
export {
|
|
127
|
-
|
|
208
|
+
getResolvedConfig,
|
|
209
|
+
loadConfigFile,
|
|
210
|
+
mergeConfigs
|
|
128
211
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pandacss/config",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20221220144042",
|
|
4
4
|
"description": "Find and load panda config",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"esbuild": "0.16.10",
|
|
19
19
|
"escalade": "3.1.1",
|
|
20
20
|
"node-eval": "2.0.0",
|
|
21
|
-
"@pandacss/logger": "0.0.0-dev-
|
|
22
|
-
"@pandacss/error": "0.0.0-dev-
|
|
23
|
-
"@pandacss/types": "0.0.0-dev-
|
|
21
|
+
"@pandacss/logger": "0.0.0-dev-20221220144042",
|
|
22
|
+
"@pandacss/error": "0.0.0-dev-20221220144042",
|
|
23
|
+
"@pandacss/types": "0.0.0-dev-20221220144042"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "pnpm tsup src/index.ts --format=esm,cjs --shims --dts",
|