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
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../source/executable/entry.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../source/executable/entry.ts"],"names":[],"mappings":"AAuFA;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAezD"}
|
package/lib/executable/entry.js
CHANGED
@@ -1,53 +1,22 @@
|
|
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 Entry point for the command line interface (CLI)
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import { existsSync } from 'node:fs';
|
16
2
|
import yargs from 'yargs';
|
17
|
-
import {
|
3
|
+
import { bootstrap } from '../preset/index.js';
|
18
4
|
import { run } from '../run.js';
|
19
5
|
import { parseGlobalArgs, parseTaskSpec } from '../task.js';
|
20
|
-
const useCommand = {
|
21
|
-
command: 'use <preset..>',
|
22
|
-
describe: 'adopt the specified preset to the project',
|
23
|
-
builder: (yargs) => yargs
|
24
|
-
.positional('preset', {
|
25
|
-
required: true,
|
26
|
-
type: 'string',
|
27
|
-
description: 'the name of the preset to be used',
|
28
|
-
})
|
29
|
-
.help(),
|
30
|
-
handler: async (argv) => setupPreset(...argv.preset),
|
31
|
-
};
|
32
6
|
const bootstrapCommand = {
|
33
7
|
command: 'bootstrap',
|
34
8
|
describe: 'setup the project according to the specified preset',
|
35
9
|
builder: (yargs) => yargs
|
36
|
-
.option('force', {
|
37
|
-
type: 'boolean',
|
38
|
-
default: false,
|
39
|
-
description: 'overwrite existing files',
|
40
|
-
})
|
41
10
|
.option('only', {
|
42
11
|
type: 'string',
|
43
12
|
description: 'proceed only if the specified file exists',
|
44
13
|
})
|
45
14
|
.help(),
|
46
15
|
handler: async (argv) => {
|
47
|
-
const {
|
16
|
+
const { only } = argv;
|
48
17
|
// only proceed if the specified file exists
|
49
18
|
if (!only || existsSync(only)) {
|
50
|
-
await
|
19
|
+
await bootstrap();
|
51
20
|
}
|
52
21
|
},
|
53
22
|
};
|
@@ -91,11 +60,6 @@ const runPCommand = {
|
|
91
60
|
await run(tasks, { parallel: true });
|
92
61
|
},
|
93
62
|
};
|
94
|
-
const unsetCommand = {
|
95
|
-
command: 'unset',
|
96
|
-
describe: 'remove all artifacts created by the preset',
|
97
|
-
handler: async () => unsetPreset(),
|
98
|
-
};
|
99
63
|
/**
|
100
64
|
* provide a command line interface
|
101
65
|
* @param args command line arguments
|
@@ -105,18 +69,15 @@ export async function entry(args) {
|
|
105
69
|
await yargs()
|
106
70
|
.parserConfiguration({
|
107
71
|
// make sure flags after end-of-options flag `--` are stored under `--`, not `_`
|
108
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
109
72
|
'populate--': true,
|
110
73
|
})
|
111
74
|
.usage('⚙ presetter: your preset configurator')
|
112
75
|
.showHelpOnFail(true)
|
113
|
-
.command(useCommand)
|
114
76
|
.command(bootstrapCommand)
|
115
77
|
.command(runCommand)
|
116
78
|
.command(runSCommand)
|
117
79
|
.command(runPCommand)
|
118
|
-
.command(unsetCommand)
|
119
80
|
.demandCommand()
|
120
81
|
.parse(args);
|
121
82
|
}
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJekQsTUFBTSxnQkFBZ0IsR0FHbEI7SUFDRixPQUFPLEVBQUUsV0FBVztJQUNwQixRQUFRLEVBQUUscURBQXFEO0lBQy9ELE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEtBQUs7U0FDRixNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2QsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsMkNBQTJDO0tBQ3pELENBQUM7U0FDRCxJQUFJLEVBQUU7SUFDWCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3RCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFdEIsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxTQUFTLEVBQUUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsR0FHWjtJQUNGLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLHVCQUF1QjtJQUNqQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixLQUFLO1NBQ0YsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8s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
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../source/executable/error.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../source/executable/error.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7D"}
|
package/lib/executable/error.js
CHANGED
@@ -1,17 +1,3 @@
|
|
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 Helpers for handling error
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import { warn } from 'node:console';
|
16
2
|
import createCallsiteRecord from 'callsite-record';
|
17
3
|
import chalk from 'chalk';
|
@@ -39,4 +25,4 @@ export async function handleError(error) {
|
|
39
25
|
}
|
40
26
|
}
|
41
27
|
}
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXBDLE9BQU8sb0JBQW9CLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUFDLEtBQVk7SUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sMEJBQTBCO1FBQzFCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTNCLDRCQUE0QjtRQUM1QixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztZQUNsQyxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
|
package/lib/executable/index.js
CHANGED
@@ -1,20 +1,6 @@
|
|
1
1
|
/* v8 ignore start */
|
2
|
-
/*
|
3
|
-
* *** MIT LICENSE ***
|
4
|
-
* -------------------------------------------------------------------------
|
5
|
-
* This code may be modified and distributed under the MIT license.
|
6
|
-
* See the LICENSE file for details.
|
7
|
-
* -------------------------------------------------------------------------
|
8
|
-
*
|
9
|
-
* @summary A command line interface for presetter
|
10
|
-
*
|
11
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
12
|
-
* @license MIT
|
13
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
14
|
-
* -------------------------------------------------------------------------
|
15
|
-
*/
|
16
2
|
import { entry } from './entry.js';
|
17
3
|
import { handleError } from './error.js';
|
18
4
|
const [, , ...args] = process.argv;
|
19
5
|
entry(args).catch(handleError);
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUI7QUFFckIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7QUFFbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyJ9
|
package/lib/index.d.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
export * from 'presetter-types';
|
2
|
-
export * from './
|
3
|
-
export * from './
|
4
|
-
export * from './
|
5
|
-
export * from './
|
6
|
-
export * from './template.js';
|
2
|
+
export * from './preset/index.js';
|
3
|
+
export * from './resolve.js';
|
4
|
+
export * from './run.js';
|
5
|
+
export * from './template/index.js';
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAEA,cAAc,iBAAiB,CAAC;AAEhC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
package/lib/index.js
CHANGED
@@ -1,22 +1,7 @@
|
|
1
1
|
/* v8 ignore start */
|
2
|
-
/*
|
3
|
-
* *** MIT LICENSE ***
|
4
|
-
* -------------------------------------------------------------------------
|
5
|
-
* This code may be modified and distributed under the MIT license.
|
6
|
-
* See the LICENSE file for details.
|
7
|
-
* -------------------------------------------------------------------------
|
8
|
-
*
|
9
|
-
* @summary Collection of public types
|
10
|
-
*
|
11
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
12
|
-
* @license MIT
|
13
|
-
* @copyright Copyright (c) 2020 - All Rights Reserved.
|
14
|
-
* -------------------------------------------------------------------------
|
15
|
-
*/
|
16
2
|
export * from 'presetter-types';
|
17
|
-
export * from './
|
18
|
-
export * from './
|
19
|
-
export * from './
|
20
|
-
export * from './
|
21
|
-
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBRXJCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsTUFBTSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDIn0=
|
3
|
+
export * from './preset/index.js';
|
4
|
+
export * from './resolve.js';
|
5
|
+
export * from './run.js';
|
6
|
+
export * from './template/index.js';
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBRXJCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxZQUFZLENBQUMifQ==
|
package/lib/io.d.ts
CHANGED
@@ -1,50 +1,16 @@
|
|
1
|
-
import type {
|
2
|
-
|
3
|
-
export interface IOOptions {
|
4
|
-
/** whether to overwrite existing files */
|
5
|
-
force?: boolean;
|
6
|
-
}
|
7
|
-
/**
|
8
|
-
* check if a path is either a link or a file with multiple hard links
|
9
|
-
* @param path path to be checked
|
10
|
-
* @returns true if the path is a link or a file with multiple hard links
|
11
|
-
*/
|
12
|
-
export declare function islink(path: string): boolean;
|
1
|
+
import type { Variables } from 'presetter-types';
|
2
|
+
import type { JsonObject } from 'type-fest';
|
13
3
|
/**
|
14
4
|
* load the content of a file
|
15
5
|
* @param path file path to be loaded
|
16
|
-
* @param
|
6
|
+
* @param variables variables to be used during the resolution
|
17
7
|
* @returns content of the file
|
18
8
|
*/
|
19
|
-
export declare function loadFile(path: string,
|
20
|
-
export declare function loadFile(path: string, defaultFormat?: 'text'): string;
|
21
|
-
/**
|
22
|
-
* serialize a configuration content to the right format according to its destination
|
23
|
-
* @param destination the path to which the content will be written
|
24
|
-
* @param content configuration content
|
25
|
-
* @returns serialized content
|
26
|
-
*/
|
27
|
-
export declare function serializeContent(destination: string, content: Template): string;
|
28
|
-
/**
|
29
|
-
* write all generated configuration to their destination
|
30
|
-
* @param root path to the target project root
|
31
|
-
* @param config a map of configuration content and its path to be written
|
32
|
-
* @param pathMap a map of keys in the config map and their destination path
|
33
|
-
* @param options collection of options
|
34
|
-
*/
|
35
|
-
export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string>, options?: IOOptions): void;
|
36
|
-
/**
|
37
|
-
* link generated files to the project root
|
38
|
-
* @param root path to the target project root
|
39
|
-
* @param configurationLink map of symlinks to its real path
|
40
|
-
* @param options collection of options
|
41
|
-
*/
|
42
|
-
export declare function linkFiles(root: string, configurationLink: Record<string, string>, options?: IOOptions): void;
|
9
|
+
export declare function loadFile(path: string, variables?: Variables): JsonObject | string[] | Buffer;
|
43
10
|
/**
|
44
|
-
*
|
45
|
-
* @param
|
46
|
-
* @param
|
47
|
-
* @param options collection of options
|
11
|
+
* ensure that there is a file at the given path with the given content
|
12
|
+
* @param path path where the file should be created
|
13
|
+
* @param content content of the file
|
48
14
|
*/
|
49
|
-
export declare function
|
15
|
+
export declare function ensureFile(path: string, content: string | Buffer): void;
|
50
16
|
//# sourceMappingURL=io.d.ts.map
|
package/lib/io.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../source/io.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../source/io.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,GACxB,UAAU,GAAG,MAAM,EAAE,GAAG,MAAM,CAwBhC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE"}
|
package/lib/io.js
CHANGED
@@ -1,164 +1,32 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* See the LICENSE file for details.
|
6
|
-
* -------------------------------------------------------------------------
|
7
|
-
*
|
8
|
-
* @summary Collection of io 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 { info } from 'node:console';
|
16
|
-
import { linkSync, lstatSync, mkdirSync, readFileSync, readlinkSync, statSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
|
17
|
-
import { basename, dirname, extname, relative, resolve } from 'node:path';
|
18
|
-
import { dump, load } from 'js-yaml';
|
19
|
-
// JSON format
|
20
|
-
const INDENT = 2;
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
2
|
+
import { dirname, extname } from 'node:path';
|
3
|
+
import { load } from 'js-yaml';
|
4
|
+
import { substitute } from './template/index.js';
|
21
5
|
/**
|
22
|
-
*
|
23
|
-
* @param path path to be
|
24
|
-
* @
|
6
|
+
* load the content of a file
|
7
|
+
* @param path file path to be loaded
|
8
|
+
* @param variables variables to be used during the resolution
|
9
|
+
* @returns content of the file
|
25
10
|
*/
|
26
|
-
export function
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
export function loadFile(path, defaultFormat = 'text') {
|
33
|
-
const content = readFileSync(path).toString();
|
11
|
+
export function loadFile(path, variables = {}) {
|
12
|
+
if (!existsSync(path)) {
|
13
|
+
throw new Error(`file not found: ${path}`);
|
14
|
+
}
|
15
|
+
const content = readFileSync(path);
|
34
16
|
// parse the content depending on the extension
|
35
|
-
switch (extname(path)
|
17
|
+
switch (extname(path)) {
|
36
18
|
case '.json':
|
37
|
-
return JSON.parse(content);
|
19
|
+
return JSON.parse(substitute(content.toString(), variables));
|
38
20
|
case '.yaml':
|
39
21
|
case '.yml':
|
40
|
-
return load(content);
|
22
|
+
return load(substitute(content.toString(), variables));
|
41
23
|
default:
|
42
|
-
return
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
* @param content configuration content
|
49
|
-
* @returns serialized content
|
50
|
-
*/
|
51
|
-
export function serializeContent(destination, content) {
|
52
|
-
if (typeof content === 'string') {
|
53
|
-
return content;
|
54
|
-
}
|
55
|
-
switch (extname(destination)) {
|
56
|
-
case '.yaml':
|
57
|
-
case '.yml':
|
58
|
-
return dump(content);
|
59
|
-
case '.json':
|
60
|
-
default:
|
61
|
-
return JSON.stringify(content, null, INDENT);
|
62
|
-
}
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* write all generated configuration to their destination
|
66
|
-
* @param root path to the target project root
|
67
|
-
* @param config a map of configuration content and its path to be written
|
68
|
-
* @param pathMap a map of keys in the config map and their destination path
|
69
|
-
* @param options collection of options
|
70
|
-
*/
|
71
|
-
export function writeFiles(root, config, pathMap, options) {
|
72
|
-
const { force = false } = { ...options };
|
73
|
-
for (const [key, content] of Object.entries(config)) {
|
74
|
-
const destination = pathMap[key];
|
75
|
-
// write content to the destination path
|
76
|
-
if (
|
77
|
-
// force overwrite
|
78
|
-
force ||
|
79
|
-
// file don't exist
|
80
|
-
!lstatSync(destination, { throwIfNoEntry: false }) ||
|
81
|
-
// content to be written under the configurations folder
|
82
|
-
destination !== resolve(root, key)) {
|
83
|
-
info(`Generating ${key}`);
|
84
|
-
ensureFile(destination, serializeContent(destination, content));
|
85
|
-
}
|
86
|
-
else {
|
87
|
-
info(`Skipping ${key}`);
|
88
|
-
}
|
89
|
-
}
|
90
|
-
}
|
91
|
-
/**
|
92
|
-
* link generated files to the project root
|
93
|
-
* @param root path to the target project root
|
94
|
-
* @param configurationLink map of symlinks to its real path
|
95
|
-
* @param options collection of options
|
96
|
-
*/
|
97
|
-
export function linkFiles(root, configurationLink, options) {
|
98
|
-
const { force = false } = { ...options };
|
99
|
-
for (const [file, destination] of Object.entries(configurationLink)) {
|
100
|
-
const path = resolve(root, file);
|
101
|
-
const to = relative(dirname(path), destination);
|
102
|
-
const pathStat = lstatSync(path, { throwIfNoEntry: false });
|
103
|
-
const linkDoesNotExist = !pathStat;
|
104
|
-
if (
|
105
|
-
// for files that mean to be created directly on the target project root, not via symlink
|
106
|
-
to !== basename(to) &&
|
107
|
-
// do not replace any user created files unless overwrite is set
|
108
|
-
(linkDoesNotExist || islink(path) || force)) {
|
109
|
-
info(`Linking ${relative(root, path)} => ${to}`);
|
110
|
-
ensureLink(path, to);
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
/**
|
115
|
-
* unlink generated files from the project root
|
116
|
-
* @param root path to the target project root
|
117
|
-
* @param configurationLink map of symlinks to its real path
|
118
|
-
* @param options collection of options
|
119
|
-
*/
|
120
|
-
export function unlinkFiles(root, configurationLink, options) {
|
121
|
-
const { force = false } = { ...options };
|
122
|
-
for (const [name, destination] of Object.entries(configurationLink)) {
|
123
|
-
const link = readLink(resolve(root, name));
|
124
|
-
const to = relative(root, destination);
|
125
|
-
if (link === to || force) {
|
126
|
-
info(`Removing ${name}`);
|
127
|
-
unlinkSync(resolve(root, name));
|
128
|
-
continue;
|
129
|
-
}
|
130
|
-
info(`Skipping ${name}`);
|
131
|
-
}
|
132
|
-
}
|
133
|
-
/**
|
134
|
-
* resolve a path and follow any symlink
|
135
|
-
* @param path path to be resolved
|
136
|
-
* @returns the target of the symlink or a resolved path if the path is not a symlink
|
137
|
-
*/
|
138
|
-
function readLink(path) {
|
139
|
-
const pathStat = lstatSync(path, { throwIfNoEntry: false });
|
140
|
-
return pathStat?.isSymbolicLink() ? readlinkSync(path) : null;
|
141
|
-
}
|
142
|
-
/**
|
143
|
-
* ensure that there is a symlink at the given path pointing to the target
|
144
|
-
* @param path path where the symlink should be created
|
145
|
-
* @param to target of the symlink
|
146
|
-
*/
|
147
|
-
function ensureLink(path, to) {
|
148
|
-
// create the parent directory if it doesn't exist
|
149
|
-
mkdirSync(dirname(path), { recursive: true });
|
150
|
-
// remove any existing files or symlinks
|
151
|
-
if (lstatSync(path, { throwIfNoEntry: false })) {
|
152
|
-
unlinkSync(path);
|
153
|
-
}
|
154
|
-
// create a new link pointing to the target
|
155
|
-
try {
|
156
|
-
// try to create a hardlink
|
157
|
-
linkSync(to, path);
|
158
|
-
}
|
159
|
-
catch {
|
160
|
-
// if hard link creation failed (e.g. linking across disc boundary) create a symlink instead
|
161
|
-
symlinkSync(to, path);
|
24
|
+
return path.endsWith('ignore')
|
25
|
+
? substitute(content.toString(), variables)
|
26
|
+
.split('\n')
|
27
|
+
.map((line) => line.trim())
|
28
|
+
.filter((line) => !line.startsWith('#'))
|
29
|
+
: content;
|
162
30
|
}
|
163
31
|
}
|
164
32
|
/**
|
@@ -166,10 +34,10 @@ function ensureLink(path, to) {
|
|
166
34
|
* @param path path where the file should be created
|
167
35
|
* @param content content of the file
|
168
36
|
*/
|
169
|
-
function ensureFile(path, content) {
|
37
|
+
export function ensureFile(path, content) {
|
170
38
|
// ensure that all parent folders exist to avoid errors from writeFile
|
171
39
|
mkdirSync(dirname(path), { recursive: true });
|
172
40
|
// write content to the destination path
|
173
41
|
writeFileSync(path, content);
|
174
42
|
}
|
175
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFLeEM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFZLEVBQ1osWUFBdUIsRUFBRTtJQUV6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLCtDQUErQztJQUMvQyxRQUFRLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssT0FBTztZQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUM1QixDQUFDO1FBQ2xCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNO1lBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBZSxDQUFDO1FBQ3ZFO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxDQUFDO3FCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDO3FCQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3FCQUMxQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNoQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVksRUFBRSxPQUF3QjtJQUMvRCxzRUFBc0U7SUFDdEUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTlDLHdDQUF3QztJQUN4QyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLENBQUMifQ==
|
package/lib/package.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
import type { PackageJson } from 'type-fest';
|
2
2
|
/** package detail */
|
3
|
-
export
|
3
|
+
export interface Package {
|
4
4
|
/** path to the package.json */
|
5
5
|
path: string;
|
6
6
|
/** content of package.json */
|
7
7
|
json: PackageJson;
|
8
|
-
}
|
8
|
+
}
|
9
9
|
/**
|
10
10
|
* indicate whether peer packages would be installed automatically
|
11
11
|
* @returns true for npm v7+
|
package/lib/package.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../source/package.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../source/package.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,qBAAqB;AACrB,MAAM,WAAW,OAAO;IACtB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAqBtD;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAahE;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA2BjD"}
|
package/lib/package.js
CHANGED
@@ -1,22 +1,8 @@
|
|
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 Helpers for handling a package
|
9
|
-
*
|
10
|
-
* @author Alvis HT Tang <alvis@hilbert.space>
|
11
|
-
* @license MIT
|
12
|
-
* @copyright Copyright (c) 2019 - All Rights Reserved.
|
13
|
-
* -------------------------------------------------------------------------
|
14
|
-
*/
|
15
1
|
import { homedir } from 'node:os';
|
16
2
|
import { resolve } from 'node:path';
|
3
|
+
import { readPackageUp } from 'read-pkg-up';
|
17
4
|
import { Arborist } from '@npmcli/arborist';
|
18
5
|
import Config from '@npmcli/config';
|
19
|
-
import { readPackageUp } from 'read-pkg-up';
|
20
6
|
const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
|
21
7
|
/**
|
22
8
|
* indicate whether peer packages would be installed automatically
|
@@ -24,7 +10,7 @@ const NPM_VERSION_FOR_PEER_INSTALLATION = 7;
|
|
24
10
|
*/
|
25
11
|
export function arePeerPackagesAutoInstalled() {
|
26
12
|
// NOTE npm_config_user_agent should be in the form of 'npm/7.3.0 node/v15.5.0 darwin x64'
|
27
|
-
const clientID = process.env
|
13
|
+
const clientID = process.env.npm_config_user_agent?.split(' ')[0];
|
28
14
|
/* v8 ignore next */
|
29
15
|
const [name, version] = clientID?.split('/') ?? [];
|
30
16
|
/* v8 ignore next */
|
@@ -104,4 +90,4 @@ async function getNPMConfig() {
|
|
104
90
|
await config.load();
|
105
91
|
return config.flat;
|
106
92
|
}
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQztBQUlwQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsQ0FBQztBQVU1Qzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQzFDLDBGQUEwRjtJQUUxRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRSxvQkFBb0I7SUFDcEIsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFFcEUsb0JBQW9CO0lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFLLEVBQWtCLENBQUM7SUFFM0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEtBQUssQ0FBQztJQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBRWhDLE9BQU87SUFDTCxpRkFBaUY7SUFDakYsUUFBUTtRQUNSLENBQUMsS0FBSztZQUNKLEtBQUssS0FBSyxTQUFTO1lBQ25CLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxDQUN4RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFD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
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../source/preset/bootstrap.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAuB/C"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { info } from 'node:console';
|
2
|
+
import { resolve } from 'node:path';
|
3
|
+
import { ensureFile } from '../io.js';
|
4
|
+
import { arePeerPackagesAutoInstalled, reifyDependencies } from '../package.js';
|
5
|
+
import { serialize } from '../serialization.js';
|
6
|
+
import { getContext } from './context.js';
|
7
|
+
import { resolveProjectPreset } from './project.js';
|
8
|
+
import { resolveAssets } from './resolution/index.js';
|
9
|
+
/**
|
10
|
+
* generate files from templates and place them to the target project root
|
11
|
+
*/
|
12
|
+
export async function bootstrap() {
|
13
|
+
const context = await getContext();
|
14
|
+
// install all related packages first
|
15
|
+
if (!arePeerPackagesAutoInstalled()) {
|
16
|
+
await reifyDependencies({ root: context.root });
|
17
|
+
}
|
18
|
+
// generate configurations
|
19
|
+
const node = await resolveProjectPreset(context);
|
20
|
+
const assets = await resolveAssets(node, context);
|
21
|
+
for (const [name, asset] of Object.entries(assets)) {
|
22
|
+
if (asset === null) {
|
23
|
+
info(`Skipping ${name}`);
|
24
|
+
}
|
25
|
+
else {
|
26
|
+
const destination = resolve(context.root, name);
|
27
|
+
info(`Generating ${name}`);
|
28
|
+
ensureFile(destination, serialize(destination, asset));
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL3ByZXNldC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxTQUFTO0lBQzdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxFQUFFLENBQUM7SUFFbkMscUNBQXFDO0lBQ3JDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRWxELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUM7WUFFM0IsVUFBVSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/preset/config/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/* v8 ignore start */
|
2
|
+
export * from './resolve.js';
|
3
|
+
export * from './search.js';
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zb3VyY2UvcHJlc2V0L2NvbmZpZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUI7QUFFckIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxVQUFVLENBQUMifQ==
|