Skip to content

Commit 4bfeb91

Browse files
committed
feat: add skip argument
1 parent 09cb6a8 commit 4bfeb91

File tree

4 files changed

+37
-22
lines changed

4 files changed

+37
-22
lines changed

index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/usr/bin/env node
2-
require("./lib/cli")().catch(console.error);
2+
require("./lib/cli")(process.argv.slice(2)).catch(console.error);

lib/cli.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ const tempDir = os.tmpdir() + `/${packageName}-staging`;
1515
const elapsed = require("elapsed-time-logger");
1616
let spinner;
1717

18-
module.exports = async () => {
19-
const argv = yargs_parser(process.argv.slice(2), {
20-
alias: { release: ["r"] },
18+
module.exports = async (argvs) => {
19+
const argv = yargs_parser(argvs, {
20+
alias: { release: ["r"], yes: ["y"] },
2121
});
2222
const timer = elapsed.start();
2323
const version = argv["release"] || "latest";
@@ -33,7 +33,7 @@ module.exports = async () => {
3333
{}
3434
);
3535
await fs.copy(tempDir + "/dist", targetDir);
36-
await onLoad(targetDir, version);
36+
await onLoad(targetDir, version, argv);
3737
spinner.succeed(
3838
`${nameWithVersion} copied to ${targetDir} in ${timer.get()}. Have fun!`
3939
);
@@ -53,29 +53,32 @@ module.exports = async () => {
5353
}
5454
};
5555

56-
const onLoad = async (targetDir, version) => {
56+
const onLoad = async (targetDir, version, argv) => {
5757
// see https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows
5858
const npmIgnoreFiles = await glob(
5959
`${targetDir.replace(/\\/g, "/")}/**/.npmignore`
6060
);
6161
for (const npmIgnore of npmIgnoreFiles) {
6262
await fs.rename(npmIgnore, npmIgnore.replace(/\.npmignore$/, ".gitignore"));
6363
}
64+
const skipPrompts = argv["yes"] === true;
6465

6566
spinner.stop();
66-
67+
if (skipPrompts) {
68+
return;
69+
}
6770
const questions = [
6871
{
6972
type: "autocomplete",
70-
name: "lang",
73+
name: "langAnswer",
7174
message: "Select language",
7275
choices: langs.map((code) => {
7376
return { title: code };
7477
}),
7578
},
7679
];
7780

78-
const { lang } = await prompts(questions);
81+
const { langAnswer } = await prompts(questions);
7982
try {
8083
const indexFile = targetDir + "/index.html";
8184
const sourceHTML = await fs.readFile(indexFile, "utf-8");

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/test.js

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,32 @@ const cases = [
3434
const versionFolder = (version = null) =>
3535
version ? `./out/${version}` : defaultDir;
3636

37-
const runCli = async (version = null) => {
37+
const runCli = async ({ version = null, dir = null, skip = false }) => {
38+
let argvs = [];
3839
let prevCwd;
39-
if (version) {
40-
process.argv.push(version);
41-
process.argv.push(versionFolder(version));
40+
if (dir) {
41+
argvs.push(dir);
4242
} else {
4343
await fs.ensureDir(defaultDir);
4444
prevCwd = process.cwd();
4545
process.chdir(defaultDir);
4646
}
47-
await cli();
47+
4848
if (version) {
49-
process.argv = process.argv.filter(
50-
(v) => v !== version && v !== versionFolder(version)
51-
); //revert process args
52-
} else {
49+
argvs.push(version);
50+
}
51+
if (skip) {
52+
argvs.push("-y");
53+
}
54+
55+
await cli(argvs);
56+
if (prevCwd) {
5357
process.chdir(prevCwd); //revert process current dir
5458
}
5559
};
5660
describe.each(cases)("Downloading %s", (version) => {
5761
beforeAll(async () => {
58-
await runCli(version);
62+
await runCli({ version: version, dir: versionFolder(version), skip: true });
5963
});
6064
afterAll(async () => {
6165
await fs.remove(versionFolder(version));
@@ -124,7 +128,11 @@ describe("Errors", () => {
124128
//maybe create test.each() for more errors scenarios
125129
const version = "-r=6..2.3";
126130
try {
127-
await runCli(version);
131+
await runCli({
132+
version: version,
133+
dir: versionFolder(version),
134+
skip: true,
135+
});
128136
} catch (err) {
129137
expect(err).toBe("ETARGET");
130138
} finally {
@@ -138,7 +146,11 @@ describe("Unexpected errors", () => {
138146
//maybe create test.each() for more errors scenarios
139147
const version = "-r=6..2.3,7.2.3";
140148
try {
141-
await runCli(version);
149+
await runCli({
150+
version: version,
151+
dir: versionFolder(version),
152+
skip: true,
153+
});
142154
} catch (err) {
143155
expect(err).not.toBe("ETARGET");
144156
} finally {

0 commit comments

Comments
 (0)