simple-scaffold 1.9.0 → 2.0.0-pre.2
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 +41 -33
- package/cmd.js +49 -50
- package/cmd.js.map +1 -1
- package/config.d.ts +7 -7
- package/config.js +42 -46
- package/config.js.map +1 -1
- package/file.js +12 -13
- package/file.js.map +1 -1
- package/git.d.ts +10 -1
- package/git.js +43 -17
- package/git.js.map +1 -1
- package/logger.js +11 -12
- package/logger.js.map +1 -1
- package/package.json +20 -23
- package/parser.d.ts +1 -0
- package/parser.js +6 -6
- package/parser.js.map +1 -1
- package/scaffold.js +4 -4
- package/scaffold.js.map +1 -1
- package/types.d.ts +31 -38
- package/types.js +7 -19
- package/types.js.map +1 -1
- package/utils.js.map +1 -1
package/file.js
CHANGED
|
@@ -16,7 +16,7 @@ const utils_1 = require("./utils");
|
|
|
16
16
|
const { stat, access, mkdir, readFile, writeFile } = promises_1.default;
|
|
17
17
|
async function createDirIfNotExists(dir, config) {
|
|
18
18
|
if (config.dryRun) {
|
|
19
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
19
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, `Dry Run. Not creating dir ${dir}`);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
const parentDir = node_path_1.default.dirname(dir);
|
|
@@ -25,7 +25,7 @@ async function createDirIfNotExists(dir, config) {
|
|
|
25
25
|
}
|
|
26
26
|
if (!(await pathExists(dir))) {
|
|
27
27
|
try {
|
|
28
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
28
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, `Creating dir ${dir}`);
|
|
29
29
|
await mkdir(dir);
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
@@ -73,23 +73,22 @@ function getBasePath(relPath) {
|
|
|
73
73
|
exports.getBasePath = getBasePath;
|
|
74
74
|
async function getFileList(_config, template) {
|
|
75
75
|
template = template.replaceAll(/[\\]+/g, "/");
|
|
76
|
-
(0, logger_1.log)(_config, types_1.LogLevel.
|
|
76
|
+
(0, logger_1.log)(_config, types_1.LogLevel.debug, `Getting file list for ${template}`);
|
|
77
77
|
return (await (0, glob_1.glob)(template, {
|
|
78
78
|
dot: true,
|
|
79
79
|
nodir: true,
|
|
80
|
-
// debug: config.verbose === LogLevel.Debug,
|
|
81
80
|
})).map(node_path_1.default.normalize);
|
|
82
81
|
}
|
|
83
82
|
exports.getFileList = getFileList;
|
|
84
83
|
async function getTemplateGlobInfo(config, template) {
|
|
85
84
|
const isGlob = (0, glob_1.hasMagic)(template);
|
|
86
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
85
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "before isDir", "isGlob:", isGlob, template);
|
|
87
86
|
let _template = template;
|
|
88
87
|
let nonGlobTemplate = isGlob ? removeGlob(template) : template;
|
|
89
88
|
nonGlobTemplate = node_path_1.default.normalize(nonGlobTemplate);
|
|
90
89
|
const isDirOrGlob = isGlob ? true : await isDir(template);
|
|
91
90
|
const _shouldAddGlob = !isGlob && isDirOrGlob;
|
|
92
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
91
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "after", { isDirOrGlob, _shouldAddGlob });
|
|
93
92
|
const origTemplate = template;
|
|
94
93
|
if (_shouldAddGlob) {
|
|
95
94
|
_template = node_path_1.default.join(template, "**", "*");
|
|
@@ -111,22 +110,22 @@ exports.getTemplateFileInfo = getTemplateFileInfo;
|
|
|
111
110
|
async function copyFileTransformed(config, { exists, overwrite, outputPath, inputPath, }) {
|
|
112
111
|
if (!exists || overwrite) {
|
|
113
112
|
if (exists && overwrite) {
|
|
114
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
113
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, `File ${outputPath} exists, overwriting`);
|
|
115
114
|
}
|
|
116
115
|
const templateBuffer = await readFile(inputPath);
|
|
117
116
|
const unprocessedOutputContents = (0, parser_1.handlebarsParse)(config, templateBuffer);
|
|
118
117
|
const finalOutputContents = (await config.beforeWrite?.(unprocessedOutputContents, templateBuffer, outputPath)) ?? unprocessedOutputContents;
|
|
119
118
|
if (!config.dryRun) {
|
|
120
119
|
await writeFile(outputPath, finalOutputContents);
|
|
121
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
120
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, "Done.");
|
|
122
121
|
}
|
|
123
122
|
else {
|
|
124
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
125
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
123
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, "Dry Run. Output should be:");
|
|
124
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, finalOutputContents.toString());
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
else if (exists) {
|
|
129
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
128
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, `File ${outputPath} already exists, skipping`);
|
|
130
129
|
}
|
|
131
130
|
}
|
|
132
131
|
exports.copyFileTransformed = copyFileTransformed;
|
|
@@ -150,9 +149,9 @@ async function handleTemplateFile(config, { templatePath, basePath }) {
|
|
|
150
149
|
basePath,
|
|
151
150
|
});
|
|
152
151
|
const overwrite = (0, config_1.getOptionValueForFile)(config, inputPath, config.overwrite ?? false);
|
|
153
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
152
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, `\nParsing ${templatePath}`, `\nBase path: ${basePath}`, `\nFull input path: ${inputPath}`, `\nOutput Path Opt: ${outputPathOpt}`, `\nFull output dir: ${outputDir}`, `\nFull output path: ${outputPath}`, `\n`);
|
|
154
153
|
await createDirIfNotExists(node_path_1.default.dirname(outputPath), config);
|
|
155
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
154
|
+
(0, logger_1.log)(config, types_1.LogLevel.info, `Writing to ${outputPath}`);
|
|
156
155
|
await copyFileTransformed(config, { exists, overwrite, outputPath, inputPath });
|
|
157
156
|
resolve();
|
|
158
157
|
}
|
package/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,mDAAqC;AACrC,mCAAkD;AAClD,gEAAiC;AACjC,+BAAqC;AACrC,qCAA8B;AAC9B,qCAAgD;AAChD,qCAA0C;AAC1C,mCAAmC;AAEnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,kBAAE,CAAA;AAEhD,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAAsB;IAC5E,IAAI,MAAM,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"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"}
|
package/git.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { AsyncResolver, LogConfig, ScaffoldCmdConfig, ScaffoldConfigMap } from "./types";
|
|
3
|
-
export declare function getGitConfig(url: URL, logConfig: LogConfig): Promise<AsyncResolver<ScaffoldCmdConfig, ScaffoldConfigMap>>;
|
|
3
|
+
export declare function getGitConfig(url: URL, file: string, logConfig: LogConfig): Promise<AsyncResolver<ScaffoldCmdConfig, ScaffoldConfigMap>>;
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare function loadGitConfig({ logConfig, url: repoUrl, file, tmpPath, }: {
|
|
6
|
+
logConfig: LogConfig;
|
|
7
|
+
url: string;
|
|
8
|
+
file: string;
|
|
9
|
+
tmpPath: string;
|
|
10
|
+
}): Promise<AsyncResolver<ScaffoldCmdConfig, ScaffoldConfigMap>>;
|
|
11
|
+
/** @internal */
|
|
12
|
+
export declare function findConfigFile(root: string): Promise<string>;
|
package/git.js
CHANGED
|
@@ -26,36 +26,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.getGitConfig = void 0;
|
|
29
|
+
exports.findConfigFile = exports.loadGitConfig = exports.getGitConfig = void 0;
|
|
30
30
|
const node_path_1 = __importDefault(require("node:path"));
|
|
31
31
|
const node_os_1 = __importDefault(require("node:os"));
|
|
32
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
32
33
|
const logger_1 = require("./logger");
|
|
33
34
|
const types_1 = require("./types");
|
|
34
35
|
const node_child_process_1 = require("node:child_process");
|
|
35
36
|
const utils_1 = require("./utils");
|
|
36
|
-
async function getGitConfig(url, logConfig) {
|
|
37
|
+
async function getGitConfig(url, file, logConfig) {
|
|
37
38
|
const repoUrl = `${url.protocol}//${url.host}${url.pathname}`;
|
|
38
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.
|
|
39
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.info, `Cloning git repo ${repoUrl}`);
|
|
39
40
|
const tmpPath = node_path_1.default.resolve(node_os_1.default.tmpdir(), `scaffold-config-${Date.now()}`);
|
|
40
41
|
return new Promise((res, reject) => {
|
|
41
42
|
const clone = (0, node_child_process_1.spawn)("git", ["clone", "--recurse-submodules", "--depth", "1", repoUrl, tmpPath]);
|
|
42
43
|
clone.on("error", reject);
|
|
43
44
|
clone.on("close", async (code) => {
|
|
44
45
|
if (code === 0) {
|
|
45
|
-
(
|
|
46
|
-
const hashPath = url.hash?.replace("#", "") || "scaffold.config.js";
|
|
47
|
-
const absolutePath = node_path_1.default.resolve(tmpPath, hashPath);
|
|
48
|
-
const loadedConfig = await (0, utils_1.resolve)(async () => (await Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s)))).default, logConfig);
|
|
49
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Loaded config from git`);
|
|
50
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Debug, `Raw config:`, loadedConfig);
|
|
51
|
-
const fixedConfig = {};
|
|
52
|
-
for (const [k, v] of Object.entries(loadedConfig)) {
|
|
53
|
-
fixedConfig[k] = {
|
|
54
|
-
...v,
|
|
55
|
-
templates: v.templates.map((t) => node_path_1.default.resolve(tmpPath, t)),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
res((0, utils_1.wrapNoopResolver)(fixedConfig));
|
|
46
|
+
res(await loadGitConfig({ logConfig, url: repoUrl, file, tmpPath }));
|
|
59
47
|
return;
|
|
60
48
|
}
|
|
61
49
|
reject(new Error(`Git clone failed with code ${code}`));
|
|
@@ -63,4 +51,42 @@ async function getGitConfig(url, logConfig) {
|
|
|
63
51
|
});
|
|
64
52
|
}
|
|
65
53
|
exports.getGitConfig = getGitConfig;
|
|
54
|
+
/** @internal */
|
|
55
|
+
async function loadGitConfig({ logConfig, url: repoUrl, file, tmpPath, }) {
|
|
56
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.info, `Loading config from git repo: ${repoUrl}`);
|
|
57
|
+
const filename = file || (await findConfigFile(tmpPath));
|
|
58
|
+
const absolutePath = node_path_1.default.resolve(tmpPath, filename);
|
|
59
|
+
const loadedConfig = await (0, utils_1.resolve)(async () => (await Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s)))).default, logConfig);
|
|
60
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.info, `Loaded config from git`);
|
|
61
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.debug, `Raw config:`, loadedConfig);
|
|
62
|
+
const fixedConfig = {};
|
|
63
|
+
for (const [k, v] of Object.entries(loadedConfig)) {
|
|
64
|
+
fixedConfig[k] = {
|
|
65
|
+
...v,
|
|
66
|
+
templates: v.templates.map((t) => node_path_1.default.resolve(tmpPath, t)),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
await promises_1.default.rm(tmpPath, { recursive: true });
|
|
70
|
+
return (0, utils_1.wrapNoopResolver)(fixedConfig);
|
|
71
|
+
}
|
|
72
|
+
exports.loadGitConfig = loadGitConfig;
|
|
73
|
+
/** @internal */
|
|
74
|
+
async function findConfigFile(root) {
|
|
75
|
+
const allowed = ["mjs", "cjs", "js", "json"].reduce((acc, ext) => {
|
|
76
|
+
acc.push(`scaffold.config.${ext}`);
|
|
77
|
+
acc.push(`scaffold.${ext}`);
|
|
78
|
+
return acc;
|
|
79
|
+
}, []);
|
|
80
|
+
for (const file of allowed) {
|
|
81
|
+
const exists = await promises_1.default
|
|
82
|
+
.stat(node_path_1.default.resolve(root, file))
|
|
83
|
+
.then(() => true)
|
|
84
|
+
.catch(() => false);
|
|
85
|
+
if (exists) {
|
|
86
|
+
return file;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
throw new Error(`Could not find config file in git repo`);
|
|
90
|
+
}
|
|
91
|
+
exports.findConfigFile = findConfigFile;
|
|
66
92
|
//# sourceMappingURL=git.js.map
|
package/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAC5B,sDAAwB;AACxB,qCAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAC5B,sDAAwB;AACxB,gEAAiC;AACjC,qCAA8B;AAC9B,mCAAkG;AAClG,2DAA0C;AAC1C,mCAAmD;AAE5C,KAAK,UAAU,YAAY,CAChC,GAAQ,EACR,IAAY,EACZ,SAAoB;IAEpB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAE7D,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,IAAI,EAAE,oBAAoB,OAAO,EAAE,CAAC,CAAA;IAE5D,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAE1E,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,KAAK,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAE/F,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;gBACpE,OAAM;YACR,CAAC;YAED,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAxBD,oCAwBC;AAED,gBAAgB;AACT,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,GAAG,EAAE,OAAO,EACZ,IAAI,EACJ,OAAO,GAMR;IACC,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,IAAI,EAAE,iCAAiC,OAAO,EAAE,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACpD,MAAM,YAAY,GAAG,MAAM,IAAA,eAAO,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC,yBAAa,YAAY,uCAAC,CAAC,CAAC,OAA4B,EAAE,SAAS,CAAC,CAAA;IAEpH,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;IACvD,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAsB,EAAE,CAAA;IACzC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,WAAW,CAAC,CAAC,CAAC,GAAG;YACf,GAAG,CAAC;YACJ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SAC5D,CAAA;IACH,CAAC;IACD,MAAM,kBAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,OAAO,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAA;AACtC,CAAC;AA3BD,sCA2BC;AAED,gBAAgB;AACT,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,GAAG,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;QAC3B,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAc,CAAC,CAAA;IAClB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,kBAAE;aACpB,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACrB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;AAC3D,CAAC;AAhBD,wCAgBC"}
|
package/logger.js
CHANGED
|
@@ -7,18 +7,18 @@ exports.logInitStep = exports.logInputFile = exports.log = void 0;
|
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
function log(config, level, ...obj) {
|
|
10
|
-
if (config.
|
|
10
|
+
if (config.logLevel === types_1.LogLevel.none || level < (config.logLevel ?? types_1.LogLevel.info)) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
13
13
|
const levelColor = {
|
|
14
|
-
[types_1.LogLevel.
|
|
15
|
-
[types_1.LogLevel.
|
|
16
|
-
[types_1.LogLevel.
|
|
17
|
-
[types_1.LogLevel.
|
|
18
|
-
[types_1.LogLevel.
|
|
14
|
+
[types_1.LogLevel.none]: "reset",
|
|
15
|
+
[types_1.LogLevel.debug]: "blue",
|
|
16
|
+
[types_1.LogLevel.info]: "dim",
|
|
17
|
+
[types_1.LogLevel.warning]: "yellow",
|
|
18
|
+
[types_1.LogLevel.error]: "red",
|
|
19
19
|
};
|
|
20
20
|
const chalkFn = chalk_1.default[levelColor[level]];
|
|
21
|
-
const key = level === types_1.LogLevel.
|
|
21
|
+
const key = level === types_1.LogLevel.error ? "error" : level === types_1.LogLevel.warning ? "warn" : "log";
|
|
22
22
|
const logFn = console[key];
|
|
23
23
|
logFn(...obj.map((i) => i instanceof Error
|
|
24
24
|
? chalkFn(i, JSON.stringify(i, undefined, 1), i.stack)
|
|
@@ -28,25 +28,24 @@ function log(config, level, ...obj) {
|
|
|
28
28
|
}
|
|
29
29
|
exports.log = log;
|
|
30
30
|
function logInputFile(config, data) {
|
|
31
|
-
log(config, types_1.LogLevel.
|
|
31
|
+
log(config, types_1.LogLevel.debug, data);
|
|
32
32
|
}
|
|
33
33
|
exports.logInputFile = logInputFile;
|
|
34
34
|
function logInitStep(config) {
|
|
35
|
-
log(config, types_1.LogLevel.
|
|
35
|
+
log(config, types_1.LogLevel.debug, "Full config:", {
|
|
36
36
|
name: config.name,
|
|
37
37
|
templates: config.templates,
|
|
38
38
|
output: config.output,
|
|
39
39
|
createSubFolder: config.createSubFolder,
|
|
40
40
|
data: config.data,
|
|
41
41
|
overwrite: config.overwrite,
|
|
42
|
-
quiet: config.quiet,
|
|
43
42
|
subFolderNameHelper: config.subFolderNameHelper,
|
|
44
43
|
helpers: Object.keys(config.helpers ?? {}),
|
|
45
|
-
|
|
44
|
+
logLevel: config.logLevel,
|
|
46
45
|
dryRun: config.dryRun,
|
|
47
46
|
beforeWrite: config.beforeWrite,
|
|
48
47
|
});
|
|
49
|
-
log(config, types_1.LogLevel.
|
|
48
|
+
log(config, types_1.LogLevel.info, "Data:", config.data);
|
|
50
49
|
}
|
|
51
50
|
exports.logInitStep = logInitStep;
|
|
52
51
|
//# sourceMappingURL=logger.js.map
|
package/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6D;AAC7D,kDAAyB;AAEzB,SAAgB,GAAG,CAAC,MAAiB,EAAE,KAAe,EAAE,GAAG,GAAU;IACnE,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6D;AAC7D,kDAAyB;AAEzB,SAAgB,GAAG,CAAC,MAAiB,EAAE,KAAe,EAAE,GAAG,GAAU;IACnE,IAAI,MAAM,CAAC,QAAQ,KAAK,gBAAQ,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,gBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpF,OAAM;IACR,CAAC;IAED,MAAM,UAAU,GAAsD;QACpE,CAAC,gBAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;QACxB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;QACxB,CAAC,gBAAQ,CAAC,IAAI,CAAC,EAAE,KAAK;QACtB,CAAC,gBAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ;QAC5B,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;KACxB,CAAA;IAED,MAAM,OAAO,GAAQ,eAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,MAAM,GAAG,GAA6B,KAAK,KAAK,gBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IACtH,MAAM,KAAK,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,KAAK,CACH,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,YAAY,KAAK;QAChB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QACtD,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACjB,CACF,CAAA;AACH,CAAC;AAzBD,kBAyBC;AAED,SAAgB,YAAY,CAC1B,MAAsB,EACtB,IASC;IAED,GAAG,CAAC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AAdD,oCAcC;AAED,SAAgB,WAAW,CAAC,MAAsB;IAChD,GAAG,CAAC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,cAAc,EAAE;QAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;QAC/C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;KACS,CAAC,CAAA;IAC3C,GAAG,CAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AAClD,CAAC;AAfD,kCAeC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simple-scaffold",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-pre.2",
|
|
4
4
|
"description": "Generate any file structure - from single components to entire app boilerplates, with a single command.",
|
|
5
5
|
"homepage": "https://chenasraf.github.io/simple-scaffold",
|
|
6
6
|
"repository": "https://github.com/chenasraf/simple-scaffold.git",
|
|
@@ -29,38 +29,35 @@
|
|
|
29
29
|
"cmd": "node --trace-warnings dist/cmd.js",
|
|
30
30
|
"build-test": "pnpm build && pnpm test",
|
|
31
31
|
"build-cmd": "pnpm build && pnpm cmd",
|
|
32
|
-
"build
|
|
33
|
-
"watch
|
|
32
|
+
"docs:build": "cd docs && pnpm build",
|
|
33
|
+
"docs:watch": "cd docs && pnpm start",
|
|
34
34
|
"audit-fix": "pnpm audit --fix",
|
|
35
|
-
"changelog": "conventional-changelog -
|
|
35
|
+
"changelog": "conventional-changelog -i CHANGELOG.md -s -r 0; echo \"# Change Log\n\n$(cat CHANGELOG.md)\" > CHANGELOG.md"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"chalk": "^4.1.2",
|
|
39
|
-
"date-fns": "^
|
|
40
|
-
"glob": "^10.3.
|
|
41
|
-
"handlebars": "^4.7.
|
|
42
|
-
"massarg": "
|
|
39
|
+
"date-fns": "^3.3.1",
|
|
40
|
+
"glob": "^10.3.10",
|
|
41
|
+
"handlebars": "^4.7.8",
|
|
42
|
+
"massarg": "2.0.0-pre.11"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@knodes/typedoc-plugin-pages": "^0.23.4",
|
|
46
45
|
"@semantic-release/changelog": "^6.0.3",
|
|
47
46
|
"@semantic-release/exec": "^6.0.3",
|
|
48
47
|
"@semantic-release/git": "^10.0.1",
|
|
49
|
-
"@semantic-release/release-notes-generator": "^
|
|
50
|
-
"@types/jest": "^29.5.
|
|
51
|
-
"@types/mock-fs": "^4.13.
|
|
52
|
-
"@types/node": "^
|
|
53
|
-
"@types/semantic-release": "^20.0.
|
|
54
|
-
"conventional-changelog": "^
|
|
55
|
-
"conventional-changelog-cli": "^
|
|
56
|
-
"
|
|
57
|
-
"jest": "^29.5.0",
|
|
48
|
+
"@semantic-release/release-notes-generator": "^12.1.0",
|
|
49
|
+
"@types/jest": "^29.5.11",
|
|
50
|
+
"@types/mock-fs": "^4.13.4",
|
|
51
|
+
"@types/node": "^20.11.10",
|
|
52
|
+
"@types/semantic-release": "^20.0.6",
|
|
53
|
+
"conventional-changelog": "^5.1.0",
|
|
54
|
+
"conventional-changelog-cli": "^4.1.0",
|
|
55
|
+
"jest": "^29.7.0",
|
|
58
56
|
"mock-fs": "^5.2.0",
|
|
59
|
-
"semantic-release": "^
|
|
57
|
+
"semantic-release": "^23.0.0",
|
|
60
58
|
"semantic-release-conventional-commits": "^3.0.0",
|
|
61
|
-
"ts-jest": "^29.1.
|
|
62
|
-
"ts-node": "^10.9.
|
|
63
|
-
"
|
|
64
|
-
"typescript": "^5.0.4"
|
|
59
|
+
"ts-jest": "^29.1.2",
|
|
60
|
+
"ts-node": "^10.9.2",
|
|
61
|
+
"typescript": "^5.3.3"
|
|
65
62
|
}
|
|
66
63
|
}
|
package/parser.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DefaultHelpers, Helper, ScaffoldConfig } from "./types";
|
|
3
|
+
import { Duration } from "date-fns";
|
|
3
4
|
export declare const defaultHelpers: Record<DefaultHelpers, Helper>;
|
|
4
5
|
export declare function nowHelper(formatString: string): string;
|
|
5
6
|
export declare function nowHelper(formatString: string, durationDifference: number, durationType: keyof Duration): string;
|
package/parser.js
CHANGED
|
@@ -12,9 +12,9 @@ const format_1 = __importDefault(require("date-fns/format"));
|
|
|
12
12
|
const parseISO_1 = __importDefault(require("date-fns/parseISO"));
|
|
13
13
|
const logger_1 = require("./logger");
|
|
14
14
|
const dateFns = {
|
|
15
|
-
add: add_1.default,
|
|
16
|
-
format: format_1.default,
|
|
17
|
-
parseISO: parseISO_1.default,
|
|
15
|
+
add: add_1.default.add,
|
|
16
|
+
format: format_1.default.format,
|
|
17
|
+
parseISO: parseISO_1.default.parseISO,
|
|
18
18
|
};
|
|
19
19
|
exports.defaultHelpers = {
|
|
20
20
|
camelCase,
|
|
@@ -71,7 +71,7 @@ function pascalCase(s) {
|
|
|
71
71
|
function registerHelpers(config) {
|
|
72
72
|
const _helpers = { ...exports.defaultHelpers, ...config.helpers };
|
|
73
73
|
for (const helperName in _helpers) {
|
|
74
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
74
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, `Registering helper: ${helperName}`);
|
|
75
75
|
handlebars_1.default.registerHelper(helperName, _helpers[helperName]);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -91,8 +91,8 @@ function handlebarsParse(config, templateBuffer, { isPath = false } = {}) {
|
|
|
91
91
|
return Buffer.from(outputContents);
|
|
92
92
|
}
|
|
93
93
|
catch (e) {
|
|
94
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
95
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
94
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, e);
|
|
95
|
+
(0, logger_1.log)(config, types_1.LogLevel.warning, "Couldn't parse file with handlebars, returning original content");
|
|
96
96
|
return Buffer.from(templateBuffer);
|
|
97
97
|
}
|
|
98
98
|
}
|
package/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,mCAA0E;AAC1E,4DAAmC;AACnC,uDAAgC;AAChC,6DAAsC;AACtC,iEAA0C;AAC1C,qCAA8B;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/scaffold.js
CHANGED
|
@@ -53,13 +53,13 @@ async function Scaffold(config) {
|
|
|
53
53
|
config.output ??= process.cwd();
|
|
54
54
|
(0, parser_1.registerHelpers)(config);
|
|
55
55
|
try {
|
|
56
|
-
config.data = { name: config.name,
|
|
56
|
+
config.data = { name: config.name, ...config.data };
|
|
57
57
|
(0, logger_1.logInitStep)(config);
|
|
58
58
|
for (let _template of config.templates) {
|
|
59
59
|
try {
|
|
60
60
|
const { nonGlobTemplate, origTemplate, isDirOrGlob, isGlob, template } = await (0, file_1.getTemplateGlobInfo)(config, _template);
|
|
61
61
|
const files = await (0, file_1.getFileList)(config, template);
|
|
62
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
62
|
+
(0, logger_1.log)(config, types_1.LogLevel.debug, "Iterating files", { files, template });
|
|
63
63
|
for (const inputFilePath of files) {
|
|
64
64
|
if (await (0, file_1.isDir)(inputFilePath)) {
|
|
65
65
|
continue;
|
|
@@ -88,7 +88,7 @@ async function Scaffold(config) {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
catch (e) {
|
|
91
|
-
(0, logger_1.log)(config, types_1.LogLevel.
|
|
91
|
+
(0, logger_1.log)(config, types_1.LogLevel.error, e);
|
|
92
92
|
throw e;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
@@ -114,7 +114,7 @@ overrides) {
|
|
|
114
114
|
const _cmdConfig = {
|
|
115
115
|
dryRun: false,
|
|
116
116
|
output: process.cwd(),
|
|
117
|
-
|
|
117
|
+
logLevel: types_1.LogLevel.info,
|
|
118
118
|
overwrite: false,
|
|
119
119
|
templates: [],
|
|
120
120
|
createSubFolder: false,
|
package/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;GAKG;AACH,0DAA4B;AAC5B,mCAA4C;AAC5C,iCAQe;AACf,mCAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="handlebars" />
|
|
2
3
|
import { HelperDelegate } from "handlebars/runtime";
|
|
3
4
|
/**
|
|
4
5
|
* The config object for defining a scaffolding group.
|
|
5
6
|
*
|
|
6
|
-
* @see {@link https://chenasraf.github.io/simple-scaffold/
|
|
7
|
-
* @see {@link https://chenasraf.github.io/simple-scaffold/
|
|
7
|
+
* @see {@link https://chenasraf.github.io/simple-scaffold/docs/usage/node| Node.js usage}
|
|
8
|
+
* @see {@link https://chenasraf.github.io/simple-scaffold/docs/usage/cli| CLI usage}
|
|
8
9
|
* @see {@link DefaultHelpers}
|
|
9
10
|
* @see {@link CaseHelpers}
|
|
10
11
|
* @see {@link DateHelpers}
|
|
@@ -62,11 +63,6 @@ export interface ScaffoldConfig {
|
|
|
62
63
|
* @default `false`
|
|
63
64
|
*/
|
|
64
65
|
overwrite?: FileResponse<boolean>;
|
|
65
|
-
/**
|
|
66
|
-
* Suppress output logs (Same as `verbose: 0` or `verbose: LogLevel.None`)
|
|
67
|
-
* @see {@link verbose}
|
|
68
|
-
*/
|
|
69
|
-
quiet?: boolean;
|
|
70
66
|
/**
|
|
71
67
|
* Determine amount of logs to display.
|
|
72
68
|
*
|
|
@@ -77,7 +73,7 @@ export interface ScaffoldConfig {
|
|
|
77
73
|
*
|
|
78
74
|
* @default `2 (info)`
|
|
79
75
|
*/
|
|
80
|
-
|
|
76
|
+
logLevel?: LogLevel;
|
|
81
77
|
/**
|
|
82
78
|
* Don't emit files. This is good for testing your scaffolds and making sure they don't fail, without having to write
|
|
83
79
|
* actual file contents or create directories.
|
|
@@ -123,7 +119,7 @@ export interface ScaffoldConfig {
|
|
|
123
119
|
* @see {@link DefaultHelpers}
|
|
124
120
|
* @see {@link CaseHelpers}
|
|
125
121
|
* @see {@link DateHelpers}
|
|
126
|
-
* @see {@link https://chenasraf.github.io/simple-scaffold/
|
|
122
|
+
* @see {@link https://chenasraf.github.io/simple-scaffold/docs/usage/templates| Templates}
|
|
127
123
|
* */
|
|
128
124
|
helpers?: Record<string, Helper>;
|
|
129
125
|
/**
|
|
@@ -235,6 +231,22 @@ export type DefaultHelpers = CaseHelpers | DateHelpers;
|
|
|
235
231
|
* @category Helpers
|
|
236
232
|
*/
|
|
237
233
|
export type Helper = HelperDelegate;
|
|
234
|
+
export declare const LogLevel: {
|
|
235
|
+
/** Silent output */
|
|
236
|
+
readonly none: "none";
|
|
237
|
+
/** Debugging information. Very verbose and only recommended for troubleshooting. */
|
|
238
|
+
readonly debug: "debug";
|
|
239
|
+
/**
|
|
240
|
+
* The regular level of logging. Major actions are logged to show the scaffold progress.
|
|
241
|
+
*
|
|
242
|
+
* @default
|
|
243
|
+
*/
|
|
244
|
+
readonly info: "info";
|
|
245
|
+
/** Warnings such as when file fails to replace token values properly in template. */
|
|
246
|
+
readonly warning: "warning";
|
|
247
|
+
/** Errors, such as missing files, bad replacement token syntax, or un-writable directories. */
|
|
248
|
+
readonly error: "error";
|
|
249
|
+
};
|
|
238
250
|
/**
|
|
239
251
|
* The amount of information to log when generating scaffold.
|
|
240
252
|
* When not `None`, the selected level will be the lowest level included.
|
|
@@ -242,26 +254,14 @@ export type Helper = HelperDelegate;
|
|
|
242
254
|
* For example, level `Info` (2) will include `Info`, `Warning` and `Error`, but not `Debug`; and `Warning` will only
|
|
243
255
|
* show `Warning` and `Error`.
|
|
244
256
|
*
|
|
257
|
+
* You may use either the number or the name of the level.
|
|
258
|
+
* For example, `2` or `info` are both valid.
|
|
259
|
+
*
|
|
245
260
|
* @default `2 (info)`
|
|
246
261
|
*
|
|
247
262
|
* @category Logging
|
|
248
263
|
*/
|
|
249
|
-
export
|
|
250
|
-
/** Silent output */
|
|
251
|
-
None = 0,
|
|
252
|
-
/** Debugging information. Very verbose and only recommended for troubleshooting. */
|
|
253
|
-
Debug = 1,
|
|
254
|
-
/**
|
|
255
|
-
* The regular level of logging. Major actions are logged to show the scaffold progress.
|
|
256
|
-
*
|
|
257
|
-
* @default
|
|
258
|
-
*/
|
|
259
|
-
Info = 2,
|
|
260
|
-
/** Warnings such as when file fails to replace token values properly in template. */
|
|
261
|
-
Warning = 3,
|
|
262
|
-
/** Errors, such as missing files, bad replacement token syntax, or un-writable directories. */
|
|
263
|
-
Error = 4
|
|
264
|
-
}
|
|
264
|
+
export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|
|
265
265
|
/**
|
|
266
266
|
* A function that takes path information about file, and returns a value of type `T`
|
|
267
267
|
*
|
|
@@ -285,8 +285,6 @@ export type FileResponseHandler<T> = (fullPath: string, basedir: string, basenam
|
|
|
285
285
|
* (fullPath: string, basedir: string, basename: string) => T
|
|
286
286
|
* ```
|
|
287
287
|
*
|
|
288
|
-
* @typedef T The return type
|
|
289
|
-
*
|
|
290
288
|
* @see {@link FileResponseHandler}
|
|
291
289
|
*
|
|
292
290
|
* @category Config
|
|
@@ -294,10 +292,6 @@ export type FileResponseHandler<T> = (fullPath: string, basedir: string, basenam
|
|
|
294
292
|
export type FileResponse<T> = T | FileResponseHandler<T>;
|
|
295
293
|
/** @internal */
|
|
296
294
|
export interface ScaffoldCmdConfig {
|
|
297
|
-
/**
|
|
298
|
-
* Name to be passed to the generated files. `{{name}}` and `{{Name}}` inside contents and file names will be replaced
|
|
299
|
-
* accordingly.
|
|
300
|
-
*/
|
|
301
295
|
name: string;
|
|
302
296
|
templates: string[];
|
|
303
297
|
output: string;
|
|
@@ -306,12 +300,11 @@ export interface ScaffoldCmdConfig {
|
|
|
306
300
|
appendData?: Record<string, string>;
|
|
307
301
|
overwrite: boolean;
|
|
308
302
|
quiet: boolean;
|
|
309
|
-
|
|
303
|
+
logLevel: LogLevel;
|
|
310
304
|
dryRun: boolean;
|
|
311
305
|
config?: string;
|
|
312
|
-
/** The key to use for the file which contains the template configurations. */
|
|
313
306
|
key?: string;
|
|
314
|
-
|
|
307
|
+
git?: string;
|
|
315
308
|
}
|
|
316
309
|
/**
|
|
317
310
|
* A mapping of scaffold template keys to their configurations.
|
|
@@ -337,10 +330,10 @@ export type Resolver<T, R = T> = R | ((value: T) => R);
|
|
|
337
330
|
/** @internal */
|
|
338
331
|
export type AsyncResolver<T, R = T> = Resolver<T, Promise<R> | R>;
|
|
339
332
|
/** @internal */
|
|
340
|
-
export type LogConfig = Pick<ScaffoldConfig, "
|
|
333
|
+
export type LogConfig = Pick<ScaffoldConfig, "logLevel">;
|
|
341
334
|
/** @internal */
|
|
342
|
-
export type ConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config"
|
|
343
|
-
|
|
344
|
-
|
|
335
|
+
export type ConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config">;
|
|
336
|
+
/** @internal */
|
|
337
|
+
export type RemoteConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config" | "git">;
|
|
345
338
|
/** @internal */
|
|
346
339
|
export type MinimalConfig = Pick<ScaffoldCmdConfig, "name" | "key">;
|