presetter 4.7.2 → 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/README.md +5 -5
- package/lib/debugger.d.ts +4 -0
- package/lib/debugger.d.ts.map +1 -0
- package/lib/debugger.js +4 -0
- 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 -16
- package/lib/executable/index.js +2 -16
- package/lib/index.d.ts +4 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -21
- 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 +5 -20
- 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 +7 -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 +6 -20
- 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 +7 -19
- package/lib/scripts.d.ts.map +1 -1
- package/lib/scripts.js +8 -19
- 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 +5 -17
- 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 +5 -17
- 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 +21 -16
- package/lib/content.d.ts +0 -123
- package/lib/content.d.ts.map +0 -1
- package/lib/content.js +0 -241
- 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 -38
- package/lib/preset/presetterRC.d.ts +0 -25
- package/lib/preset/presetterRC.d.ts.map +0 -1
- package/lib/preset/presetterRC.js +0 -74
- 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/mapping.d.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
import type { ResolvedPresetContext, Template } from 'presetter-types';
|
2
|
-
/**
|
3
|
-
* compute the output paths of all configuration files to be generated
|
4
|
-
* @param template resolved template map
|
5
|
-
* @param context resolved context about the target project and customization
|
6
|
-
* @returns mapping of configuration symlinks to its real path
|
7
|
-
*/
|
8
|
-
export declare function getDestinationMap(template: Record<string, Template>, context: ResolvedPresetContext<'noSymlinks'>): Promise<Record<string, string>>;
|
9
|
-
//# sourceMappingURL=mapping.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../source/preset/mapping.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClC,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBjC"}
|
package/lib/preset/mapping.js
DELETED
@@ -1,38 +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 mapping content to the target 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 { resolve } from 'node:path';
|
16
|
-
import resolvePackage from 'resolve-pkg';
|
17
|
-
/**
|
18
|
-
* compute the output paths of all configuration files to be generated
|
19
|
-
* @param template resolved template map
|
20
|
-
* @param context resolved context about the target project and customization
|
21
|
-
* @returns mapping of configuration symlinks to its real path
|
22
|
-
*/
|
23
|
-
export async function getDestinationMap(template, context) {
|
24
|
-
const { custom: { noSymlinks }, target: { root, name }, } = context;
|
25
|
-
// make sure we use the path of presetter under the target project, not the one via npx
|
26
|
-
const presetterDir = resolvePackage('presetter', { cwd: root });
|
27
|
-
const outDir = resolve(presetterDir, '..', '.presetter', name);
|
28
|
-
const relativePaths = [...Object.keys(template)];
|
29
|
-
return Object.fromEntries([
|
30
|
-
...relativePaths.map((relativePath) => [
|
31
|
-
relativePath,
|
32
|
-
resolve(
|
33
|
-
// output on the project root if it's specified as not a symlink
|
34
|
-
noSymlinks.includes(relativePath) ? context.target.root : outDir, relativePath),
|
35
|
-
]),
|
36
|
-
]);
|
37
|
-
}
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9wcmVzZXQvbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFJekM7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxRQUFrQyxFQUNsQyxPQUE0QztJQUU1QyxNQUFNLEVBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3RCLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FDdkIsR0FBRyxPQUFPLENBQUM7SUFDWix1RkFBdUY7SUFDdkYsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFhLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVoRSxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRWpELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQW9CLEVBQUUsQ0FBQztZQUN2RCxZQUFZO1lBQ1osT0FBTztZQUNMLGdFQUFnRTtZQUNoRSxVQUFVLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUNoRSxZQUFZLENBQ2I7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import type { PresetterConfig } from 'presetter-types';
|
2
|
-
/**
|
3
|
-
* get presetter configuration files recursively from the current base up to the monorepo root, if there is one
|
4
|
-
* @param base the base directory to start searching for the configuration file
|
5
|
-
* @returns list of presetter configuration files
|
6
|
-
*/
|
7
|
-
export declare function getPresetterRCPaths(base: string): Promise<string[]>;
|
8
|
-
/**
|
9
|
-
* get the .presetterrc configuration file content
|
10
|
-
* @param root the base directory in which the configuration file should be located
|
11
|
-
* @returns content of the configuration file
|
12
|
-
*/
|
13
|
-
export declare function getPresetterRC(root: string): Promise<PresetterConfig>;
|
14
|
-
/**
|
15
|
-
* update .presetterrc configuration file content
|
16
|
-
* @param root the base directory in which the configuration file should be located
|
17
|
-
* @param config content to be merged with the existing configuration file
|
18
|
-
*/
|
19
|
-
export declare function updatePresetterRC(root: string, config: PresetterConfig): Promise<void>;
|
20
|
-
/**
|
21
|
-
* check that the configuration is valid
|
22
|
-
* @param value content from a configuration file
|
23
|
-
*/
|
24
|
-
export declare function assertPresetterRC(value: unknown): asserts value is PresetterConfig;
|
25
|
-
//# sourceMappingURL=presetterRC.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"presetterRC.d.ts","sourceRoot":"","sources":["../../source/preset/presetterRC.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQvD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAkB3E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,KAAK,IAAI,eAAe,CAOlC"}
|
@@ -1,74 +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 Procedures for related to preset configuration
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
import { existsSync, writeFileSync } from 'node:fs';
|
16
|
-
import { dirname, resolve } from 'node:path';
|
17
|
-
import { readPackageUp } from 'read-pkg-up';
|
18
|
-
import { loadFile } from '../io.js';
|
19
|
-
import { isJSON, merge } from '../template.js';
|
20
|
-
/** presetter configuration filename */
|
21
|
-
const PRESETTERRC = '.presetterrc';
|
22
|
-
const JSON_INDENT = 2;
|
23
|
-
/**
|
24
|
-
* get presetter configuration files recursively from the current base up to the monorepo root, if there is one
|
25
|
-
* @param base the base directory to start searching for the configuration file
|
26
|
-
* @returns list of presetter configuration files
|
27
|
-
*/
|
28
|
-
export async function getPresetterRCPaths(base) {
|
29
|
-
const filesFromBase = ['', '.json']
|
30
|
-
.map((ext) => resolve(base, `${PRESETTERRC}${ext}`))
|
31
|
-
.filter(existsSync);
|
32
|
-
const parent = await readPackageUp({ cwd: dirname(base) });
|
33
|
-
// if the base is the root of a monorepo, stop searching
|
34
|
-
const filesFromParent = parent?.path
|
35
|
-
? await getPresetterRCPaths(dirname(base))
|
36
|
-
: [];
|
37
|
-
return [...filesFromParent, ...filesFromBase];
|
38
|
-
}
|
39
|
-
/**
|
40
|
-
* get the .presetterrc configuration file content
|
41
|
-
* @param root the base directory in which the configuration file should be located
|
42
|
-
* @returns content of the configuration file
|
43
|
-
*/
|
44
|
-
export async function getPresetterRC(root) {
|
45
|
-
// locate all possible configuration files
|
46
|
-
const paths = await getPresetterRCPaths(root);
|
47
|
-
if (!paths.length) {
|
48
|
-
throw new Error('missing presetter configuration file');
|
49
|
-
}
|
50
|
-
const configs = paths.map((path) => loadFile(path, 'json'));
|
51
|
-
const mergedConfig = configs.reduce((mergedConfig, config) => merge(mergedConfig, config), {});
|
52
|
-
assertPresetterRC(mergedConfig);
|
53
|
-
return mergedConfig;
|
54
|
-
}
|
55
|
-
/**
|
56
|
-
* update .presetterrc configuration file content
|
57
|
-
* @param root the base directory in which the configuration file should be located
|
58
|
-
* @param config content to be merged with the existing configuration file
|
59
|
-
*/
|
60
|
-
export async function updatePresetterRC(root, config) {
|
61
|
-
const existingPresetterRC = await getPresetterRC(root).catch(() => ({}));
|
62
|
-
writeFileSync(resolve(root, `${PRESETTERRC}.json`), JSON.stringify(merge(existingPresetterRC, config), null, JSON_INDENT));
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* check that the configuration is valid
|
66
|
-
* @param value content from a configuration file
|
67
|
-
*/
|
68
|
-
export function assertPresetterRC(value) {
|
69
|
-
if (!isJSON(value) ||
|
70
|
-
(typeof value['preset'] !== 'string' && !Array.isArray(value['preset']))) {
|
71
|
-
throw new Error(`invalid presetter configuration file`);
|
72
|
-
}
|
73
|
-
}
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0dGVyUkMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3ByZXNldHRlclJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLNUMsdUNBQXVDO0FBQ3ZDLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUVuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUNwRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDbkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0Qsd0RBQXdEO0lBQ3hELE1BQU0sZUFBZSxHQUFHLE1BQU0sRUFBRSxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsT0FBTyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQy9DLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUN6RDtJQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFjLENBQUMsQ0FBQztJQUV6RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNqQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQ3JELEVBQUUsQ0FDSCxDQUFDO0lBRUYsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEMsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFZLEVBQ1osTUFBdUI7SUFFdkIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpFLGFBQWEsQ0FDWCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsV0FBVyxPQUFPLENBQUMsRUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYztJQUVkLElBQ0UsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2QsQ0FBQyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQ3hFO1FBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQyJ9
|
package/lib/preset/setup.d.ts
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
/** collection of options for bootstrapping */
|
2
|
-
interface BootstrapOptions {
|
3
|
-
/** whether to skip all checks */
|
4
|
-
force?: boolean;
|
5
|
-
}
|
6
|
-
/**
|
7
|
-
* bootstrap the preset to the current project root
|
8
|
-
* @param options collection of options
|
9
|
-
*/
|
10
|
-
export declare function bootstrapPreset(options?: BootstrapOptions): Promise<void>;
|
11
|
-
/**
|
12
|
-
* adopt a preset to the project
|
13
|
-
* @param uris list of name or git url of the preset
|
14
|
-
*/
|
15
|
-
export declare function setupPreset(...uris: string[]): Promise<void>;
|
16
|
-
export {};
|
17
|
-
//# sourceMappingURL=setup.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../source/preset/setup.ts"],"names":[],"mappings":"AAgCA,8CAA8C;AAC9C,UAAU,gBAAgB;IACxB,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE"}
|
package/lib/preset/setup.js
DELETED
@@ -1,80 +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 setting up 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 { info } from 'node:console';
|
16
|
-
import { dirname } from 'node:path';
|
17
|
-
import { readPackage } from 'read-pkg';
|
18
|
-
import { writePackage } from 'write-pkg';
|
19
|
-
import { arePeerPackagesAutoInstalled, getPackage, reifyDependencies, } from '../package.js';
|
20
|
-
import { bootstrapContent } from './content.js';
|
21
|
-
import { getContext } from './context.js';
|
22
|
-
import { updatePresetterRC } from './presetterRC.js';
|
23
|
-
/**
|
24
|
-
* bootstrap the preset to the current project root
|
25
|
-
* @param options collection of options
|
26
|
-
*/
|
27
|
-
export async function bootstrapPreset(options) {
|
28
|
-
const context = await getContext();
|
29
|
-
// install all related packages first
|
30
|
-
if (!arePeerPackagesAutoInstalled()) {
|
31
|
-
await reifyDependencies({ root: context.target.root });
|
32
|
-
}
|
33
|
-
// generate configurations
|
34
|
-
await bootstrapContent(context, options);
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* adopt a preset to the project
|
38
|
-
* @param uris list of name or git url of the preset
|
39
|
-
*/
|
40
|
-
export async function setupPreset(...uris) {
|
41
|
-
// NOTE: comparing packages before and after installation is the only reliable way
|
42
|
-
// to extract the name of the preset in case it's given as a git url or file path etc.
|
43
|
-
const { path } = await getPackage();
|
44
|
-
const root = dirname(path);
|
45
|
-
const packageBefore = (await readPackage({ cwd: root })).devDependencies;
|
46
|
-
// install presetter & the preset
|
47
|
-
info(`Installing ${uris.join(' ')}... it may take a few moment...`);
|
48
|
-
await reifyDependencies({
|
49
|
-
root,
|
50
|
-
add: ['presetter', ...uris],
|
51
|
-
saveAs: 'dev',
|
52
|
-
lockFile: true,
|
53
|
-
});
|
54
|
-
// extract the name of the installed preset
|
55
|
-
const packageAfter = (await readPackage({ cwd: root })).devDependencies;
|
56
|
-
const newPackages = getNewPackages({ ...packageBefore }, { ...packageAfter });
|
57
|
-
const preset = newPackages.filter((name) => name !== 'presetter');
|
58
|
-
info('Updating .presetterrc.json & package.json');
|
59
|
-
// update .presetterrc.json
|
60
|
-
await updatePresetterRC(root, { preset });
|
61
|
-
// bootstrap configuration files with the new .presetterrc.json
|
62
|
-
const context = await getContext();
|
63
|
-
await bootstrapContent(context);
|
64
|
-
// insert post install script if not preset
|
65
|
-
const json = context.target.package;
|
66
|
-
const scripts = { prepare: 'presetter bootstrap', ...json.scripts };
|
67
|
-
const patched = { ...json, scripts };
|
68
|
-
await writePackage(root, patched);
|
69
|
-
info('Done. Enjoy coding!');
|
70
|
-
}
|
71
|
-
/**
|
72
|
-
* get a list of new packages installed by comparing the before and after state of devDependencies in package.json
|
73
|
-
* @param before before state of devDependencies in package.json
|
74
|
-
* @param after after state of devDependencies in package.json
|
75
|
-
* @returns list of new package names
|
76
|
-
*/
|
77
|
-
function getNewPackages(before, after) {
|
78
|
-
return Object.keys(after).filter((name) => !before[name]);
|
79
|
-
}
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvcHJlc2V0L3NldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsVUFBVSxFQUNWLGlCQUFpQixHQUNsQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxlQUFlLENBQ25DLE9BQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFbkMscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxFQUFFO1FBQ25DLE1BQU0saUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFDakQsa0ZBQWtGO0lBQ2xGLHNGQUFzRjtJQUN0RixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO0lBRXpFLGlDQUFpQztJQUNqQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0saUJBQWlCLENBQUM7UUFDdEIsSUFBSTtRQUNKLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSztRQUNiLFFBQVEsRUFBRSxJQUFJO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsMkNBQTJDO0lBQzNDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztJQUVsRSxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNsRCwyQkFBMkI7SUFDM0IsTUFBTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLCtEQUErRDtJQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEMsMkNBQTJDO0lBQzNDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQStDLENBQUMsQ0FBQztJQUUxRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWMsQ0FDckIsTUFBOEIsRUFDOUIsS0FBNkI7SUFFN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
|
package/lib/preset/unset.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"unset.d.ts","sourceRoot":"","sources":["../../source/preset/unset.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAQjD"}
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFhaEM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsUUFBZ0I7SUFDM0MsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNsQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUNsQyxHQUFtQixFQUNuQixPQUFxRDtJQUVyRCw0Q0FBNEM7SUFDNUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FDWixHQUFHLFlBQVksUUFBUTtRQUNyQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBZ0MsQ0FBQztRQUM3QyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUNmLENBQUMsR0FBRyxDQUNILEtBQUssRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBMEIsRUFBRSxDQUFDO1FBQ3ZELFlBQVk7UUFDWixNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBZ0MsQ0FBQztLQUMzRCxDQUNGLENBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3pELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBTSxDQUFDO0tBQzdCO1NBQU07UUFDTCxPQUFPLEtBQVUsQ0FBQztLQUNuQjtBQUNILENBQUMifQ==
|
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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"}
|