presetter 5.0.0 → 6.0.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/lib/executable/entry.d.ts.map +1 -1
- package/lib/executable/entry.js +4 -43
- package/lib/executable/error.d.ts.map +1 -1
- package/lib/executable/error.js +1 -15
- package/lib/executable/index.js +1 -15
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -20
- package/lib/io.d.ts +8 -42
- package/lib/io.d.ts.map +1 -1
- package/lib/io.js +24 -156
- package/lib/package.d.ts +2 -2
- package/lib/package.d.ts.map +1 -1
- package/lib/package.js +3 -17
- package/lib/preset/bootstrap.d.ts +5 -0
- package/lib/preset/bootstrap.d.ts.map +1 -0
- package/lib/preset/bootstrap.js +32 -0
- package/lib/preset/config/index.d.ts +3 -0
- package/lib/preset/config/index.d.ts.map +1 -0
- package/lib/preset/config/index.js +4 -0
- package/lib/preset/config/resolve.d.ts +8 -0
- package/lib/preset/config/resolve.d.ts.map +1 -0
- package/lib/preset/config/resolve.js +25 -0
- package/lib/preset/config/search.d.ts +7 -0
- package/lib/preset/config/search.d.ts.map +1 -0
- package/lib/preset/config/search.js +25 -0
- package/lib/preset/context.d.ts +2 -1
- package/lib/preset/context.d.ts.map +1 -1
- package/lib/preset/context.js +5 -24
- package/lib/preset/index.d.ts +5 -2
- package/lib/preset/index.d.ts.map +1 -1
- package/lib/preset/index.js +6 -18
- package/lib/preset/project.d.ts +8 -0
- package/lib/preset/project.d.ts.map +1 -0
- package/lib/preset/project.js +28 -0
- package/lib/preset/resolution/asset.d.ts +31 -0
- package/lib/preset/resolution/asset.d.ts.map +1 -0
- package/lib/preset/resolution/asset.js +78 -0
- package/lib/preset/resolution/content.d.ts +37 -0
- package/lib/preset/resolution/content.d.ts.map +1 -0
- package/lib/preset/resolution/content.js +55 -0
- package/lib/preset/resolution/debugger.d.ts +3 -0
- package/lib/preset/resolution/debugger.d.ts.map +1 -0
- package/lib/preset/resolution/debugger.js +3 -0
- package/lib/preset/resolution/index.d.ts +6 -0
- package/lib/preset/resolution/index.d.ts.map +1 -0
- package/lib/preset/resolution/index.js +7 -0
- package/lib/preset/resolution/object.d.ts +9 -0
- package/lib/preset/resolution/object.d.ts.map +1 -0
- package/lib/preset/resolution/object.js +10 -0
- package/lib/preset/resolution/preset.d.ts +9 -0
- package/lib/preset/resolution/preset.d.ts.map +1 -0
- package/lib/preset/resolution/preset.js +17 -0
- package/lib/preset/resolution/script.d.ts +9 -0
- package/lib/preset/resolution/script.d.ts.map +1 -0
- package/lib/preset/resolution/script.js +39 -0
- package/lib/preset/resolution/variable.d.ts +9 -0
- package/lib/preset/resolution/variable.d.ts.map +1 -0
- package/lib/preset/resolution/variable.js +33 -0
- package/lib/preset/scripts.d.ts.map +1 -1
- package/lib/preset/scripts.js +5 -22
- package/lib/resolve.d.ts +7 -0
- package/lib/resolve.d.ts.map +1 -0
- package/lib/resolve.js +27 -0
- package/lib/run.d.ts.map +1 -1
- package/lib/run.js +4 -19
- package/lib/scripts.d.ts.map +1 -1
- package/lib/scripts.js +3 -18
- package/lib/serialization.d.ts +15 -0
- package/lib/serialization.d.ts.map +1 -0
- package/lib/serialization.js +48 -0
- package/lib/task.d.ts.map +1 -1
- package/lib/task.js +1 -16
- package/lib/template/index.d.ts +3 -0
- package/lib/template/index.d.ts.map +1 -0
- package/lib/template/index.js +4 -0
- package/lib/template/merge.d.ts +33 -0
- package/lib/template/merge.d.ts.map +1 -0
- package/lib/template/merge.js +84 -0
- package/lib/template/substitute.d.ts +11 -0
- package/lib/template/substitute.d.ts.map +1 -0
- package/lib/template/substitute.js +19 -0
- package/lib/utilities/display.d.ts +15 -0
- package/lib/utilities/display.d.ts.map +1 -0
- package/lib/utilities/display.js +51 -0
- package/lib/utilities/index.d.ts +3 -1
- package/lib/utilities/index.d.ts.map +1 -1
- package/lib/utilities/index.js +4 -16
- package/lib/utilities/{mapValues.d.ts → mapping.d.ts} +1 -1
- package/lib/utilities/mapping.d.ts.map +1 -0
- package/lib/utilities/mapping.js +10 -0
- package/lib/utilities/object.d.ts +20 -0
- package/lib/utilities/object.d.ts.map +1 -0
- package/lib/utilities/object.js +37 -0
- package/package.json +10 -7
- package/lib/content.d.ts +0 -123
- package/lib/content.d.ts.map +0 -1
- package/lib/content.js +0 -244
- package/lib/directive.d.ts +0 -34
- package/lib/directive.d.ts.map +0 -1
- package/lib/directive.js +0 -172
- package/lib/error.d.ts +0 -8
- package/lib/error.d.ts.map +0 -1
- package/lib/error.js +0 -32
- package/lib/preset/content.d.ts +0 -14
- package/lib/preset/content.d.ts.map +0 -1
- package/lib/preset/content.js +0 -32
- package/lib/preset/graph.d.ts +0 -22
- package/lib/preset/graph.d.ts.map +0 -1
- package/lib/preset/graph.js +0 -53
- package/lib/preset/mapping.d.ts +0 -9
- package/lib/preset/mapping.d.ts.map +0 -1
- package/lib/preset/mapping.js +0 -41
- package/lib/preset/presetterRC.d.ts +0 -25
- package/lib/preset/presetterRC.d.ts.map +0 -1
- package/lib/preset/presetterRC.js +0 -76
- package/lib/preset/setup.d.ts +0 -17
- package/lib/preset/setup.d.ts.map +0 -1
- package/lib/preset/setup.js +0 -80
- package/lib/preset/unset.d.ts +0 -5
- package/lib/preset/unset.d.ts.map +0 -1
- package/lib/preset/unset.js +0 -31
- package/lib/resolution.d.ts +0 -22
- package/lib/resolution.d.ts.map +0 -1
- package/lib/resolution.js +0 -61
- package/lib/template.d.ts +0 -64
- package/lib/template.d.ts.map +0 -1
- package/lib/template.js +0 -199
- package/lib/utilities/mapValues.d.ts.map +0 -1
- package/lib/utilities/mapValues.js +0 -24
package/lib/preset/unset.js
DELETED
@@ -1,31 +0,0 @@
|
|
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 helpers for unsetting a project
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
import { resolveContext, resolveTemplate } from '../content.js';
|
16
|
-
import { unlinkFiles } from '../io.js';
|
17
|
-
import { getContext } from './context.js';
|
18
|
-
import { getPresetGraph } from './graph.js';
|
19
|
-
import { getDestinationMap } from './mapping.js';
|
20
|
-
/**
|
21
|
-
* uninstall the preset from the current project root
|
22
|
-
*/
|
23
|
-
export async function unsetPreset() {
|
24
|
-
const context = await getContext();
|
25
|
-
const graph = await getPresetGraph(context);
|
26
|
-
const resolvedContext = await resolveContext({ graph, context });
|
27
|
-
const content = await resolveTemplate({ graph, context: resolvedContext });
|
28
|
-
const configurationLink = await getDestinationMap(content, resolvedContext);
|
29
|
-
unlinkFiles(context.target.root, configurationLink);
|
30
|
-
}
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3Vuc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFNUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
|
package/lib/resolution.d.ts
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
import type { DynamicAsset, DynamicAssetField, Generator, PresetAsset, PresetterConfig, RequiredResolution, ResolvedPresetContext, Template } from 'presetter-types';
|
2
|
-
/**
|
3
|
-
* compute the corresponding field within the config field of .presetterrc
|
4
|
-
* @param filename link name
|
5
|
-
* @returns field name in config
|
6
|
-
*/
|
7
|
-
export declare function getConfigKey(filename: string): string;
|
8
|
-
/**
|
9
|
-
* resolve a dynamic asset content
|
10
|
-
* @param map a dynamic map to be resolved
|
11
|
-
* @param context arguments to be passed to the generator function
|
12
|
-
* @returns content of the resolved field
|
13
|
-
*/
|
14
|
-
export declare function loadDynamicMap<F extends DynamicAssetField>(map: PresetAsset[F], context: ResolvedPresetContext<RequiredResolution<F>>): Promise<Record<string, DynamicAsset<F>>>;
|
15
|
-
/**
|
16
|
-
* load a potentially dynamic content
|
17
|
-
* @param value content to be loaded
|
18
|
-
* @param context context to be supplied to the generator
|
19
|
-
* @returns resolved content
|
20
|
-
*/
|
21
|
-
export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
|
22
|
-
//# sourceMappingURL=resolution.d.ts.map
|
package/lib/resolution.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resolution.d.ts","sourceRoot":"","sources":["../source/resolution.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,iBAAiB,EAC9D,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAgB1C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,EAC7B,CAAC,SAAS,MAAM,eAAe,EAE/B,KAAK,EACD,MAAM,GACN,CAAC,GACD,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
|
package/lib/resolution.js
DELETED
@@ -1,61 +0,0 @@
|
|
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 helpers for resolving content
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2022 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
import { existsSync } from 'node:fs';
|
16
|
-
import { basename, extname } from 'node:path';
|
17
|
-
import { loadFile } from './io.js';
|
18
|
-
/**
|
19
|
-
* compute the corresponding field within the config field of .presetterrc
|
20
|
-
* @param filename link name
|
21
|
-
* @returns field name in config
|
22
|
-
*/
|
23
|
-
export function getConfigKey(filename) {
|
24
|
-
return basename(filename, extname(filename))
|
25
|
-
.replace(/^\./, '')
|
26
|
-
.replace(/rc$/, '')
|
27
|
-
.replace(/\.config$/, '');
|
28
|
-
}
|
29
|
-
/**
|
30
|
-
* resolve a dynamic asset content
|
31
|
-
* @param map a dynamic map to be resolved
|
32
|
-
* @param context arguments to be passed to the generator function
|
33
|
-
* @returns content of the resolved field
|
34
|
-
*/
|
35
|
-
export async function loadDynamicMap(map, context) {
|
36
|
-
// load templated configuration from presets
|
37
|
-
return Object.fromEntries(await Promise.all(Object.entries(map instanceof Function
|
38
|
-
? await map(context)
|
39
|
-
: { ...map }).map(async ([relativePath, value]) => [
|
40
|
-
relativePath,
|
41
|
-
await loadDynamic(value, context),
|
42
|
-
])));
|
43
|
-
}
|
44
|
-
/**
|
45
|
-
* load a potentially dynamic content
|
46
|
-
* @param value content to be loaded
|
47
|
-
* @param context context to be supplied to the generator
|
48
|
-
* @returns resolved content
|
49
|
-
*/
|
50
|
-
export async function loadDynamic(value, context) {
|
51
|
-
if (typeof value === 'function') {
|
52
|
-
return value(context);
|
53
|
-
}
|
54
|
-
else if (typeof value === 'string' && existsSync(value)) {
|
55
|
-
return loadFile(value);
|
56
|
-
}
|
57
|
-
else {
|
58
|
-
return value;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFhaEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBZ0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUVyRCw0Q0FBNEM7SUFDNUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFHLFlBQVksUUFBUTtRQUNyQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBZ0MsQ0FBQztRQUM3QyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUNmLENBQUMsR0FBRyxDQUNILEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBMEIsRUFBRSxDQUFDO1FBQ3ZELFlBQVk7UUFDWixNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBZ0MsQ0FBQztLQUMzRCxDQUNGLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxLQUFVLENBQUM7SUFDcEIsQ0FBQztBQUNILENBQUMifQ==
|
package/lib/template.d.ts
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
import type { IgnoreRule, PrimitiveEntity } from 'presetter-types';
|
2
|
-
import type { JsonObject, JsonValue } from 'type-fest';
|
3
|
-
type MergedType<A, B> = A extends JsonObject ? B extends JsonObject ? A & B : MergedArray<A, B> : MergedArray<A, B>;
|
4
|
-
type MergedArray<A, B> = A extends JsonValue[] ? B extends JsonValue[] ? Array<A[number] | B[number]> : keyof B extends `${number}` ? JsonValue[] : B : B;
|
5
|
-
/**
|
6
|
-
* remove part of the template content according to the given rules
|
7
|
-
* @param subject an object to be filtered
|
8
|
-
* @param ignores a list of ignore rules
|
9
|
-
* @returns filtered content
|
10
|
-
*/
|
11
|
-
export declare function filter<C extends Record<string, unknown>>(subject: C, ...ignores: IgnoreRule[]): C;
|
12
|
-
export declare function filter(subject: unknown[], ...ignores: IgnoreRule[]): unknown[];
|
13
|
-
/**
|
14
|
-
* indicate whether the supplied value is a JSON object
|
15
|
-
* @param subject the subject to be tested
|
16
|
-
* @returns true if the subject is a JSON object
|
17
|
-
*/
|
18
|
-
export declare function isJSON(subject: unknown): subject is JsonObject;
|
19
|
-
/**
|
20
|
-
* deep merge an object
|
21
|
-
* @param source default object if no additional property is supplied
|
22
|
-
* @param target properties to be merged with the default
|
23
|
-
* @returns merged object
|
24
|
-
*/
|
25
|
-
export declare function merge<S extends JsonValue, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
|
26
|
-
/**
|
27
|
-
* merge an array with any value
|
28
|
-
* @param source the source array to be merged
|
29
|
-
* @param target new replacement
|
30
|
-
* @returns merged value
|
31
|
-
*/
|
32
|
-
export declare function mergeArray<S extends JsonValue, T extends PrimitiveEntity>(source: S[], target?: T): MergedArray<S[], T>;
|
33
|
-
/**
|
34
|
-
* merge two arrays
|
35
|
-
* @param source the source array to be merged
|
36
|
-
* @param target new replacement
|
37
|
-
* @returns merged array
|
38
|
-
*/
|
39
|
-
export declare function mergeArrays<S extends JsonValue, T extends JsonValue>(source: S[], target: T[]): MergedArray<S[], T[]>;
|
40
|
-
/**
|
41
|
-
* merge an object with any value
|
42
|
-
* @param source the source object to be merged
|
43
|
-
* @param target new replacement
|
44
|
-
* @returns merged value
|
45
|
-
*/
|
46
|
-
export declare function mergeObject<S extends JsonObject, T extends PrimitiveEntity>(source: S, target?: T): MergedType<S, T>;
|
47
|
-
/**
|
48
|
-
* merge templates
|
49
|
-
* @param source current template
|
50
|
-
* @param target new template content
|
51
|
-
* @returns customized configuration
|
52
|
-
*/
|
53
|
-
export declare function mergeTemplate(source: Record<string, JsonObject | string>, target: Record<string, JsonObject | string>): Record<string, JsonObject | string>;
|
54
|
-
/**
|
55
|
-
* replace parameters in the template
|
56
|
-
* @param content template content
|
57
|
-
* @param parameter variables to be substituted in the template
|
58
|
-
* @returns customized configuration
|
59
|
-
*/
|
60
|
-
export declare function template(content: string, parameter: Record<string, string>): string;
|
61
|
-
export declare function template<Content extends Record<string, unknown> | unknown[]>(content: Content, parameter: Record<string, string>): Content;
|
62
|
-
export declare function template(content: unknown, parameter: Record<string, string>): unknown;
|
63
|
-
export {};
|
64
|
-
//# sourceMappingURL=template.d.ts.map
|
package/lib/template.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../source/template.ts"],"names":[],"mappings":"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"}
|
package/lib/template.js
DELETED
@@ -1,199 +0,0 @@
|
|
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
|
-
*/
|
15
|
-
import { basename, extname } from 'node:path';
|
16
|
-
import pupa from 'pupa';
|
17
|
-
export function filter(subject, ...ignores) {
|
18
|
-
// compute the list of fields in config to be ignored
|
19
|
-
const fieldsToIgnore = ignores.filter((ignore) => typeof ignore !== 'object');
|
20
|
-
// filter the unwanted item in an array
|
21
|
-
if (Array.isArray(subject)) {
|
22
|
-
return subject.filter((_, key) => !fieldsToIgnore.includes(key));
|
23
|
-
}
|
24
|
-
// filter the unwanted fields below
|
25
|
-
const distilled = Object.fromEntries(Object.entries(subject).filter(([key, _]) => !fieldsToIgnore.includes(key)));
|
26
|
-
// compute the left over and process them further below
|
27
|
-
const moreRules = ignores.filter((ignore) => typeof ignore !== 'string');
|
28
|
-
// continue filtering the left over
|
29
|
-
return moreRules.reduce((furtherDistilled, ignoreTree) => Object.fromEntries(Object.entries(furtherDistilled).map(([key, value]) => [
|
30
|
-
key,
|
31
|
-
filterByPath(value, ignoreTree[key]),
|
32
|
-
])), distilled);
|
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
|
-
*/
|
40
|
-
function filterByPath(value, path) {
|
41
|
-
return path && typeof value === 'object'
|
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]))
|
47
|
-
: value;
|
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
|
-
*/
|
54
|
-
export function isJSON(subject) {
|
55
|
-
return [
|
56
|
-
typeof subject === 'object',
|
57
|
-
!Array.isArray(subject),
|
58
|
-
subject !== null,
|
59
|
-
].every((value) => value);
|
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
|
-
*/
|
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
|
74
|
-
if (Array.isArray(source)) {
|
75
|
-
return mergeArray(source, target);
|
76
|
-
}
|
77
|
-
else if (isJSON(source)) {
|
78
|
-
return mergeObject(source, target);
|
79
|
-
}
|
80
|
-
return (target ?? source);
|
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
|
-
*/
|
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
|
93
|
-
if (Array.isArray(target)) {
|
94
|
-
return mergeArrays(source, target);
|
95
|
-
}
|
96
|
-
else if (isJSON(target) &&
|
97
|
-
[...Object.keys(target)].every((key) => parseInt(key) >= 0)) {
|
98
|
-
return [...source].map((value, key) => merge(value, target[key]));
|
99
|
-
}
|
100
|
-
// if a merge isn't possible return the replacement or the original if no replacement is found
|
101
|
-
return (target ?? source);
|
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
|
-
*/
|
109
|
-
export function mergeArrays(source, target) {
|
110
|
-
const isPrimitive = source.every((value) => !isJSON(value)) &&
|
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']
|
116
|
-
if (isPrimitive) {
|
117
|
-
return [...new Set([...source, ...target])];
|
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
|
126
|
-
return target;
|
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
|
-
*/
|
134
|
-
export function mergeObject(source, target) {
|
135
|
-
if (isJSON(target)) {
|
136
|
-
// merge two objects together
|
137
|
-
const mergedSource = Object.fromEntries(Object.entries(source).map(([key, value]) => [
|
138
|
-
key,
|
139
|
-
merge(value, target[key]),
|
140
|
-
]));
|
141
|
-
return {
|
142
|
-
...mergedSource,
|
143
|
-
...target,
|
144
|
-
...mergedSource,
|
145
|
-
};
|
146
|
-
}
|
147
|
-
// otherwise replace the source with target
|
148
|
-
return (target ?? source);
|
149
|
-
}
|
150
|
-
/**
|
151
|
-
* merge templates
|
152
|
-
* @param source current template
|
153
|
-
* @param target new template content
|
154
|
-
* @returns customized configuration
|
155
|
-
*/
|
156
|
-
export function mergeTemplate(source, target) {
|
157
|
-
const mergedSource = Object.fromEntries(Object.entries(source).map(([path, template]) => {
|
158
|
-
const replacement = target[path];
|
159
|
-
const isIgnoreFile = !extname(path) &&
|
160
|
-
basename(path).startsWith('.') &&
|
161
|
-
typeof template === 'string' &&
|
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
|
168
|
-
if (isIgnoreFile) {
|
169
|
-
const mergedSet = new Set([
|
170
|
-
...template.split('\n'),
|
171
|
-
...replacement.split('\n'),
|
172
|
-
]);
|
173
|
-
return [path, [...mergedSet].join('\n')];
|
174
|
-
}
|
175
|
-
else if (typeof template === typeof replacement) {
|
176
|
-
return [path, merge(template, replacement)];
|
177
|
-
}
|
178
|
-
return [path, template];
|
179
|
-
}));
|
180
|
-
return { ...target, ...mergedSource };
|
181
|
-
}
|
182
|
-
export function template(content, parameter) {
|
183
|
-
if (typeof content === 'string') {
|
184
|
-
return pupa(content, parameter, { ignoreMissing: true });
|
185
|
-
}
|
186
|
-
else if (Array.isArray(content)) {
|
187
|
-
return content.map((value) => template(value, parameter));
|
188
|
-
}
|
189
|
-
else if (isJSON(content)) {
|
190
|
-
return Object.fromEntries(Object.entries(content).map(([key, value]) => {
|
191
|
-
return [template(key, parameter), template(value, parameter)];
|
192
|
-
}));
|
193
|
-
}
|
194
|
-
else {
|
195
|
-
return content;
|
196
|
-
}
|
197
|
-
}
|
198
|
-
/* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return */
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQThCeEIsTUFBTSxVQUFVLE1BQU0sQ0FDcEIsT0FBNEMsRUFDNUMsR0FBRyxPQUFxQjtJQUV4QixxREFBcUQ7SUFDckQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxNQUFNLEVBQTZCLEVBQUUsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQ2xFLENBQUM7SUFFRix1Q0FBdUM7SUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDNUUsQ0FBQztJQUVGLHVEQUF1RDtJQUN2RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QixDQUFDLE1BQU0sRUFBd0MsRUFBRSxDQUMvQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQzdCLENBQUM7SUFFRixtQ0FBbUM7SUFDbkMsT0FBTyxTQUFTLENBQUMs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
|
@@ -1 +0,0 @@
|
|
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,24 +0,0 @@
|
|
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
|
-
*/
|
21
|
-
export function mapValues(obj, fn) {
|
22
|
-
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));
|
23
|
-
}
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3V0aWxpdGllcy9tYXBWYWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVIOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsR0FBc0IsRUFDdEIsRUFBbUI7SUFFbkIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUM1RCxDQUFDO0FBQ0osQ0FBQyJ9
|