simple-scaffold 1.7.1-develop.1 → 1.7.2-pre.1
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/cmd.js +3 -3
- package/cmd.js.map +1 -1
- package/config.d.ts +1 -0
- package/config.js +18 -48
- package/config.js.map +1 -1
- package/file.js +25 -20
- package/file.js.map +1 -1
- package/git.d.ts +3 -0
- package/git.js +64 -0
- package/git.js.map +1 -0
- package/package.json +5 -4
- package/parser.js +2 -2
- package/parser.js.map +1 -1
- package/scaffold.js +3 -2
- package/scaffold.js.map +1 -1
- package/types.d.ts +3 -1
- package/utils.d.ts +1 -0
- package/utils.js +8 -1
- package/utils.js.map +1 -1
package/cmd.js
CHANGED
|
@@ -9,11 +9,11 @@ const massarg_1 = __importDefault(require("massarg"));
|
|
|
9
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
10
|
const types_1 = require("./types");
|
|
11
11
|
const scaffold_1 = require("./scaffold");
|
|
12
|
-
const
|
|
13
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
12
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
13
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
14
14
|
const config_1 = require("./config");
|
|
15
15
|
async function parseCliArgs(args = process.argv.slice(2)) {
|
|
16
|
-
const pkgFile = await promises_1.default.readFile(
|
|
16
|
+
const pkgFile = await promises_1.default.readFile(node_path_1.default.join(__dirname, "package.json"));
|
|
17
17
|
const pkg = JSON.parse(pkgFile.toString());
|
|
18
18
|
const isConfigProvided = args.includes("--config") || args.includes("-c") || args.includes("--github") || args.includes("-gh");
|
|
19
19
|
return ((0, massarg_1.default)()
|
package/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":";;;;;;;AACA,sDAA6B;AAC7B,kDAAyB;AACzB,mCAAqD;AACrD,yCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../src/cmd.ts"],"names":[],"mappings":";;;;;;;AACA,sDAA6B;AAC7B,kDAAyB;AACzB,mCAAqD;AACrD,yCAAqC;AACrC,0DAA4B;AAC5B,gEAAiC;AACjC,qCAAuD;AAEhD,KAAK,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1C,MAAM,gBAAgB,GACpB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvG,OAAO,CACL,IAAA,iBAAO,GAAqB;SACzB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAA;QACzC,OAAO,IAAA,mBAAQ,EAAC,OAAO,CAAC,CAAA;IAC1B,CAAC,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EACT,8HAA8H;QAChI,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,IAAI;KACf,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EACT,uIAAuI;KAC1I,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,WAAW,EACT,yHAAyH;KAC5H,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EACT,mJAAmJ;KACtJ,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EAAE,yGAAyG,eAAK,CAAC,KAAK,CAAA,GAAG,eAAK,CAAC,KAAK,CAAA,wBAAwB,EAAE,EAAE;QAC3K,QAAQ,EAAE,CAAC,gBAAgB;KAC5B,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,KAAK,EAAE,IAAI;QACX,WAAW,EACT,oHAAoH;YACpH,sDAAsD;QACxD,QAAQ,EAAE,CAAC,gBAAgB;KAC5B,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,8DAA8D;KAC5E,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EAAE,+EAA+E;QAC5F,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5B,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EACT,sKAAsK;QACxK,KAAK,EAAE,wBAAe;KACvB,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,sCAAsC;KACpD,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,WAAW,EAAE,kFAAkF;KAChG,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,4CAA4C;KAC1D,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,YAAY,EAAE,gBAAQ,CAAC,IAAI;QAC3B,WAAW,EACT,uDAAuD;YACvD,GAAG,eAAK,CAAC,IAAI,CAAA,wDAAwD,IAAI;YACzE,uEAAuE;QACzE,KAAK,EAAE,MAAM;KACd,CAAC;SACD,MAAM,CAAC;QACN,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;QACnB,WAAW,EACT,iFAAiF;YACjF,iFAAiF;KACpF,CAAC;QACF,aAAa;QACb,wHAAwH;QACxH,0BAA0B;QAC1B,gBAAgB;QAChB,KAAK;SACJ,OAAO,CAAC;QACP,WAAW,EAAE,wBAAwB;QACrC,KAAK,EAAE,oDAAoD;KAC5D,CAAC;SACD,OAAO,CAAC;QACP,WAAW,EAAE,+BAA+B;QAC5C,KAAK,EAAE,+DAA+D;KACvE,CAAC;SACD,OAAO,CAAC;QACP,WAAW,EAAE,2CAA2C;QACxD,KAAK,EAAE,0FAA0F;KAClG,CAAC;SACD,OAAO,CAAC;QACP,WAAW,EAAE,iFAAiF;QAC9F,KAAK,EAAE,0DAA0D;KAClE,CAAC;SACD,OAAO,CAAC;QACP,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,gDAAgD;KACxD,CAAC;SACD,OAAO,CAAC;QACP,WAAW,EAAE,uFAAuF;QACpG,KAAK,EAAE,2DAA2D;KACnE,CAAC;SACD,IAAI,CAAC;QACJ,OAAO,EAAE,iBAAiB;QAC1B,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,GAAG;QACf,MAAM,EAAE,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,MAAM,EAAE;YACN,aAAa,GAAG,CAAC,OAAO,EAAE;YAC1B,+BAA+B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YACzD,EAAE;YACF,kBAAkB,eAAK,CAAC,SAAS,CAAA,6CAA6C,EAAE;YAChF,QAAQ,eAAK,CAAC,SAAS,CAAA,2CAA2C,EAAE;YACpE,WAAW,eAAK,CAAC,SAAS,CAAA,8CAA8C,EAAE;SAC3E,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC;SACD,KAAK,CAAC,IAAI,CAAC,CACf,CAAA;AACH,CAAC;AA7JD,oCA6JC;AAED,YAAY,EAAE,CAAA"}
|
package/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare function parseConfig(config: ScaffoldCmdConfig & OptionsBase): Pr
|
|
|
7
7
|
export declare function parseConfigSelection(config: string, key?: string): {
|
|
8
8
|
configFile: string;
|
|
9
9
|
key: string;
|
|
10
|
+
isRemote: boolean;
|
|
10
11
|
};
|
|
11
12
|
export declare function githubPartToUrl(part: string): string;
|
|
12
13
|
/** @internal */
|
package/config.js
CHANGED
|
@@ -27,18 +27,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.getConfig = exports.githubPartToUrl = exports.parseConfigSelection = exports.parseConfig = exports.parseAppendData = exports.getOptionValueForFile = void 0;
|
|
30
|
-
const
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
31
|
const types_1 = require("./types");
|
|
32
|
-
const node_child_process_1 = require("node:child_process");
|
|
33
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
34
32
|
const parser_1 = require("./parser");
|
|
35
33
|
const logger_1 = require("./logger");
|
|
36
34
|
const utils_1 = require("./utils");
|
|
35
|
+
const git_1 = require("./git");
|
|
37
36
|
function getOptionValueForFile(config, filePath, fn, defaultValue) {
|
|
38
37
|
if (typeof fn !== "function") {
|
|
39
38
|
return defaultValue ?? fn;
|
|
40
39
|
}
|
|
41
|
-
return fn(filePath,
|
|
40
|
+
return fn(filePath, node_path_1.default.dirname((0, parser_1.handlebarsParse)(config, filePath, { isPath: true }).toString()), node_path_1.default.basename((0, parser_1.handlebarsParse)(config, filePath, { isPath: true }).toString()));
|
|
42
41
|
}
|
|
43
42
|
exports.getOptionValueForFile = getOptionValueForFile;
|
|
44
43
|
function parseAppendData(value, options) {
|
|
@@ -62,9 +61,14 @@ async function parseConfig(config) {
|
|
|
62
61
|
config.config = githubPartToUrl(config.github);
|
|
63
62
|
}
|
|
64
63
|
if (config.config) {
|
|
65
|
-
const { configFile, key } = parseConfigSelection(config.config, config.key);
|
|
64
|
+
const { configFile, key, isRemote } = parseConfigSelection(config.config, config.key);
|
|
66
65
|
(0, logger_1.log)(config, types_1.LogLevel.Info, `Loading config from ${configFile} with key ${key}`);
|
|
67
|
-
const configPromise = await getConfig({
|
|
66
|
+
const configPromise = await getConfig({
|
|
67
|
+
config: configFile,
|
|
68
|
+
isRemote,
|
|
69
|
+
quiet: config.quiet,
|
|
70
|
+
verbose: config.verbose,
|
|
71
|
+
});
|
|
68
72
|
const configImport = await (0, utils_1.resolve)(configPromise, config);
|
|
69
73
|
if (!configImport[key]) {
|
|
70
74
|
throw new Error(`Template "${key}" not found in ${configFile}`);
|
|
@@ -91,7 +95,7 @@ function parseConfigSelection(config, key) {
|
|
|
91
95
|
? [config.substring(0, colonIndex), config.substring(colonIndex + 1)]
|
|
92
96
|
: [config, undefined];
|
|
93
97
|
const _key = (key ?? templateKey) || "default";
|
|
94
|
-
return { configFile, key: _key };
|
|
98
|
+
return { configFile, key: _key, isRemote: isUrl };
|
|
95
99
|
}
|
|
96
100
|
exports.parseConfigSelection = parseConfigSelection;
|
|
97
101
|
function githubPartToUrl(part) {
|
|
@@ -102,60 +106,26 @@ function githubPartToUrl(part) {
|
|
|
102
106
|
return gitUrl.toString();
|
|
103
107
|
}
|
|
104
108
|
exports.githubPartToUrl = githubPartToUrl;
|
|
105
|
-
function wrapNoopResolver(value) {
|
|
106
|
-
if (typeof value === "function") {
|
|
107
|
-
return value;
|
|
108
|
-
}
|
|
109
|
-
return (_) => value;
|
|
110
|
-
}
|
|
111
109
|
/** @internal */
|
|
112
110
|
async function getConfig(config) {
|
|
113
|
-
const { config: configFile, ...logConfig } = config;
|
|
114
|
-
|
|
115
|
-
if (url.protocol === "file:") {
|
|
111
|
+
const { config: configFile, isRemote, ...logConfig } = config;
|
|
112
|
+
if (!isRemote) {
|
|
116
113
|
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Loading config from file ${configFile}`);
|
|
117
|
-
const absolutePath =
|
|
118
|
-
return wrapNoopResolver(Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s))));
|
|
114
|
+
const absolutePath = node_path_1.default.resolve(process.cwd(), configFile);
|
|
115
|
+
return (0, utils_1.wrapNoopResolver)(Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s))));
|
|
119
116
|
}
|
|
117
|
+
const url = new URL(configFile);
|
|
120
118
|
const isHttp = url.protocol === "http:" || url.protocol === "https:";
|
|
121
119
|
const isGit = url.protocol === "git:" || (isHttp && url.pathname.endsWith(".git"));
|
|
122
120
|
if (isGit) {
|
|
123
|
-
return getGitConfig(url, logConfig);
|
|
121
|
+
return (0, git_1.getGitConfig)(url, logConfig);
|
|
124
122
|
}
|
|
125
123
|
if (!isHttp) {
|
|
126
124
|
throw new Error(`Unsupported protocol ${url.protocol}`);
|
|
127
125
|
}
|
|
128
|
-
return wrapNoopResolver(Promise.resolve(`${
|
|
126
|
+
return (0, utils_1.wrapNoopResolver)(Promise.resolve(`${node_path_1.default.resolve(process.cwd(), configFile)}`).then(s => __importStar(require(s))));
|
|
129
127
|
}
|
|
130
128
|
exports.getConfig = getConfig;
|
|
131
|
-
async function getGitConfig(url, logConfig) {
|
|
132
|
-
const repoUrl = `${url.protocol}//${url.host}${url.pathname}`;
|
|
133
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Cloning git repo ${repoUrl}`);
|
|
134
|
-
const tmpPath = path_1.default.resolve(node_os_1.default.tmpdir(), `scaffold-config-${Date.now()}`);
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
const clone = (0, node_child_process_1.spawn)("git", ["clone", "--depth", "1", repoUrl, tmpPath]);
|
|
137
|
-
clone.on("error", reject);
|
|
138
|
-
clone.on("close", async (code) => {
|
|
139
|
-
if (code === 0) {
|
|
140
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Loading config from git repo: ${repoUrl}`);
|
|
141
|
-
const hashPath = url.hash?.replace("#", "") || "scaffold.config.js";
|
|
142
|
-
const absolutePath = path_1.default.resolve(tmpPath, hashPath);
|
|
143
|
-
const loadedConfig = (await Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s)))).default;
|
|
144
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Loaded config from git`);
|
|
145
|
-
(0, logger_1.log)(logConfig, types_1.LogLevel.Debug, `Raw config:`, loadedConfig);
|
|
146
|
-
const fixedConfig = Object.fromEntries(Object.entries(loadedConfig).map(([k, v]) => [
|
|
147
|
-
k,
|
|
148
|
-
// use absolute paths for template as config is necessarily in another directory
|
|
149
|
-
{ ...v, templates: v.templates.map((t) => path_1.default.resolve(tmpPath, t)) },
|
|
150
|
-
]));
|
|
151
|
-
resolve(wrapNoopResolver(fixedConfig));
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
reject(new Error(`Git clone failed with code ${code}`));
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
129
|
function count(string, substring) {
|
|
160
130
|
return string.split(substring).length - 1;
|
|
161
131
|
}
|
package/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/file.js
CHANGED
|
@@ -4,19 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.handleTemplateFile = exports.getOutputDir = exports.copyFileTransformed = exports.getTemplateFileInfo = exports.getTemplateGlobInfo = exports.getFileList = exports.getBasePath = exports.makeRelativePath = exports.removeGlob = exports.isDir = exports.pathExists = exports.createDirIfNotExists = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const node_constants_1 = require("node:constants");
|
|
9
9
|
const types_1 = require("./types");
|
|
10
|
-
const
|
|
11
|
-
const { stat, access, mkdir } = fs_1.promises;
|
|
10
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
12
11
|
const glob_1 = require("glob");
|
|
13
12
|
const logger_1 = require("./logger");
|
|
14
13
|
const config_1 = require("./config");
|
|
15
14
|
const parser_1 = require("./parser");
|
|
16
15
|
const utils_1 = require("./utils");
|
|
17
|
-
const { readFile, writeFile } =
|
|
16
|
+
const { stat, access, mkdir, readFile, writeFile } = promises_1.default;
|
|
18
17
|
async function createDirIfNotExists(dir, config) {
|
|
19
|
-
|
|
18
|
+
if (config.dryRun) {
|
|
19
|
+
(0, logger_1.log)(config, types_1.LogLevel.Info, `Dry Run. Not creating dir ${dir}`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const parentDir = node_path_1.default.dirname(dir);
|
|
20
23
|
if (!(await pathExists(parentDir))) {
|
|
21
24
|
await createDirIfNotExists(parentDir, config);
|
|
22
25
|
}
|
|
@@ -37,7 +40,7 @@ async function createDirIfNotExists(dir, config) {
|
|
|
37
40
|
exports.createDirIfNotExists = createDirIfNotExists;
|
|
38
41
|
async function pathExists(filePath) {
|
|
39
42
|
try {
|
|
40
|
-
await access(filePath,
|
|
43
|
+
await access(filePath, node_constants_1.F_OK);
|
|
41
44
|
return true;
|
|
42
45
|
}
|
|
43
46
|
catch (e) {
|
|
@@ -54,26 +57,28 @@ async function isDir(path) {
|
|
|
54
57
|
}
|
|
55
58
|
exports.isDir = isDir;
|
|
56
59
|
function removeGlob(template) {
|
|
57
|
-
return template.replace(/\*/g, "")
|
|
60
|
+
return node_path_1.default.normalize(template.replace(/\*/g, ""));
|
|
58
61
|
}
|
|
59
62
|
exports.removeGlob = removeGlob;
|
|
60
63
|
function makeRelativePath(str) {
|
|
61
|
-
return str.startsWith(
|
|
64
|
+
return str.startsWith(node_path_1.default.sep) ? str.slice(1) : str;
|
|
62
65
|
}
|
|
63
66
|
exports.makeRelativePath = makeRelativePath;
|
|
64
67
|
function getBasePath(relPath) {
|
|
65
|
-
return
|
|
68
|
+
return node_path_1.default
|
|
66
69
|
.resolve(process.cwd(), relPath)
|
|
67
|
-
.replace(process.cwd() +
|
|
70
|
+
.replace(process.cwd() + node_path_1.default.sep, "")
|
|
68
71
|
.replace(process.cwd(), "");
|
|
69
72
|
}
|
|
70
73
|
exports.getBasePath = getBasePath;
|
|
71
74
|
async function getFileList(_config, template) {
|
|
75
|
+
template = template.replaceAll(/[\\]+/g, "/");
|
|
76
|
+
(0, logger_1.log)(_config, types_1.LogLevel.Debug, `Getting file list for ${template}`);
|
|
72
77
|
return (await (0, glob_1.glob)(template, {
|
|
73
78
|
dot: true,
|
|
74
79
|
nodir: true,
|
|
75
80
|
// debug: config.verbose === LogLevel.Debug,
|
|
76
|
-
})).map(
|
|
81
|
+
})).map(node_path_1.default.normalize);
|
|
77
82
|
}
|
|
78
83
|
exports.getFileList = getFileList;
|
|
79
84
|
async function getTemplateGlobInfo(config, template) {
|
|
@@ -81,22 +86,22 @@ async function getTemplateGlobInfo(config, template) {
|
|
|
81
86
|
(0, logger_1.log)(config, types_1.LogLevel.Debug, "before isDir", "isGlob:", isGlob, template);
|
|
82
87
|
let _template = template;
|
|
83
88
|
let nonGlobTemplate = isGlob ? removeGlob(template) : template;
|
|
84
|
-
nonGlobTemplate =
|
|
89
|
+
nonGlobTemplate = node_path_1.default.normalize(nonGlobTemplate);
|
|
85
90
|
const isDirOrGlob = isGlob ? true : await isDir(template);
|
|
86
|
-
(0, logger_1.log)(config, types_1.LogLevel.Debug, "after isDir", isDirOrGlob);
|
|
87
91
|
const _shouldAddGlob = !isGlob && isDirOrGlob;
|
|
92
|
+
(0, logger_1.log)(config, types_1.LogLevel.Debug, "after", { isDirOrGlob, _shouldAddGlob });
|
|
88
93
|
const origTemplate = template;
|
|
89
94
|
if (_shouldAddGlob) {
|
|
90
|
-
_template =
|
|
95
|
+
_template = node_path_1.default.join(template, "**", "*");
|
|
91
96
|
}
|
|
92
97
|
return { nonGlobTemplate, origTemplate, isDirOrGlob, isGlob, template: _template };
|
|
93
98
|
}
|
|
94
99
|
exports.getTemplateGlobInfo = getTemplateGlobInfo;
|
|
95
100
|
async function getTemplateFileInfo(config, { templatePath, basePath }) {
|
|
96
|
-
const inputPath =
|
|
101
|
+
const inputPath = node_path_1.default.resolve(process.cwd(), templatePath);
|
|
97
102
|
const outputPathOpt = (0, config_1.getOptionValueForFile)(config, inputPath, config.output);
|
|
98
103
|
const outputDir = getOutputDir(config, outputPathOpt, basePath);
|
|
99
|
-
const outputPath = (0, parser_1.handlebarsParse)(config,
|
|
104
|
+
const outputPath = (0, parser_1.handlebarsParse)(config, node_path_1.default.join(outputDir, node_path_1.default.basename(inputPath)), {
|
|
100
105
|
isPath: true,
|
|
101
106
|
}).toString();
|
|
102
107
|
const exists = await pathExists(outputPath);
|
|
@@ -117,7 +122,7 @@ async function copyFileTransformed(config, { exists, overwrite, outputPath, inpu
|
|
|
117
122
|
}
|
|
118
123
|
else {
|
|
119
124
|
(0, logger_1.log)(config, types_1.LogLevel.Info, "Dry Run. Output should be:");
|
|
120
|
-
(0, logger_1.log)(config, types_1.LogLevel.Info, finalOutputContents);
|
|
125
|
+
(0, logger_1.log)(config, types_1.LogLevel.Info, finalOutputContents.toString());
|
|
121
126
|
}
|
|
122
127
|
}
|
|
123
128
|
else if (exists) {
|
|
@@ -126,7 +131,7 @@ async function copyFileTransformed(config, { exists, overwrite, outputPath, inpu
|
|
|
126
131
|
}
|
|
127
132
|
exports.copyFileTransformed = copyFileTransformed;
|
|
128
133
|
function getOutputDir(config, outputPathOpt, basePath) {
|
|
129
|
-
return
|
|
134
|
+
return node_path_1.default.resolve(process.cwd(), ...[
|
|
130
135
|
outputPathOpt,
|
|
131
136
|
basePath,
|
|
132
137
|
config.createSubFolder
|
|
@@ -146,7 +151,7 @@ async function handleTemplateFile(config, { templatePath, basePath }) {
|
|
|
146
151
|
});
|
|
147
152
|
const overwrite = (0, config_1.getOptionValueForFile)(config, inputPath, config.overwrite ?? false);
|
|
148
153
|
(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`);
|
|
149
|
-
await createDirIfNotExists(
|
|
154
|
+
await createDirIfNotExists(node_path_1.default.dirname(outputPath), config);
|
|
150
155
|
(0, logger_1.log)(config, types_1.LogLevel.Info, `Writing to ${outputPath}`);
|
|
151
156
|
await copyFileTransformed(config, { exists, overwrite, outputPath, inputPath });
|
|
152
157
|
resolve();
|
package/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
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;QACjB,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,6BAA6B,GAAG,EAAE,CAAC,CAAA;QAC9D,OAAM;KACP;IACD,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAEnC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE;QAClC,MAAM,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;KAC9C;IAED,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;QAC5B,IAAI;YACF,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAA;YAClD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAChB,OAAM;SACP;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvB,MAAM,CAAC,CAAA;aACR;YACD,OAAM;SACP;KACF;AACH,CAAC;AAvBD,oDAuBC;AAEM,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI;QACF,MAAM,MAAM,CAAC,QAAQ,EAAE,qBAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACvB,OAAO,KAAK,CAAA;SACb;QACD,MAAM,CAAC,CAAA;KACR;AACH,CAAC;AAVD,gCAUC;AAEM,KAAK,UAAU,KAAK,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;AAC9B,CAAC;AAHD,sBAGC;AAED,SAAgB,UAAU,CAAC,QAAgB;IACzC,OAAO,mBAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AACpD,CAAC;AAFD,gCAEC;AAED,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,CAAC,UAAU,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AACtD,CAAC;AAFD,4CAEC;AAED,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,mBAAI;SACR,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;SAC/B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,mBAAI,CAAC,GAAG,EAAE,EAAE,CAAC;SACrC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AALD,kCAKC;AAEM,KAAK,UAAU,WAAW,CAAC,OAAuB,EAAE,QAAgB;IACzE,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC7C,IAAA,YAAG,EAAC,OAAO,EAAE,gBAAQ,CAAC,KAAK,EAAE,yBAAyB,QAAQ,EAAE,CAAC,CAAA;IACjE,OAAO,CACL,MAAM,IAAA,WAAI,EAAC,QAAQ,EAAE;QACnB,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,IAAI;QACX,4CAA4C;KAC7C,CAAC,CACH,CAAC,GAAG,CAAC,mBAAI,CAAC,SAAS,CAAC,CAAA;AACvB,CAAC;AAVD,kCAUC;AAUM,KAAK,UAAU,mBAAmB,CAAC,MAAsB,EAAE,QAAgB;IAChF,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,QAAQ,CAAC,CAAA;IACjC,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxE,IAAI,SAAS,GAAG,QAAQ,CAAA;IACxB,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC9D,eAAe,GAAG,mBAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;IACzD,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,WAAW,CAAA;IAC7C,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAA;IACrE,MAAM,YAAY,GAAG,QAAQ,CAAA;IAC7B,IAAI,cAAc,EAAE;QAClB,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;KAC3C;IACD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AACpF,CAAC;AAdD,kDAcC;AAUM,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,EAAE,YAAY,EAAE,QAAQ,EAA8C;IAEtE,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,IAAA,8BAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,IAAA,wBAAe,EAAC,MAAM,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;QACzF,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,QAAQ,EAAE,CAAA;IACb,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAA;IAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;AACpE,CAAC;AAZD,kDAYC;AAEM,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,EACE,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,GAMV;IAED,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;QACxB,IAAI,MAAM,IAAI,SAAS,EAAE;YACvB,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,QAAQ,UAAU,sBAAsB,CAAC,CAAA;SACrE;QACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,yBAAyB,GAAG,IAAA,wBAAe,EAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACzE,MAAM,mBAAmB,GACvB,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,IAAI,yBAAyB,CAAA;QAElH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;YAChD,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACpC;aAAM;YACL,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAA;YACxD,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC3D;KACF;SAAM,IAAI,MAAM,EAAE;QACjB,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,QAAQ,UAAU,2BAA2B,CAAC,CAAA;KAC1E;AACH,CAAC;AAjCD,kDAiCC;AAED,SAAgB,YAAY,CAAC,MAAsB,EAAE,aAAqB,EAAE,QAAgB;IAC1F,OAAO,mBAAI,CAAC,OAAO,CACjB,OAAO,CAAC,GAAG,EAAE,EACb,GAAI;QACF,aAAa;QACb,QAAQ;QACR,MAAM,CAAC,eAAe;YACpB,CAAC,CAAC,MAAM,CAAC,mBAAmB;gBAC1B,CAAC,CAAC,IAAA,wBAAe,EAAC,MAAM,EAAE,MAAM,MAAM,CAAC,mBAAmB,UAAU,CAAC,CAAC,QAAQ,EAAE;gBAChF,CAAC,CAAC,MAAM,CAAC,IAAI;YACf,CAAC,CAAC,SAAS;KACd,CAAC,MAAM,CAAC,OAAO,CAAc,CAC/B,CAAA;AACH,CAAC;AAbD,oCAaC;AAEM,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,EAAE,YAAY,EAAE,QAAQ,EAA8C;IAEtE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI;YACF,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;gBACpG,YAAY;gBACZ,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,IAAA,8BAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,CAAA;YAErF,IAAA,YAAG,EACD,MAAM,EACN,gBAAQ,CAAC,KAAK,EACd,aAAa,YAAY,EAAE,EAC3B,gBAAgB,QAAQ,EAAE,EAC1B,sBAAsB,SAAS,EAAE,EACjC,sBAAsB,aAAa,EAAE,EACrC,sBAAsB,SAAS,EAAE,EACjC,uBAAuB,UAAU,EAAE,EACnC,IAAI,CACL,CAAA;YAED,MAAM,oBAAoB,CAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;YAE5D,IAAA,YAAG,EAAC,MAAM,EAAE,gBAAQ,CAAC,IAAI,EAAE,cAAc,UAAU,EAAE,CAAC,CAAA;YACtD,MAAM,mBAAmB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;YAC/E,OAAO,EAAE,CAAA;SACV;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAA;YACZ,MAAM,CAAC,CAAC,CAAC,CAAA;SACV;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAlCD,gDAkCC"}
|
package/git.d.ts
ADDED
package/git.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
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]; } };
|
|
7
|
+
}
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.getGitConfig = void 0;
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
32
|
+
const logger_1 = require("./logger");
|
|
33
|
+
const types_1 = require("./types");
|
|
34
|
+
const node_child_process_1 = require("node:child_process");
|
|
35
|
+
const utils_1 = require("./utils");
|
|
36
|
+
async function getGitConfig(url, logConfig) {
|
|
37
|
+
const repoUrl = `${url.protocol}//${url.host}${url.pathname}`;
|
|
38
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Cloning git repo ${repoUrl}`);
|
|
39
|
+
const tmpPath = node_path_1.default.resolve(node_os_1.default.tmpdir(), `scaffold-config-${Date.now()}`);
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const clone = (0, node_child_process_1.spawn)("git", ["clone", "--depth", "1", repoUrl, tmpPath]);
|
|
42
|
+
clone.on("error", reject);
|
|
43
|
+
clone.on("close", async (code) => {
|
|
44
|
+
if (code === 0) {
|
|
45
|
+
(0, logger_1.log)(logConfig, types_1.LogLevel.Info, `Loading config from git repo: ${repoUrl}`);
|
|
46
|
+
const hashPath = url.hash?.replace("#", "") || "scaffold.config.js";
|
|
47
|
+
const absolutePath = node_path_1.default.resolve(tmpPath, hashPath);
|
|
48
|
+
const loadedConfig = (await Promise.resolve(`${absolutePath}`).then(s => __importStar(require(s)))).default;
|
|
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 = Object.fromEntries(Object.entries(loadedConfig).map(([k, v]) => [
|
|
52
|
+
k,
|
|
53
|
+
// use absolute paths for template as config is necessarily in another directory
|
|
54
|
+
{ ...v, templates: v.templates.map((t) => node_path_1.default.resolve(tmpPath, t)) },
|
|
55
|
+
]));
|
|
56
|
+
resolve((0, utils_1.wrapNoopResolver)(fixedConfig));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
reject(new Error(`Git clone failed with code ${code}`));
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
exports.getGitConfig = getGitConfig;
|
|
64
|
+
//# sourceMappingURL=git.js.map
|
package/git.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAC5B,sDAAwB;AACxB,qCAA8B;AAC9B,mCAAkG;AAClG,2DAA0C;AAC1C,mCAA0C;AAEnC,KAAK,UAAU,YAAY,CAChC,GAAQ,EACR,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,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAEvE,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;gBACd,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,IAAI,EAAE,iCAAiC,OAAO,EAAE,CAAC,CAAA;gBACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAA;gBACnE,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBACpD,MAAM,YAAY,GAAG,CAAC,yBAAa,YAAY,uCAAC,CAAC,CAAC,OAA4B,CAAA;gBAC9E,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;gBACvD,IAAA,YAAG,EAAC,SAAS,EAAE,gBAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;gBAC3D,MAAM,WAAW,GAAsB,MAAM,CAAC,WAAW,CACvD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;oBAC3C,CAAC;oBACD,gFAAgF;oBAChF,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;iBACtE,CAAC,CACH,CAAA;gBAED,OAAO,CAAC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC,CAAA;gBACtC,OAAM;aACP;YAED,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AArCD,oCAqCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simple-scaffold",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.2-pre.1",
|
|
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",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"main": "index.js",
|
|
10
10
|
"bin": "cmd.js",
|
|
11
|
-
"packageManager": "pnpm@8.
|
|
11
|
+
"packageManager": "pnpm@8.6.2",
|
|
12
12
|
"keywords": [
|
|
13
13
|
"javascript",
|
|
14
14
|
"cli",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"chalk": "^4.1.2",
|
|
39
39
|
"date-fns": "^2.30.0",
|
|
40
|
-
"glob": "^10.
|
|
40
|
+
"glob": "^10.3.3",
|
|
41
41
|
"handlebars": "^4.7.7",
|
|
42
42
|
"massarg": "^1.0.7-pre.1"
|
|
43
43
|
},
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"@types/jest": "^29.5.1",
|
|
50
50
|
"@types/mock-fs": "^4.13.1",
|
|
51
51
|
"@types/node": "^18.16.0",
|
|
52
|
+
"@types/semantic-release": "^20.0.1",
|
|
52
53
|
"conventional-changelog": "^3.1.25",
|
|
53
54
|
"conventional-changelog-cli": "^2.2.2",
|
|
54
55
|
"conventional-changelog-conventionalcommits": "^5.0.0",
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"semantic-release-conventional-commits": "^3.0.0",
|
|
60
61
|
"ts-jest": "^29.1.0",
|
|
61
62
|
"ts-node": "^10.9.1",
|
|
62
|
-
"typedoc": "^0.24.
|
|
63
|
+
"typedoc": "^0.24.7",
|
|
63
64
|
"typescript": "^5.0.4"
|
|
64
65
|
}
|
|
65
66
|
}
|
package/parser.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.handlebarsParse = exports.registerHelpers = exports.dateHelper = exports.nowHelper = exports.defaultHelpers = void 0;
|
|
7
|
-
const
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const types_1 = require("./types");
|
|
9
9
|
const handlebars_1 = __importDefault(require("handlebars"));
|
|
10
10
|
const add_1 = __importDefault(require("date-fns/add"));
|
|
@@ -85,7 +85,7 @@ function handlebarsParse(config, templateBuffer, { isPath = false } = {}) {
|
|
|
85
85
|
}
|
|
86
86
|
const parser = handlebars_1.default.compile(str, { noEscape: true });
|
|
87
87
|
let outputContents = parser(data);
|
|
88
|
-
if (isPath &&
|
|
88
|
+
if (isPath && node_path_1.default.sep !== "/") {
|
|
89
89
|
outputContents = outputContents.replace(/\//g, "\\");
|
|
90
90
|
}
|
|
91
91
|
return Buffer.from(outputContents);
|
package/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/scaffold.js
CHANGED
|
@@ -10,7 +10,7 @@ exports.Scaffold = void 0;
|
|
|
10
10
|
*
|
|
11
11
|
* See [readme](README.md)
|
|
12
12
|
*/
|
|
13
|
-
const
|
|
13
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
14
14
|
const utils_1 = require("./utils");
|
|
15
15
|
const file_1 = require("./file");
|
|
16
16
|
const types_1 = require("./types");
|
|
@@ -59,11 +59,12 @@ async function Scaffold(config) {
|
|
|
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.Debug, "Iterating files", { files, template });
|
|
62
63
|
for (const inputFilePath of files) {
|
|
63
64
|
if (await (0, file_1.isDir)(inputFilePath)) {
|
|
64
65
|
continue;
|
|
65
66
|
}
|
|
66
|
-
const relPath = (0, file_1.makeRelativePath)(
|
|
67
|
+
const relPath = (0, file_1.makeRelativePath)(node_path_1.default.dirname((0, file_1.removeGlob)(inputFilePath).replace(nonGlobTemplate, "")));
|
|
67
68
|
const basePath = (0, file_1.getBasePath)(relPath);
|
|
68
69
|
(0, logger_1.logInputFile)(config, {
|
|
69
70
|
originalTemplate: origTemplate,
|
package/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -339,6 +339,8 @@ export type AsyncResolver<T, R = T> = Resolver<T, Promise<R> | R>;
|
|
|
339
339
|
/** @internal */
|
|
340
340
|
export type LogConfig = Pick<ScaffoldConfig, "quiet" | "verbose">;
|
|
341
341
|
/** @internal */
|
|
342
|
-
export type ConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config"
|
|
342
|
+
export type ConfigLoadConfig = LogConfig & Pick<ScaffoldCmdConfig, "config"> & {
|
|
343
|
+
isRemote: boolean;
|
|
344
|
+
};
|
|
343
345
|
/** @internal */
|
|
344
346
|
export type MinimalConfig = Pick<ScaffoldCmdConfig, "name" | "key">;
|
package/utils.d.ts
CHANGED
|
@@ -2,3 +2,4 @@
|
|
|
2
2
|
import { Resolver } from "./types";
|
|
3
3
|
export declare function handleErr(err: NodeJS.ErrnoException | null): void;
|
|
4
4
|
export declare function resolve<T, R = T>(resolver: Resolver<T, R>, arg: T): R;
|
|
5
|
+
export declare function wrapNoopResolver<T, R = T>(value: Resolver<T, R>): Resolver<T, R>;
|
package/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolve = exports.handleErr = void 0;
|
|
3
|
+
exports.wrapNoopResolver = exports.resolve = exports.handleErr = void 0;
|
|
4
4
|
function handleErr(err) {
|
|
5
5
|
if (err)
|
|
6
6
|
throw err;
|
|
@@ -10,4 +10,11 @@ function resolve(resolver, arg) {
|
|
|
10
10
|
return typeof resolver === "function" ? resolver(arg) : resolver;
|
|
11
11
|
}
|
|
12
12
|
exports.resolve = resolve;
|
|
13
|
+
function wrapNoopResolver(value) {
|
|
14
|
+
if (typeof value === "function") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
return (_) => value;
|
|
18
|
+
}
|
|
19
|
+
exports.wrapNoopResolver = wrapNoopResolver;
|
|
13
20
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,SAAS,CAAC,GAAiC;IACzD,IAAI,GAAG;QAAE,MAAM,GAAG,CAAA;AACpB,CAAC;AAFD,8BAEC;AAED,SAAgB,OAAO,CAAW,QAAwB,EAAE,GAAM;IAChE,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,QAAc,CAAA;AAC9F,CAAC;AAFD,0BAEC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,SAAS,CAAC,GAAiC;IACzD,IAAI,GAAG;QAAE,MAAM,GAAG,CAAA;AACpB,CAAC;AAFD,8BAEC;AAED,SAAgB,OAAO,CAAW,QAAwB,EAAE,GAAM;IAChE,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,QAAc,CAAA;AAC9F,CAAC;AAFD,0BAEC;AAED,SAAgB,gBAAgB,CAAW,KAAqB;IAC9D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC/B,OAAO,KAAK,CAAA;KACb;IAED,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAA;AACrB,CAAC;AAND,4CAMC"}
|