presetter 3.1.0 → 3.3.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.
@@ -1,84 +1,66 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.entry = entry;
7
-
8
- var _fsExtra = require("fs-extra");
9
-
10
- var _yargs = _interopRequireDefault(require("yargs"));
11
-
12
- var _preset = require("../preset");
13
-
14
- var _run = require("../run");
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- /*
19
- * *** MIT LICENSE ***
20
- * -------------------------------------------------------------------------
21
- * This code may be modified and distributed under the MIT license.
22
- * See the LICENSE file for details.
23
- * -------------------------------------------------------------------------
24
- *
25
- * @summary Entry point for the command line interface (CLI)
26
- *
27
- * @author Alvis HT Tang <alvis@hilbert.space>
28
- * @license MIT
29
- * @copyright Copyright (c) 2019 - All Rights Reserved.
30
- * -------------------------------------------------------------------------
31
- */
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.entry = void 0;
7
+ const fs_extra_1 = require("fs-extra");
8
+ const yargs_1 = __importDefault(require("yargs"));
9
+ const _preset_1 = require("../preset");
10
+ const _run_1 = require("../run");
32
11
  const useCommand = {
33
- command: 'use <preset..>',
34
- describe: 'adopt the specified preset to the project',
35
- builder: yargs => yargs.positional('preset', {
36
- required: true,
37
- type: 'string',
38
- description: 'proceed only if the specified file exists'
39
- }).help(),
40
- handler: async argv => (0, _preset.setupPreset)(...argv.preset)
12
+ command: 'use <preset..>',
13
+ describe: 'adopt the specified preset to the project',
14
+ builder: (yargs) => yargs
15
+ .positional('preset', {
16
+ required: true,
17
+ type: 'string',
18
+ description: 'proceed only if the specified file exists',
19
+ })
20
+ .help(),
21
+ handler: async (argv) => (0, _preset_1.setupPreset)(...argv.preset),
41
22
  };
42
23
  const bootstrapCommand = {
43
- command: 'bootstrap',
44
- describe: 'setup the project according to the specified preset',
45
- builder: yargs => yargs.option('only', {
46
- type: 'string',
47
- description: 'proceed only if the specified file exists'
48
- }).help(),
49
- handler: async argv => {
50
- const {
51
- only
52
- } = argv; // only proceed if the specified file exists
53
-
54
- if (!only || (await (0, _fsExtra.pathExists)(only))) {
55
- await (0, _preset.bootstrapPreset)();
56
- }
57
- }
24
+ command: 'bootstrap',
25
+ describe: 'setup the project according to the specified preset',
26
+ builder: (yargs) => yargs
27
+ .option('only', {
28
+ type: 'string',
29
+ description: 'proceed only if the specified file exists',
30
+ })
31
+ .help(),
32
+ handler: async (argv) => {
33
+ const { only } = argv;
34
+ if (!only || (await (0, fs_extra_1.pathExists)(only))) {
35
+ await (0, _preset_1.bootstrapPreset)();
36
+ }
37
+ },
58
38
  };
59
39
  const runCommand = {
60
- command: 'run',
61
- describe: 'run a template script',
62
- builder: yargs => yargs.usage('run <task>').demandCommand(),
63
- handler: async argv => {
64
- // get the options
65
- const [, task, ...args] = argv._.map(arg => arg.toString());
66
-
67
- await (0, _run.run)(task, args);
68
- }
40
+ command: 'run',
41
+ describe: 'run a template script',
42
+ builder: (yargs) => yargs.usage('run <task>').demandCommand(),
43
+ handler: async (argv) => {
44
+ const [, task, ...args] = argv._.map((arg) => arg.toString());
45
+ await (0, _run_1.run)(task, args);
46
+ },
69
47
  };
70
48
  const unsetCommand = {
71
- command: 'unset',
72
- describe: 'remove all artifacts created by the preset',
73
- handler: async () => (0, _preset.unsetPreset)()
49
+ command: 'unset',
50
+ describe: 'remove all artifacts created by the preset',
51
+ handler: async () => (0, _preset_1.unsetPreset)(),
74
52
  };
