c12 1.4.1 → 1.4.2
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/README.md +2 -2
- package/dist/index.cjs +9 -8
- package/dist/index.mjs +10 -9
- package/package.json +17 -17
package/README.md
CHANGED
|
@@ -75,9 +75,9 @@ Resolve configuration from this working directory. The default is `process.cwd()
|
|
|
75
75
|
|
|
76
76
|
Configuration base name. The default is `config`.
|
|
77
77
|
|
|
78
|
-
### `
|
|
78
|
+
### `configFile`
|
|
79
79
|
|
|
80
|
-
Configuration file name without extension. Default is generated from `name` (name
|
|
80
|
+
Configuration file name without extension. Default is generated from `name` (f.e., if `name` is `foo`, the config file will be => `foo.config`).
|
|
81
81
|
|
|
82
82
|
Set to `false` to avoid loading the config file.
|
|
83
83
|
|
package/dist/index.cjs
CHANGED
|
@@ -64,7 +64,7 @@ async function loadDotenv(options) {
|
|
|
64
64
|
}
|
|
65
65
|
function interpolate(target, source = {}, parse = (v) => v) {
|
|
66
66
|
function getValue(key) {
|
|
67
|
-
return source[key]
|
|
67
|
+
return source[key] === void 0 ? target[key] : source[key];
|
|
68
68
|
}
|
|
69
69
|
function interpolate2(value, parents = []) {
|
|
70
70
|
if (typeof value !== "string") {
|
|
@@ -94,7 +94,7 @@ function interpolate(target, source = {}, parse = (v) => v) {
|
|
|
94
94
|
value2 = getValue(key);
|
|
95
95
|
value2 = interpolate2(value2, [...parents, key]);
|
|
96
96
|
}
|
|
97
|
-
return value2
|
|
97
|
+
return value2 === void 0 ? newValue : newValue.replace(replacePart, value2);
|
|
98
98
|
}, value)
|
|
99
99
|
);
|
|
100
100
|
}
|
|
@@ -107,7 +107,7 @@ async function loadConfig(options) {
|
|
|
107
107
|
options.cwd = pathe.resolve(process.cwd(), options.cwd || ".");
|
|
108
108
|
options.name = options.name || "config";
|
|
109
109
|
options.envName = options.envName ?? process.env.NODE_ENV;
|
|
110
|
-
options.configFile = options.configFile ?? (options.name
|
|
110
|
+
options.configFile = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
|
|
111
111
|
options.rcFile = options.rcFile ?? `.${options.name}rc`;
|
|
112
112
|
if (options.extend !== false) {
|
|
113
113
|
options.extend = {
|
|
@@ -276,7 +276,8 @@ async function resolveConfig(source, options, sourceOptions = {}) {
|
|
|
276
276
|
} catch {
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
const
|
|
279
|
+
const ext = pathe.extname(source);
|
|
280
|
+
const isDir = !ext || ext === pathe.basename(source);
|
|
280
281
|
const cwd = pathe.resolve(options.cwd, isDir ? source : pathe.dirname(source));
|
|
281
282
|
if (isDir) {
|
|
282
283
|
source = options.configFile;
|
|
@@ -329,7 +330,7 @@ const eventMap = {
|
|
|
329
330
|
async function watchConfig(options) {
|
|
330
331
|
let config = await loadConfig(options);
|
|
331
332
|
const configName = options.name || "config";
|
|
332
|
-
const configFileName = options.configFile ?? (options.name
|
|
333
|
+
const configFileName = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
|
|
333
334
|
const watchingFiles = [
|
|
334
335
|
...new Set(
|
|
335
336
|
(config.layers || []).filter((l) => l.cwd).flatMap((l) => [
|
|
@@ -379,10 +380,10 @@ async function watchConfig(options) {
|
|
|
379
380
|
await options.onUpdate(changeCtx);
|
|
380
381
|
}
|
|
381
382
|
};
|
|
382
|
-
if (options.debounce
|
|
383
|
-
_fswatcher.on("all", perfectDebounce.debounce(onChange, options.debounce ?? 100));
|
|
384
|
-
} else {
|
|
383
|
+
if (options.debounce === false) {
|
|
385
384
|
_fswatcher.on("all", onChange);
|
|
385
|
+
} else {
|
|
386
|
+
_fswatcher.on("all", perfectDebounce.debounce(onChange, options.debounce ?? 100));
|
|
386
387
|
}
|
|
387
388
|
const utils = {
|
|
388
389
|
watchingFiles,
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync, promises } from 'node:fs';
|
|
2
|
-
import { resolve, extname, dirname } from 'pathe';
|
|
2
|
+
import { resolve, extname, basename, dirname } from 'pathe';
|
|
3
3
|
import * as dotenv from 'dotenv';
|
|
4
4
|
import { rm } from 'node:fs/promises';
|
|
5
5
|
import { homedir } from 'node:os';
|
|
@@ -44,7 +44,7 @@ async function loadDotenv(options) {
|
|
|
44
44
|
}
|
|
45
45
|
function interpolate(target, source = {}, parse = (v) => v) {
|
|
46
46
|
function getValue(key) {
|
|
47
|
-
return source[key]
|
|
47
|
+
return source[key] === void 0 ? target[key] : source[key];
|
|
48
48
|
}
|
|
49
49
|
function interpolate2(value, parents = []) {
|
|
50
50
|
if (typeof value !== "string") {
|
|
@@ -74,7 +74,7 @@ function interpolate(target, source = {}, parse = (v) => v) {
|
|
|
74
74
|
value2 = getValue(key);
|
|
75
75
|
value2 = interpolate2(value2, [...parents, key]);
|
|
76
76
|
}
|
|
77
|
-
return value2
|
|
77
|
+
return value2 === void 0 ? newValue : newValue.replace(replacePart, value2);
|
|
78
78
|
}, value)
|
|
79
79
|
);
|
|
80
80
|
}
|
|
@@ -87,7 +87,7 @@ async function loadConfig(options) {
|
|
|
87
87
|
options.cwd = resolve(process.cwd(), options.cwd || ".");
|
|
88
88
|
options.name = options.name || "config";
|
|
89
89
|
options.envName = options.envName ?? process.env.NODE_ENV;
|
|
90
|
-
options.configFile = options.configFile ?? (options.name
|
|
90
|
+
options.configFile = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
|
|
91
91
|
options.rcFile = options.rcFile ?? `.${options.name}rc`;
|
|
92
92
|
if (options.extend !== false) {
|
|
93
93
|
options.extend = {
|
|
@@ -256,7 +256,8 @@ async function resolveConfig(source, options, sourceOptions = {}) {
|
|
|
256
256
|
} catch {
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
const
|
|
259
|
+
const ext = extname(source);
|
|
260
|
+
const isDir = !ext || ext === basename(source);
|
|
260
261
|
const cwd = resolve(options.cwd, isDir ? source : dirname(source));
|
|
261
262
|
if (isDir) {
|
|
262
263
|
source = options.configFile;
|
|
@@ -309,7 +310,7 @@ const eventMap = {
|
|
|
309
310
|
async function watchConfig(options) {
|
|
310
311
|
let config = await loadConfig(options);
|
|
311
312
|
const configName = options.name || "config";
|
|
312
|
-
const configFileName = options.configFile ?? (options.name
|
|
313
|
+
const configFileName = options.configFile ?? (options.name === "config" ? "config" : `${options.name}.config`);
|
|
313
314
|
const watchingFiles = [
|
|
314
315
|
...new Set(
|
|
315
316
|
(config.layers || []).filter((l) => l.cwd).flatMap((l) => [
|
|
@@ -359,10 +360,10 @@ async function watchConfig(options) {
|
|
|
359
360
|
await options.onUpdate(changeCtx);
|
|
360
361
|
}
|
|
361
362
|
};
|
|
362
|
-
if (options.debounce
|
|
363
|
-
_fswatcher.on("all", debounce(onChange, options.debounce ?? 100));
|
|
364
|
-
} else {
|
|
363
|
+
if (options.debounce === false) {
|
|
365
364
|
_fswatcher.on("all", onChange);
|
|
365
|
+
} else {
|
|
366
|
+
_fswatcher.on("all", debounce(onChange, options.debounce ?? 100));
|
|
366
367
|
}
|
|
367
368
|
const utils = {
|
|
368
369
|
watchingFiles,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "c12",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Smart Config Loader",
|
|
5
5
|
"repository": "unjs/c12",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,32 +26,32 @@
|
|
|
26
26
|
"lint:fix": "eslint --ext .ts,.js,.mjs,.cjs . --fix && prettier -w src test",
|
|
27
27
|
"prepack": "unbuild",
|
|
28
28
|
"release": "changelogen --release && npm publish && git push --follow-tags",
|
|
29
|
-
"test": "vitest run --coverage && pnpm test:types",
|
|
29
|
+
"test": "pnpm lint && vitest run --coverage && pnpm test:types",
|
|
30
30
|
"test:types": "tsc --noEmit"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"chokidar": "^3.5.3",
|
|
34
34
|
"defu": "^6.1.2",
|
|
35
|
-
"dotenv": "^16.
|
|
35
|
+
"dotenv": "^16.3.1",
|
|
36
36
|
"giget": "^1.1.2",
|
|
37
37
|
"jiti": "^1.18.2",
|
|
38
|
-
"mlly": "^1.
|
|
39
|
-
"ohash": "^1.1.
|
|
40
|
-
"pathe": "^1.1.
|
|
41
|
-
"perfect-debounce": "^0.
|
|
42
|
-
"pkg-types": "^1.0.
|
|
43
|
-
"rc9": "^2.1.
|
|
38
|
+
"mlly": "^1.4.0",
|
|
39
|
+
"ohash": "^1.1.2",
|
|
40
|
+
"pathe": "^1.1.1",
|
|
41
|
+
"perfect-debounce": "^1.0.0",
|
|
42
|
+
"pkg-types": "^1.0.3",
|
|
43
|
+
"rc9": "^2.1.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@vitest/coverage-
|
|
46
|
+
"@vitest/coverage-v8": "^0.32.2",
|
|
47
47
|
"changelogen": "^0.5.3",
|
|
48
|
-
"eslint": "^8.
|
|
49
|
-
"eslint-config-unjs": "^0.1
|
|
50
|
-
"expect-type": "^0.
|
|
51
|
-
"prettier": "^2.8.
|
|
52
|
-
"typescript": "^5.
|
|
48
|
+
"eslint": "^8.43.0",
|
|
49
|
+
"eslint-config-unjs": "^0.2.1",
|
|
50
|
+
"expect-type": "^0.16.0",
|
|
51
|
+
"prettier": "^2.8.8",
|
|
52
|
+
"typescript": "^5.1.3",
|
|
53
53
|
"unbuild": "^1.2.1",
|
|
54
|
-
"vitest": "^0.
|
|
54
|
+
"vitest": "^0.32.2"
|
|
55
55
|
},
|
|
56
|
-
"packageManager": "pnpm@8.3
|
|
56
|
+
"packageManager": "pnpm@8.6.3"
|
|
57
57
|
}
|