presetter 4.5.0 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/content.d.ts +77 -0
- package/lib/content.d.ts.map +1 -1
- package/lib/content.js +126 -1
- package/lib/directive.d.ts +23 -0
- package/lib/directive.d.ts.map +1 -1
- package/lib/directive.js +85 -1
- package/lib/error.d.ts +6 -0
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +21 -1
- package/lib/executable/entry.d.ts +5 -0
- package/lib/executable/entry.d.ts.map +1 -1
- package/lib/executable/entry.js +24 -1
- package/lib/executable/error.d.ts +4 -0
- package/lib/executable/error.d.ts.map +1 -1
- package/lib/executable/error.js +23 -1
- package/lib/executable/index.js +16 -1
- package/lib/index.js +16 -1
- package/lib/io.d.ts +39 -0
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +96 -11
- package/lib/package.d.ts +22 -0
- package/lib/package.d.ts.map +1 -1
- package/lib/package.js +53 -3
- package/lib/preset/content.d.ts +7 -0
- package/lib/preset/content.d.ts.map +1 -1
- package/lib/preset/content.js +20 -1
- package/lib/preset/context.d.ts +4 -0
- package/lib/preset/context.d.ts.map +1 -1
- package/lib/preset/context.js +19 -1
- package/lib/preset/graph.d.ts +17 -0
- package/lib/preset/graph.d.ts.map +1 -1
- package/lib/preset/graph.js +34 -1
- package/lib/preset/index.js +25 -1
- package/lib/preset/mapping.d.ts +6 -0
- package/lib/preset/mapping.d.ts.map +1 -1
- package/lib/preset/mapping.js +25 -2
- package/lib/preset/presetterRC.d.ts +19 -0
- package/lib/preset/presetterRC.d.ts.map +1 -1
- package/lib/preset/presetterRC.js +37 -1
- package/lib/preset/scripts.d.ts +4 -0
- package/lib/preset/scripts.d.ts.map +1 -1
- package/lib/preset/scripts.js +19 -1
- package/lib/preset/setup.d.ts +10 -0
- package/lib/preset/setup.d.ts.map +1 -1
- package/lib/preset/setup.js +38 -1
- package/lib/preset/unset.d.ts +3 -0
- package/lib/preset/unset.d.ts.map +1 -1
- package/lib/preset/unset.js +18 -1
- package/lib/resolution.d.ts +17 -0
- package/lib/resolution.d.ts.map +1 -1
- package/lib/resolution.js +33 -1
- package/lib/run.d.ts +7 -0
- package/lib/run.d.ts.map +1 -1
- package/lib/run.js +77 -1
- package/lib/scripts.d.ts +12 -0
- package/lib/scripts.d.ts.map +1 -1
- package/lib/scripts.js +50 -1
- package/lib/task.d.ts +18 -0
- package/lib/task.d.ts.map +1 -1
- package/lib/task.js +40 -2
- package/lib/template.d.ts +47 -0
- package/lib/template.d.ts.map +1 -1
- package/lib/template.js +96 -2
- package/lib/utilities/index.js +16 -1
- package/lib/utilities/mapValues.d.ts +6 -0
- package/lib/utilities/mapValues.d.ts.map +1 -1
- package/lib/utilities/mapValues.js +21 -1
- package/package.json +3 -3
package/lib/template.js
CHANGED
@@ -1,22 +1,56 @@
|
|
1
|
+
/*
|
2
|
+
* *** MIT LICENSE ***
|
3
|
+
* -------------------------------------------------------------------------
|
4
|
+
* This code may be modified and distributed under the MIT license.
|
5
|
+
* See the LICENSE file for details.
|
6
|
+
* -------------------------------------------------------------------------
|
7
|
+
*
|
8
|
+
* @summary Collection of template related helpers
|
9
|
+
*
|
10
|
+
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
+
* @license MIT
|
12
|
+
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
13
|
+
* -------------------------------------------------------------------------
|
14
|
+
*/
|
1
15
|
import { basename, extname } from 'node:path';
|
2
16
|
import pupa from 'pupa';
|
3
17
|
export function filter(subject, ...ignores) {
|
18
|
+
// compute the list of fields in config to be ignored
|
4
19
|
const fieldsToIgnore = ignores.filter((ignore) => typeof ignore !== 'object');
|
20
|
+
// filter the unwanted item in an array
|
5
21
|
if (Array.isArray(subject)) {
|
6
22
|
return subject.filter((_, key) => !fieldsToIgnore.includes(key));
|
7
23
|
}
|
24
|
+
// filter the unwanted fields below
|
8
25
|
const distilled = Object.fromEntries(Object.entries(subject).filter(([key, _]) => !fieldsToIgnore.includes(key)));
|
26
|
+
// compute the left over and process them further below
|
9
27
|
const moreRules = ignores.filter((ignore) => typeof ignore !== 'string');
|
28
|
+
// continue filtering the left over
|
10
29
|
return moreRules.reduce((furtherDistilled, ignoreTree) => Object.fromEntries(Object.entries(furtherDistilled).map(([key, value]) => [
|
11
30
|
key,
|
12
31
|
filterByPath(value, ignoreTree[key]),
|
13
32
|
])), distilled);
|
14
33
|
}
|
34
|
+
/**
|
35
|
+
* filter a value according to the supplied ignore rules
|
36
|
+
* @param value value to be filtered
|
37
|
+
* @param path ignore rule to be applied
|
38
|
+
* @returns filtered value
|
39
|
+
*/
|
15
40
|
function filterByPath(value, path) {
|
16
41
|
return path && typeof value === 'object'
|
17
|
-
? filter(value,
|
42
|
+
? filter(value,
|
43
|
+
// NOTE
|
44
|
+
// if rule is an array, it means that it contains a list of fields to be ignored
|
45
|
+
// otherwise, it contains rules in a tree form
|
46
|
+
...(Array.isArray(path) ? path : [path]))
|
18
47
|
: value;
|
19
48
|
}
|
49
|
+
/**
|
50
|
+
* indicate whether the supplied value is a JSON object
|
51
|
+
* @param subject the subject to be tested
|
52
|
+
* @returns true if the subject is a JSON object
|
53
|
+
*/
|
20
54
|
export function isJSON(subject) {
|
21
55
|
return [
|
22
56
|
typeof subject === 'object',
|
@@ -24,7 +58,19 @@ export function isJSON(subject) {
|
|
24
58
|
subject !== null,
|
25
59
|
].every((value) => value);
|
26
60
|
}
|
61
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
|
62
|
+
/**
|
63
|
+
* deep merge an object
|
64
|
+
* @param source default object if no additional property is supplied
|
65
|
+
* @param target properties to be merged with the default
|
66
|
+
* @returns merged object
|
67
|
+
*/
|
27
68
|
export function merge(source, target) {
|
69
|
+
// LOGIC
|
70
|
+
// S\R | Array | Object | Primitive
|
71
|
+
// Array | EXTEND | AMEND | replace
|
72
|
+
// Object | replace | MERGE | replace
|
73
|
+
// Primitive | replace | replace | replace
|
28
74
|
if (Array.isArray(source)) {
|
29
75
|
return mergeArray(source, target);
|
30
76
|
}
|
@@ -33,7 +79,17 @@ export function merge(source, target) {
|
|
33
79
|
}
|
34
80
|
return (target ?? source);
|
35
81
|
}
|
82
|
+
/**
|
83
|
+
* merge an array with any value
|
84
|
+
* @param source the source array to be merged
|
85
|
+
* @param target new replacement
|
86
|
+
* @returns merged value
|
87
|
+
*/
|
36
88
|
export function mergeArray(source, target) {
|
89
|
+
// NOTE
|
90
|
+
// merging can only be done in two ways:
|
91
|
+
// 1. the target is also an array, then merge the two arrays
|
92
|
+
// 2. the target is an object with numeric keys representing the index of the value to be merged
|
37
93
|
if (Array.isArray(target)) {
|
38
94
|
return mergeArrays(source, target);
|
39
95
|
}
|
@@ -41,18 +97,43 @@ export function mergeArray(source, target) {
|
|
41
97
|
[...Object.keys(target)].every((key) => parseInt(key) >= 0)) {
|
42
98
|
return [...source].map((value, key) => merge(value, target[key]));
|
43
99
|
}
|
100
|
+
// if a merge isn't possible return the replacement or the original if no replacement is found
|
44
101
|
return (target ?? source);
|
45
102
|
}
|
103
|
+
/**
|
104
|
+
* merge two arrays
|
105
|
+
* @param source the source array to be merged
|
106
|
+
* @param target new replacement
|
107
|
+
* @returns merged array
|
108
|
+
*/
|
46
109
|
export function mergeArrays(source, target) {
|
47
110
|
const isPrimitive = source.every((value) => !isJSON(value)) &&
|
48
111
|
target.every((value) => !isJSON(value));
|
112
|
+
// if there is no object in both list, perform an union
|
113
|
+
// (['a'], ['a']) => ['a']
|
114
|
+
// (['a'], ['b']) => ['a', 'b']
|
115
|
+
// (['a'], ['a', 'b']) => ['a', 'b']
|
49
116
|
if (isPrimitive) {
|
50
117
|
return [...new Set([...source, ...target])];
|
51
118
|
}
|
119
|
+
// if there is an object in any of the list, perform a replacement
|
120
|
+
// (['a', 'b'], [{ c: 1 }]) => [{ c: 1 }]
|
121
|
+
// ([{ a: 1 }], [{ b: 2 }]) => [{ b: 2 }]
|
122
|
+
// ([{ a: 1 }, 'c'], [{ b: 2 }]) => [{ b: 2 }]
|
123
|
+
// (['a'], ['b', { c: 1 }]) => ['b', { c: 1 }]
|
124
|
+
// (['a', { c: 1 }], ['b', { d: 2 }]) => ['b', { d: 2 }]
|
125
|
+
// if a merge isn't possible return the replacement
|
52
126
|
return target;
|
53
127
|
}
|
128
|
+
/**
|
129
|
+
* merge an object with any value
|
130
|
+
* @param source the source object to be merged
|
131
|
+
* @param target new replacement
|
132
|
+
* @returns merged value
|
133
|
+
*/
|
54
134
|
export function mergeObject(source, target) {
|
55
135
|
if (isJSON(target)) {
|
136
|
+
// merge two objects together
|
56
137
|
const mergedSource = Object.fromEntries(Object.entries(source).map(([key, value]) => [
|
57
138
|
key,
|
58
139
|
merge(value, target[key]),
|
@@ -63,8 +144,15 @@ export function mergeObject(source, target) {
|
|
63
144
|
...mergedSource,
|
64
145
|
};
|
65
146
|
}
|
147
|
+
// otherwise replace the source with target
|
66
148
|
return (target ?? source);
|
67
149
|
}
|
150
|
+
/**
|
151
|
+
* merge templates
|
152
|
+
* @param source current template
|
153
|
+
* @param target new template content
|
154
|
+
* @returns customized configuration
|
155
|
+
*/
|
68
156
|
export function mergeTemplate(source, target) {
|
69
157
|
const mergedSource = Object.fromEntries(Object.entries(source).map(([path, template]) => {
|
70
158
|
const replacement = target[path];
|
@@ -72,6 +160,11 @@ export function mergeTemplate(source, target) {
|
|
72
160
|
basename(path).startsWith('.') &&
|
73
161
|
typeof template === 'string' &&
|
74
162
|
typeof replacement === 'string';
|
163
|
+
// NOTE
|
164
|
+
// for JSON content, merge with the specified mode
|
165
|
+
// for string content, there are two scenarios:
|
166
|
+
// 1. if the content is a list such as an ignore file, merge as appendion
|
167
|
+
// 2. for others such as a typescript file, merge as override
|
75
168
|
if (isIgnoreFile) {
|
76
169
|
const mergedSet = new Set([
|
77
170
|
...template.split('\n'),
|
@@ -102,4 +195,5 @@ export function template(content, parameter) {
|
|
102
195
|
return content;
|
103
196
|
}
|
104
197
|
}
|
105
|
-
|
198
|
+
/* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQThCeEIsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsT0FBNEMsRUFDNUMsR0FBRyxPQUFxQjtJQUV4QixxREFBcUQ7SUFDckQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxNQUFNLEVBQTZCLEVBQUUsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQ2xFLENBQUM7SUFFRix1Q0FBdUM7SUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQsbUNBQW1DO0lBQ25DLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM1RSxDQUFDO0lBRUYsdURBQXVEO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzlCLENBQUMsTUFBTSxFQUF3QyxFQUFFLENBQy9DLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FDN0IsQ0FBQztJQUVGLG1DQUFtQztJQUNuQyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQ3JC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
|
package/lib/utilities/index.js
CHANGED
@@ -1,2 +1,17 @@
|
|
1
|
+
/*
|
2
|
+
* *** MIT LICENSE ***
|
3
|
+
* -------------------------------------------------------------------------
|
4
|
+
* This code may be modified and distributed under the MIT license.
|
5
|
+
* See the LICENSE file for details.
|
6
|
+
* -------------------------------------------------------------------------
|
7
|
+
*
|
8
|
+
* @summary Collection of utility functions
|
9
|
+
*
|
10
|
+
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
+
* @license MIT
|
12
|
+
* @copyright Copyright (c) 2023 - All Rights Reserved.
|
13
|
+
* -------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
/* istanbul ignore file */
|
1
16
|
export * from './mapValues.js';
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvdXRpbGl0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCwwQkFBMEI7QUFFMUIsY0FBYyxhQUFhLENBQUMifQ==
|
@@ -1,2 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* map the values of an object to a new object with the same keys
|
3
|
+
* @param obj the object to be mapped
|
4
|
+
* @param fn the mapping function
|
5
|
+
* @returns the mapped object
|
6
|
+
*/
|
1
7
|
export declare function mapValues<T, U>(obj: Record<string, T>, fn: (value: T) => U): Record<string, U>;
|
2
8
|
//# sourceMappingURL=mapValues.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mapValues.d.ts","sourceRoot":"","sources":["../../source/utilities/mapValues.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"mapValues.d.ts","sourceRoot":"","sources":["../../source/utilities/mapValues.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAInB"}
|
@@ -1,4 +1,24 @@
|
|
1
|
+
/*
|
2
|
+
* *** MIT LICENSE ***
|
3
|
+
* -------------------------------------------------------------------------
|
4
|
+
* This code may be modified and distributed under the MIT license.
|
5
|
+
* See the LICENSE file for details.
|
6
|
+
* -------------------------------------------------------------------------
|
7
|
+
*
|
8
|
+
* @summary A helper to map the values of an object to a new object
|
9
|
+
*
|
10
|
+
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
+
* @license MIT
|
12
|
+
* @copyright Copyright (c) 2023 - All Rights Reserved.
|
13
|
+
* -------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
/**
|
16
|
+
* map the values of an object to a new object with the same keys
|
17
|
+
* @param obj the object to be mapped
|
18
|
+
* @param fn the mapping function
|
19
|
+
* @returns the mapped object
|
20
|
+
*/
|
1
21
|
export function mapValues(obj, fn) {
|
2
22
|
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));
|
3
23
|
}
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3V0aWxpdGllcy9tYXBWYWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsR0FBc0IsRUFDdEIsRUFBbUI7SUFFbkIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUM1RCxDQUFDO0FBQ0osQ0FBQyJ9
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "presetter",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.7.0",
|
4
4
|
"engines": {
|
5
5
|
"node": ">=16.0.0"
|
6
6
|
},
|
@@ -38,7 +38,7 @@
|
|
38
38
|
"@types/node": "*",
|
39
39
|
"@types/yargs": "^17.0.0",
|
40
40
|
"type-fest": "^3.12.0",
|
41
|
-
"presetter-preset-strict": "4.
|
41
|
+
"presetter-preset-strict": "4.7.0"
|
42
42
|
},
|
43
43
|
"dependencies": {
|
44
44
|
"@npmcli/arborist": "^6.0.0",
|
@@ -58,7 +58,7 @@
|
|
58
58
|
"write-pkg": "^5.1.0",
|
59
59
|
"yargs": "^17.0.0",
|
60
60
|
"yargs-parser": "^21.0.0",
|
61
|
-
"presetter-types": "4.
|
61
|
+
"presetter-types": "4.7.0"
|
62
62
|
},
|
63
63
|
"scripts": {
|
64
64
|
"bootstrap": "tsx --eval \"require('./source/preset').bootstrapPreset()\" && npm run prepare",
|