75
- /**
76
- * provide a command line interface
77
- * @returns the command entered together with its options
78
- */
79
-
80
53
  async function entry() {
81
- const [,, ...args] = process.argv;
82
- await _yargs.default.usage('⚙ presetter: your preset configurator').showHelpOnFail(true).command(useCommand).command(bootstrapCommand).command(runCommand).command(unsetCommand).demandCommand().parse(args);
54
+ const [, , ...args] = process.argv;
55
+ await yargs_1.default
56
+ .usage('⚙ presetter: your preset configurator')
57
+ .showHelpOnFail(true)
58
+ .command(useCommand)
59
+ .command(bootstrapCommand)
60
+ .command(runCommand)
61
+ .command(unsetCommand)
62
+ .demandCommand()
63
+ .parse(args);
83
64
  }
84
- //# sourceMappingURL=entry.js.map
65
+ exports.entry = entry;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lbnRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFlQSx1Q0FBc0M7QUFDdEMsa0RBQTBCO0FBRTFCLHFDQUFvRTtBQUNwRSwrQkFBMkI7QUFJM0IsTUFBTSxVQUFVLEdBQStEO0lBQzdFLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsUUFBUSxFQUFFLDJDQUEyQztJQUNyRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNqQixLQUFLO1NBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNwQixRQUFRLEVBQUUsSUFBYTtRQUN2QixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7S0FDekQsQ0FBQztTQUNELElBQUksRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHFCQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3JELENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUdsQjtJQUNGLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFFBQVEsRUFBRSxxREFBcUQ7SUFDL0QsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsS0FBSztTQUNGLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDZCxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7S0FDekQsQ0FBQztTQUNELElBQUksRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUd0QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFBLHFCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUEseUJBQWUsR0FBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBa0I7SUFDaEMsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLEVBQUU7SUFDN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUV0QixNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTSxJQUFBLFVBQUcsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFlBQVksR0FBa0I7SUFDbEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsUUFBUSxFQUFFLDRDQUE0QztJQUN0RCxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFBLHFCQUFXLEdBQUU7Q0FDbkMsQ0FBQztBQU1LLEtBQUssVUFBVSxLQUFLO0lBQ3pCLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFFbkMsTUFBTSxlQUFLO1NBQ1IsS0FBSyxDQUFDLHVDQUF1QyxDQUFDO1NBQzlDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDcEIsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUNuQixPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDekIsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDO1NBQ3JCLGFBQWEsRUFBRTtTQUNmLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBWkQsc0JBWUMifQ==
@@ -1,59 +1,28 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.handleError = handleError;
7
-
8
- var _callsiteRecord = _interopRequireDefault(require("callsite-record"));
9
-
10
- var _chalk = _interopRequireDefault(require("chalk"));
11
-
12
- var _console = require("console");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- /*
17
- * *** MIT LICENSE ***
18
- * -------------------------------------------------------------------------
19
- * This code may be modified and distributed under the MIT license.
20
- * See the LICENSE file for details.
21
- * -------------------------------------------------------------------------
22
- *
23
- * @summary Helpers for handling error
24
- *
25
- * @author Alvis HT Tang <alvis@hilbert.space>
26
- * @license MIT
27
- * @copyright Copyright (c) 2019 - All Rights Reserved.
28
- * -------------------------------------------------------------------------
29
- */
30
-
31
- /* istanbul ignore file */
32
-
33
- /**
34
- * print error nicely on console
35
- * @param error the error to be reported
36
- */
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleError = void 0;
7
+ const callsite_record_1 = __importDefault(require("callsite-record"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const console_1 = require("console");
37
10
  async function handleError(error) {
38
- if (!process.stdout.isTTY) {
39
- // don't print formatted error message if the process is not run on TTY
40
- (0, _console.warn)(error);
41
- } else {
42
- // print the error message
43
- const type = _chalk.default.red.bold(`[${error.name}]`);
44
-
45
- const message = _chalk.default.white.bold(error.message.trim());
46
-
47
- (0, _console.warn)(`${type} ${message}`); // print the callsite record
48
-
49
- const record = (0, _callsiteRecord.default)({
50
- forError: error
51
- });
52
-
53
- if (record) {
54
- (0, _console.warn)();
55
- (0, _console.warn)(await record.render({}));
11
+ if (!process.stdout.isTTY) {
12
+ (0, console_1.warn)(error);
13
+ }
14
+ else {
15
+ const type = chalk_1.default.red.bold(`[${error.name}]`);
16
+ const message = chalk_1.default.white.bold(error.message.trim());
17
+ (0, console_1.warn)(`${type} ${message}`);
18
+ const record = (0, callsite_record_1.default)({
19
+ forError: error,
20
+ });
21
+ if (record) {
22
+ (0, console_1.warn)();
23
+ (0, console_1.warn)(await record.render({}));
24
+ }
56
25
  }
57
- }
58
26
  }
59
- //# sourceMappingURL=error.js.map
27
+ exports.handleError = handleError;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFpQkEsc0VBQW1EO0FBQ25ELGtEQUEwQjtBQUMxQixxQ0FBK0I7QUFNeEIsS0FBSyxVQUFVLFdBQVcsQ0FBQyxLQUFZO0lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUV6QixJQUFBLGNBQUksRUFBQyxLQUFLLENBQUMsQ0FBQztLQUNiO1NBQU07UUFFTCxNQUFNLElBQUksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLGVBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFBLGNBQUksRUFBQyxHQUFHLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRzNCLE1BQU0sTUFBTSxHQUFHLElBQUEseUJBQW9CLEVBQUM7WUFDbEMsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFBLGNBQUksR0FBRSxDQUFDO1lBQ1AsSUFBQSxjQUFJLEVBQUMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0I7S0FDRjtBQUNILENBQUM7QUFwQkQsa0NBb0JDIn0=
@@ -1,24 +1,6 @@
1
1
  "use strict";
2
-
3
- var _entry = require("./entry");
4
-
5
- var _error = require("./error");
6
-
7
- /*
8
- * *** MIT LICENSE ***
9
- * -------------------------------------------------------------------------
10
- * This code may be modified and distributed under the MIT license.
11
- * See the LICENSE file for details.
12
- * -------------------------------------------------------------------------
13
- *
14
- * @summary A command line interface for presetter
15
- *
16
- * @author Alvis HT Tang <alvis@hilbert.space>
17
- * @license MIT
18
- * @copyright Copyright (c) 2019 - All Rights Reserved.
19
- * -------------------------------------------------------------------------
20
- */
21
-
22
- /* istanbul ignore file */
23
- (0, _entry.entry)().catch(_error.handleError);
24
- //# sourceMappingURL=index.js.map
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const entry_1 = require("./entry");
4
+ const error_1 = require("./error");
5
+ (0, entry_1.entry)().catch(error_1.handleError);
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvZXhlY3V0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxtQ0FBZ0M7QUFDaEMsbUNBQXNDO0FBRXRDLElBQUEsYUFBSyxHQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFXLENBQUMsQ0FBQyJ9
package/lib/index.js CHANGED
@@ -1,71 +1,22 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _content = require("./content");
8
-
9
- Object.keys(_content).forEach(function (key) {
10
- if (key === "default" || key === "__esModule") return;
11
- if (key in exports && exports[key] === _content[key]) return;
12
- Object.defineProperty(exports, key, {
13
- enumerable: true,
14
- get: function () {
15
- return _content[key];
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
7
  }
17
- });
18
- });
19
-
20
- var _directive = require("./directive");
21
-
22
- Object.keys(_directive).forEach(function (key) {
23
- if (key === "default" || key === "__esModule") return;
24
- if (key in exports && exports[key] === _directive[key]) return;
25
- Object.defineProperty(exports, key, {
26
- enumerable: true,
27
- get: function () {
28
- return _directive[key];
29
- }
30
- });
31
- });
32
-
33
- var _io = require("./io");
34
-
35
- Object.keys(_io).forEach(function (key) {
36
- if (key === "default" || key === "__esModule") return;
37
- if (key in exports && exports[key] === _io[key]) return;
38
- Object.defineProperty(exports, key, {
39
- enumerable: true,
40
- get: function () {
41
- return _io[key];
42
- }
43
- });
44
- });
45
-
46
- var _template = require("./template");
47
-
48
- Object.keys(_template).forEach(function (key) {
49
- if (key === "default" || key === "__esModule") return;
50
- if (key in exports && exports[key] === _template[key]) return;
51
- Object.defineProperty(exports, key, {
52
- enumerable: true,
53
- get: function () {
54
- return _template[key];
55
- }
56
- });
57
- });
58
-
59
- var _types = require("./types");
60
-
61
- Object.keys(_types).forEach(function (key) {
62
- if (key === "default" || key === "__esModule") return;
63
- if (key in exports && exports[key] === _types[key]) return;
64
- Object.defineProperty(exports, key, {
65
- enumerable: true,
66
- get: function () {
67
- return _types[key];
68
- }
69
- });
70
- });
71
- //# sourceMappingURL=index.js.map
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./content"), exports);
18
+ __exportStar(require("./directive"), exports);
19
+ __exportStar(require("./io"), exports);
20
+ __exportStar(require("./template"), exports);
21
+ __exportStar(require("./types"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLHNDQUFvQjtBQUNwQiw0Q0FBMEI7QUFFMUIseUNBQXVCIn0=
package/lib/io.d.ts CHANGED
@@ -2,7 +2,7 @@ import type { Generator, PresetterConfig, ResolvedPresetContext, Template } from
2
2
  export declare function loadDynamic<R extends Template | string[], K extends keyof PresetterConfig>(value: string | R | Generator<R, K>, context: ResolvedPresetContext<K>): Promise<R>;
3
3
  export declare function loadFile(path: string, defaultFormat?: 'json' | 'yaml'): Promise<Record<string, unknown>>;
4
4
  export declare function loadFile(path: string, defaultFormat?: 'text'): Promise<string>;
5
- export declare function serialiseContent(destination: string, content: Template): string;
5
+ export declare function serializeContent(destination: string, content: Template): string;
6
6
  export declare function writeFiles(root: string, config: Record<string, Template>, pathMap: Record<string, string>): Promise<void>;
7
7
  export declare function linkFiles(root: string, configurationLink: Record<string, string>): Promise<void>;
8
8
  export declare function unlinkFiles(root: string, configurationLink: Record<string, string>): Promise<void>;
package/lib/io.js CHANGED
@@ -1,188 +1,106 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.linkFiles = linkFiles;
7
- exports.loadDynamic = loadDynamic;
8
- exports.loadFile = loadFile;
9
- exports.serialiseContent = serialiseContent;
10
- exports.unlinkFiles = unlinkFiles;
11
- exports.writeFiles = writeFiles;
12
-
13
- var _console = require("console");
14
-
15
- var _fsExtra = require("fs-extra");
16
-
17
- var _jsYaml = require("js-yaml");
18
-
19
- var _path = require("path");
20
-
21
- /*
22
- * *** MIT LICENSE ***
23
- * -------------------------------------------------------------------------
24
- * This code may be modified and distributed under the MIT license.
25
- * See the LICENSE file for details.
26
- * -------------------------------------------------------------------------
27
- *
28
- * @summary Collection of io helpers
29
- *
30
- * @author Alvis HT Tang <alvis@hilbert.space>
31
- * @license MIT
32
- * @copyright Copyright (c) 2020 - All Rights Reserved.
33
- * -------------------------------------------------------------------------
34
- */
35
- // JSON format
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unlinkFiles = exports.linkFiles = exports.writeFiles = exports.serializeContent = exports.loadFile = exports.loadDynamic = void 0;
4
+ const console_1 = require("console");
5
+ const fs_extra_1 = require("fs-extra");
6
+ const js_yaml_1 = require("js-yaml");
7
+ const path_1 = require("path");
36
8
  const INDENT = 2;
37
- /**
38
- * load a potentially dynamic content
39
- * @param value content to be loaded
40
- * @param context context to be supplied to the generator
41
- * @returns resolved content
42
- */
43
-
44
9
  async function loadDynamic(value, context) {
45
- if (typeof value === 'function') {
46
- return value(context);
47
- } else if (typeof value === 'string' && (await (0, _fsExtra.pathExists)(value))) {
48
- return await loadFile(value);
49
- } else {
50
- return value;
51
- }
10
+ if (typeof value === 'function') {
11
+ return value(context);
12
+ }
13
+ else if (typeof value === 'string' && (await (0, fs_extra_1.pathExists)(value))) {
14
+ return (await loadFile(value));
15
+ }
16
+ else {
17
+ return value;
18
+ }
52
19
  }
53
- /**
54
- * load the content of a file
55
- * @param path file path to be loaded
56
- * @param defaultFormat default format of the file
57
- * @returns content of the file
58
- */
59
-
60
-
20
+ exports.loadDynamic = loadDynamic;
61
21
  async function loadFile(path, defaultFormat = 'text') {
62
- const content = (await (0, _fsExtra.readFile)(path)).toString(); // parse the content depending on the extension
63
-
64
- switch ((0, _path.extname)(path) || `.${defaultFormat}`) {
65
- case '.json':
66
- return JSON.parse(content);
67
-
68
- case '.yaml':
69
- case '.yml':
70
- return (0, _jsYaml.load)(content);
71
-
72
- default:
73
- return content;
74
- }
22
+ const content = (await (0, fs_extra_1.readFile)(path)).toString();
23
+ switch ((0, path_1.extname)(path) || `.${defaultFormat}`) {
24
+ case '.json':
25
+ return JSON.parse(content);
26
+ case '.yaml':
27
+ case '.yml':
28
+ return (0, js_yaml_1.load)(content);
29
+ default:
30
+ return content;
31
+ }
75
32
  }
76
- /**
77
- * serialise a configuration content to the right format according to its destination
78
- * @param destination the path to which the content will be written
79
- * @param content configuration content
80
- * @returns serialised content
81
- */
82
-
83
-
84
- function serialiseContent(destination, content) {
85
- if (typeof content === 'string') {
86
- return content;
87
- }
88
-
89
- switch ((0, _path.extname)(destination)) {
90
- case '.yaml':
91
- case '.yml':
92
- return (0, _jsYaml.dump)(content);
93
-
94
- case '.json':
95
- default:
96
- return JSON.stringify(content, null, INDENT);
97
- }
33
+ exports.loadFile = loadFile;
34
+ function serializeContent(destination, content) {
35
+ if (typeof content === 'string') {
36
+ return content;
37
+ }
38
+ switch ((0, path_1.extname)(destination)) {
39
+ case '.yaml':
40
+ case '.yml':
41
+ return (0, js_yaml_1.dump)(content);
42
+ case '.json':
43
+ default:
44
+ return JSON.stringify(content, null, INDENT);
45
+ }
98
46
  }
99
- /**
100
- * write all generated configuration to their destination
101
- * @param root path to the target project root
102
- * @param config a map of configuration content and its path to be written
103
- * @param pathMap a map of keys in the config map and their destination path
104
- */
105
-
106
-
47
+ exports.serializeContent = serializeContent;
107
48
  async function writeFiles(root, config, pathMap) {
108
- for (const [key, content] of Object.entries(config)) {
109
- const destination = pathMap[key]; // write content to the destination path
110
-
111
- if ( // file don't exist
112
- !(await (0, _fsExtra.pathExists)(destination)) || // content to be written under the configurations folder
113
- destination !== (0, _path.resolve)(root, key)) {
114
- (0, _console.info)(`Generating ${key}`); // ensure that all parent folders exist to avoid errors from writeFile
115
-
116
- await (0, _fsExtra.ensureFile)(destination); // write content to the destination path
117
-
118
- await (0, _fsExtra.writeFile)(destination, serialiseContent(destination, content));
119
- } else {
120
- (0, _console.info)(`Skipping ${key}`);
49
+ for (const [key, content] of Object.entries(config)) {
50
+ const destination = pathMap[key];
51
+ if (!(await (0, fs_extra_1.pathExists)(destination)) ||
52
+ destination !== (0, path_1.resolve)(root, key)) {
53
+ (0, console_1.info)(`Generating ${key}`);
54
+ await (0, fs_extra_1.ensureFile)(destination);
55
+ await (0, fs_extra_1.writeFile)(destination, serializeContent(destination, content));
56
+ }
57
+ else {
58
+ (0, console_1.info)(`Skipping ${key}`);
59
+ }
121
60
  }
122
- }
123
61
  }
124
- /**
125
- * link generated files to the project root
126
- * @param root path to the target project root
127
- * @param configurationLink map of symlinks to its real path
128
- */
129
-
130
-
62
+ exports.writeFiles = writeFiles;
131
63
  async function linkFiles(root, configurationLink) {
132
- for (const [file, destination] of Object.entries(configurationLink)) {
133
- const link = (0, _path.resolve)(root, file);
134
- const to = (0, _path.relative)((0, _path.dirname)(link), destination); // create links only if the path really doesn't exist
135
-
136
- if (!(await linkExists(link)) && !(await (0, _fsExtra.pathExists)(link)) && // for files that mean to be created directly on the target project root, not via symlink
137
- to !== (0, _path.basename)(to)) {
138
- (0, _console.info)(`Linking ${(0, _path.relative)(root, link)} => ${to}`);
139
- await (0, _fsExtra.mkdir)((0, _path.dirname)(link), {
140
- recursive: true
141
- });
142
- await (0, _fsExtra.symlink)(to, link);
143
- } else if (to !== (0, _path.basename)(to)) {
144
- (0, _console.info)(`Skipping ${(0, _path.relative)(root, link)} => ${to}`);
64
+ for (const [file, destination] of Object.entries(configurationLink)) {
65
+ const link = (0, path_1.resolve)(root, file);
66
+ const to = (0, path_1.relative)((0, path_1.dirname)(link), destination);
67
+ if (!(await linkExists(link)) &&
68
+ !(await (0, fs_extra_1.pathExists)(link)) &&
69
+ to !== (0, path_1.basename)(to)) {
70
+ (0, console_1.info)(`Linking ${(0, path_1.relative)(root, link)} => ${to}`);
71
+ await (0, fs_extra_1.mkdir)((0, path_1.dirname)(link), { recursive: true });
72
+ await (0, fs_extra_1.symlink)(to, link);
73
+ }
74
+ else if (to !== (0, path_1.basename)(to)) {
75
+ (0, console_1.info)(`Skipping ${(0, path_1.relative)(root, link)} => ${to}`);
76
+ }
145
77
  }
146
- }
147
78
  }
148
- /**
149
- * unlink generated files from the project root
150
- * @param root path to the target project root
151
- * @param configurationLink map of symlinks to its real path
152
- */
153
-
154
-
79
+ exports.linkFiles = linkFiles;
155
80
  async function unlinkFiles(root, configurationLink) {
156
- for (const [name, destination] of Object.entries(configurationLink)) {
157
- try {
158
- const link = await (0, _fsExtra.readlink)((0, _path.resolve)(root, name));
159
- const to = (0, _path.relative)(root, destination);
160
-
161
- if (link === to) {
162
- (0, _console.info)(`Removing ${name}`);
163
- await (0, _fsExtra.unlink)((0, _path.resolve)(root, name));
164
- continue;
165
- }
166
- } catch {// do nothing
81
+ for (const [name, destination] of Object.entries(configurationLink)) {
82
+ try {
83
+ const link = await (0, fs_extra_1.readlink)((0, path_1.resolve)(root, name));
84
+ const to = (0, path_1.relative)(root, destination);
85
+ if (link === to) {
86
+ (0, console_1.info)(`Removing ${name}`);
87
+ await (0, fs_extra_1.unlink)((0, path_1.resolve)(root, name));
88
+ continue;
89
+ }
90
+ }
91
+ catch (_a) {
92
+ }
93
+ (0, console_1.info)(`Skipping ${name}`);
167
94
  }
168
-
169
- (0, _console.info)(`Skipping ${name}`);
170
- }
171
95
  }
172
- /**
173
- * check if path is a symlink
174
- * @param path file path to be checked
175
- * @returns true if it is a symlink
176
- */
177
-
178
-
96
+ exports.unlinkFiles = unlinkFiles;
179
97
  async function linkExists(path) {
180
- try {
181
- // NOTE use lstat instead of pathExists as it checks the link not the linked path
182
- await (0, _fsExtra.lstat)(path);
183
- return true;
184
- } catch {
185
- return false;
186
- }
98
+ try {
99
+ await (0, fs_extra_1.lstat)(path);
100
+ return true;
101
+ }
102
+ catch (_a) {
103
+ return false;
104
+ }
187
105
  }
188
- //# sourceMappingURL=io.js.map
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2UvaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEscUNBQStCO0FBQy9CLHVDQVVrQjtBQUNsQixxQ0FBcUM7QUFDckMsK0JBQXFFO0FBVXJFLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQztBQVFWLEtBQUssVUFBVSxXQUFXLENBSS9CLEtBR21CLEVBQ25CLE9BQWlDO0lBRWpDLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFO1FBQy9CLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLElBQUEscUJBQVUsRUFBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBTSxDQUFDO0tBQ3JDO1NBQU07UUFDTCxPQUFPLEtBQVUsQ0FBQztLQUNuQjtBQUNILENBQUM7QUFqQkQsa0NBaUJDO0FBZ0JNLEtBQUssVUFBVSxRQUFRLENBQzVCLElBQVksRUFDWixnQkFBMEMsTUFBTTtJQUVoRCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBQSxtQkFBUSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFHbEQsUUFBUSxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxJQUFJLGFBQWEsRUFBRSxFQUFFO1FBQzVDLEtBQUssT0FBTztZQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQTRCLENBQUM7UUFDeEQsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLE1BQU07WUFDVCxPQUFPLElBQUEsY0FBSSxFQUFDLE9BQU8sQ0FBNEIsQ0FBQztRQUNsRDtZQUNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQWhCRCw0QkFnQkM7QUFRRCxTQUFnQixnQkFBZ0Is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