complete-cli 1.5.13 → 1.5.15-dev.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/dist/commands/PublishCommand.js +11 -8
- package/dist/commands/PublishCommand.js.map +1 -1
- package/dist/commands/init/createProject.js +5 -5
- package/dist/commands/init/createProject.js.map +1 -1
- package/dist/commands/init/vsCodeInit.js +2 -2
- package/dist/commands/init/vsCodeInit.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/git.js +2 -3
- package/dist/git.js.map +1 -1
- package/dist/main.js +0 -0
- package/dist/prompt.js +4 -3
- package/dist/prompt.js.map +1 -1
- package/file-templates/dynamic/.github/workflows/setup/action.yml +3 -6
- package/file-templates/dynamic/package.json +3 -3
- package/file-templates/static/.github/workflows/ci.yml +2 -2
- package/file-templates/static/.vscode/extensions.json +1 -1
- package/file-templates/static/.vscode/settings.json +11 -11
- package/package.json +9 -9
- package/src/commands/PublishCommand.ts +19 -8
- package/src/commands/init/createProject.ts +14 -18
- package/src/commands/init/vsCodeInit.ts +5 -6
- package/src/constants.ts +1 -1
- package/src/git.ts +3 -3
- package/src/prompt.ts +5 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, Option } from "clipanion";
|
|
2
|
-
import { isSemanticVersion } from "complete-common";
|
|
3
|
-
import { $, fatalError, getPackageJSONFieldsMandatory, getPackageManagerInstallCommand, getPackageManagerLockFileName, getPackageManagersForProject, isFile, isGitDirectoryClean, isGitRepository, readFile, updatePackageJSONDependencies, writeFile, } from "complete-node";
|
|
2
|
+
import { assertDefined, isSemanticVersion } from "complete-common";
|
|
3
|
+
import { $, fatalError, getPackageJSONFieldsMandatory, getPackageManagerForProject, getPackageManagerInstallCommand, getPackageManagerLockFileName, getPackageManagersForProject, isFile, isGitDirectoryClean, isGitRepository, PackageManager, readFile, updatePackageJSONDependencies, writeFile, } from "complete-node";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { CWD, DEFAULT_PACKAGE_MANAGER } from "../constants.js";
|
|
6
6
|
export class PublishCommand extends Command {
|
|
@@ -52,9 +52,9 @@ async function prePublish(versionBumpType, dryRun, skipLint, skipUpdate) {
|
|
|
52
52
|
await updateDependencies(skipUpdate, dryRun, packageManager);
|
|
53
53
|
await incrementVersion(versionBumpType);
|
|
54
54
|
await unsetDevelopmentConstants();
|
|
55
|
-
await
|
|
55
|
+
await tryRunPackageScript("build", packageManager);
|
|
56
56
|
if (!skipLint) {
|
|
57
|
-
await
|
|
57
|
+
await tryRunPackageScript("lint", packageManager);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
async function getPackageManagerUsedForExistingProject() {
|
|
@@ -109,7 +109,7 @@ async function incrementVersion(versionBumpType) {
|
|
|
109
109
|
}
|
|
110
110
|
// We always use `npm` here to avoid differences with the version command between package
|
|
111
111
|
// managers. The "--no-git-tag-version" flag will prevent npm from both making a commit and adding
|
|
112
|
-
// a tag.
|
|
112
|
+
// a tag. (`bun version` is not implemented.)
|
|
113
113
|
await $ `npm version ${versionBumpType} --no-git-tag-version`;
|
|
114
114
|
}
|
|
115
115
|
async function unsetDevelopmentConstants() {
|
|
@@ -124,12 +124,12 @@ async function unsetDevelopmentConstants() {
|
|
|
124
124
|
.replace("const DEBUG = true", "const DEBUG = false");
|
|
125
125
|
await writeFile(constantsTSPath, newConstantsTS);
|
|
126
126
|
}
|
|
127
|
-
async function
|
|
127
|
+
async function tryRunPackageScript(scriptName, packageManager) {
|
|
128
128
|
console.log(`Running: ${scriptName}`);
|
|
129
129
|
const $$ = $({
|
|
130
130
|
reject: false,
|
|
131
131
|
});
|
|
132
|
-
const { exitCode } = await $$
|
|
132
|
+
const { exitCode } = await $$ `${packageManager} run ${scriptName}`;
|
|
133
133
|
if (exitCode !== 0) {
|
|
134
134
|
await $ `git reset --hard`; // Revert the version changes.
|
|
135
135
|
fatalError(`Failed to run "${scriptName}".`);
|
|
@@ -143,11 +143,14 @@ async function publish(dryRun) {
|
|
|
143
143
|
else {
|
|
144
144
|
const releaseGitCommitMessage = getReleaseGitCommitMessage(version);
|
|
145
145
|
await gitCommitAllAndPush(releaseGitCommitMessage);
|
|
146
|
+
const packageManager = await getPackageManagerForProject(CWD);
|
|
147
|
+
assertDefined(packageManager, `Failed to get the package manager for the project at directory: ${CWD}`);
|
|
148
|
+
const command = packageManager === PackageManager.bun ? "bun" : "npm";
|
|
146
149
|
// - The "--access=public" flag is only technically needed for the first publish (unless the
|
|
147
150
|
// package is a scoped package), but it is saved here for posterity.
|
|
148
151
|
// - The "--ignore-scripts" flag is needed since the "npm publish" command will run the
|
|
149
152
|
// "publish" script in the "package.json" file, causing an infinite loop.
|
|
150
|
-
await $
|
|
153
|
+
await $ `${command} publish --access=public --ignore-scripts`;
|
|
151
154
|
}
|
|
152
155
|
const dryRunSuffix = dryRun ? " (dry-run)" : "";
|
|
153
156
|
console.log(`Published ${name} version ${version} successfully${dryRunSuffix}.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublishCommand.js","sourceRoot":"","sources":["../../../../src/commands/PublishCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"PublishCommand.js","sourceRoot":"","sources":["../../../../src/commands/PublishCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { assertObject, repeat } from "complete-common";
|
|
2
|
+
import { assertObject, mapAsync, repeat } from "complete-common";
|
|
3
3
|
import { $q, copyFileOrDirectory, formatWithPrettier, getFileNamesInDirectory, getPackageJSON, getPackageManagerInstallCICommand, getPackageManagerInstallCommand, isFile, makeDirectory, PackageManager, readFile, renameFileOrDirectory, updatePackageJSONDependencies, writeFile, } from "complete-node";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { ACTION_YML, ACTION_YML_TEMPLATE_PATH, TEMPLATES_DYNAMIC_DIR, TEMPLATES_STATIC_DIR, } from "../../constants.js";
|
|
@@ -45,14 +45,14 @@ async function copyStaticFiles(projectPath) {
|
|
|
45
45
|
}
|
|
46
46
|
async function copyTemplateDirectoryWithoutOverwriting(templateDirPath, projectPath) {
|
|
47
47
|
const fileNames = await getFileNamesInDirectory(templateDirPath);
|
|
48
|
-
await
|
|
48
|
+
await mapAsync(fileNames, async (fileName) => {
|
|
49
49
|
const templateFilePath = path.join(templateDirPath, fileName);
|
|
50
50
|
const destinationFilePath = path.join(projectPath, fileName);
|
|
51
51
|
const file = await isFile(destinationFilePath);
|
|
52
52
|
if (!file) {
|
|
53
53
|
await copyFileOrDirectory(templateFilePath, destinationFilePath);
|
|
54
54
|
}
|
|
55
|
-
})
|
|
55
|
+
});
|
|
56
56
|
}
|
|
57
57
|
/** Copy files that need to have text replaced inside of them. */
|
|
58
58
|
async function copyDynamicFiles(projectName, authorName, projectPath, packageManager) {
|
|
@@ -145,11 +145,11 @@ async function copyPackageManagerSpecificFiles(projectPath, packageManager) {
|
|
|
145
145
|
tsConfigJSONPath,
|
|
146
146
|
tsConfigJSONScriptsPath,
|
|
147
147
|
];
|
|
148
|
-
await
|
|
148
|
+
await mapAsync(filePathsToReplaceNodeWithBun, async (filePath) => {
|
|
149
149
|
const fileContents = await readFile(filePath);
|
|
150
150
|
const newFileContents = fileContents.replaceAll("node", "bun");
|
|
151
151
|
await writeFile(filePath, newFileContents);
|
|
152
|
-
})
|
|
152
|
+
});
|
|
153
153
|
// Second, replace "tsx" with "bun run".
|
|
154
154
|
const packageJSONPath = path.join(projectPath, "package.json");
|
|
155
155
|
const fileContents = await readFile(packageJSONPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../../../src/commands/init/createProject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"createProject.js","sourceRoot":"","sources":["../../../../../src/commands/init/createProject.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertObject, isArrayString } from "complete-common";
|
|
1
|
+
import { assertObject, isArrayString, mapAsync } from "complete-common";
|
|
2
2
|
import { $, $q, commandExists, getJSONC, isFile } from "complete-node";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { getInputYesNo, promptError, promptLog } from "../../prompt.js";
|
|
@@ -37,7 +37,7 @@ async function installVSCodeExtensions(projectPath, vsCodeCommand) {
|
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
const extensions = await getExtensionsFromJSON(projectPath);
|
|
40
|
-
await
|
|
40
|
+
await mapAsync(extensions, async (extension) => await $q `${vsCodeCommand} --install-extension ${extension}`);
|
|
41
41
|
}
|
|
42
42
|
async function getExtensionsFromJSON(projectPath) {
|
|
43
43
|
const extensionsJSONPath = path.join(projectPath, ".vscode", "extensions.json");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsCodeInit.js","sourceRoot":"","sources":["../../../../../src/commands/init/vsCodeInit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"vsCodeInit.js","sourceRoot":"","sources":["../../../../../src/commands/init/vsCodeInit.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -9,7 +9,7 @@ const PACKAGE_ROOT = path.resolve(import.meta.dirname, "..");
|
|
|
9
9
|
const { name, version } = packageJSON;
|
|
10
10
|
export const PROJECT_NAME = name;
|
|
11
11
|
export const PROJECT_VERSION = version;
|
|
12
|
-
export const DEFAULT_PACKAGE_MANAGER = PackageManager.
|
|
12
|
+
export const DEFAULT_PACKAGE_MANAGER = PackageManager.bun;
|
|
13
13
|
const TEMPLATES_DIR = path.join(PACKAGE_ROOT, "file-templates");
|
|
14
14
|
export const TEMPLATES_STATIC_DIR = path.join(TEMPLATES_DIR, "static");
|
|
15
15
|
export const TEMPLATES_DYNAMIC_DIR = path.join(TEMPLATES_DIR, "dynamic");
|
package/dist/git.js
CHANGED
|
@@ -59,7 +59,6 @@ export async function promptGitHubRepoOrGitRemoteURL(projectName, yes, skipGit)
|
|
|
59
59
|
promptLog('Git does not seem to be installed. (The "git" command is not in the path.) Skipping Git-related things.');
|
|
60
60
|
return undefined;
|
|
61
61
|
}
|
|
62
|
-
const dummyDefaultValue = "__GIT_URL__";
|
|
63
62
|
const gitHubUsername = await getGitHubUsername();
|
|
64
63
|
if (gitHubUsername === undefined) {
|
|
65
64
|
const gitRemoteURL = await getInputString(`Paste in the remote Git URL for your project.
|
|
@@ -67,8 +66,8 @@ For example, if you have an SSH key, it would be something like:
|
|
|
67
66
|
${chalk.green("git@github.com:Alice/some-repository.git")}
|
|
68
67
|
If you do not have an SSH key, it would be something like:
|
|
69
68
|
${chalk.green("https://github.com/Alice/some-repository.git")}
|
|
70
|
-
If you do not want to initialize a Git repository for this project, press enter to skip.`,
|
|
71
|
-
return gitRemoteURL ===
|
|
69
|
+
If you do not want to initialize a Git repository for this project, press enter to skip.`, undefined, true);
|
|
70
|
+
return gitRemoteURL === "" ? undefined : gitRemoteURL;
|
|
72
71
|
}
|
|
73
72
|
const url = `https://github.com/${gitHubUsername}/${projectName}`;
|
|
74
73
|
let gitHubRepositoryExists = true;
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAuB,CAAC;IAEnE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,oDAAoD;IACpD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAmB,EACnB,GAAY,EACZ,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uFAAuF;IACvF,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uEAAuE;IACvE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,CACP,yGAAyG,CAC1G,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/git.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
File without changes
|
package/dist/prompt.js
CHANGED
|
@@ -22,7 +22,7 @@ export async function getInputYesNo(msg, defaultValue = true) {
|
|
|
22
22
|
return input;
|
|
23
23
|
}
|
|
24
24
|
/** Returns trimmed input. */
|
|
25
|
-
export async function getInputString(msg, defaultValue) {
|
|
25
|
+
export async function getInputString(msg, defaultValue, allowEmpty = false) {
|
|
26
26
|
const input = await text({
|
|
27
27
|
message: msg,
|
|
28
28
|
initialValue: defaultValue,
|
|
@@ -34,10 +34,11 @@ export async function getInputString(msg, defaultValue) {
|
|
|
34
34
|
// The "text" return type is bugged: "input" is equal to "undefined" if the user did not enter any
|
|
35
35
|
// input.
|
|
36
36
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
37
|
-
|
|
37
|
+
const trimmedInput = input === undefined ? "" : input.trim();
|
|
38
|
+
if (!allowEmpty && trimmedInput === "") {
|
|
38
39
|
promptError("You must enter a non-empty value.");
|
|
39
40
|
}
|
|
40
|
-
return
|
|
41
|
+
return trimmedInput;
|
|
41
42
|
}
|
|
42
43
|
export function promptLog(msg) {
|
|
43
44
|
log.step(msg); // Step is a hollow green diamond.
|
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/prompt.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,sEAAsE;AAEtE,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,GAAG,EACH,KAAK,EACL,OAAO,EACP,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,KAAK,CAAC,GAAG,CAAC,CAAC;IACX,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,YAAY,GAAG,IAAI;IAEnB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;QAC1B,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,YAAqB;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/prompt.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,sEAAsE;AAEtE,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,GAAG,EACH,KAAK,EACL,OAAO,EACP,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,KAAK,CAAC,GAAG,CAAC,CAAC;IACX,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,YAAY,GAAG,IAAI;IAEnB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;QAC1B,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,YAAqB,EACrB,UAAU,GAAG,KAAK;IAElB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,WAAW,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kGAAkG;IAClG,SAAS;IACT,uEAAuE;IACvE,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7D,IAAI,CAAC,UAAU,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACvC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC;AACnD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IACH,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -2,12 +2,9 @@ runs:
|
|
|
2
2
|
using: composite
|
|
3
3
|
|
|
4
4
|
steps:
|
|
5
|
-
- name: Setup
|
|
6
|
-
uses:
|
|
7
|
-
with:
|
|
8
|
-
node-version: lts/*
|
|
9
|
-
cache: PACKAGE_MANAGER_NAME
|
|
5
|
+
- name: Setup Bun
|
|
6
|
+
uses: oven-sh/setup-bun@v2
|
|
10
7
|
|
|
11
8
|
- name: Install dependencies
|
|
12
|
-
run:
|
|
9
|
+
run: bun ci
|
|
13
10
|
shell: bash # Composite jobs must specify the shell.
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"dist"
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
|
-
"build": "
|
|
21
|
-
"lint": "
|
|
20
|
+
"build": "bun run ./scripts/build.ts",
|
|
21
|
+
"lint": "bun run ./scripts/lint.ts",
|
|
22
22
|
"publish": "complete-cli publish",
|
|
23
|
-
"start": "
|
|
23
|
+
"start": "bun run ./src/main.ts",
|
|
24
24
|
"update": "complete-cli update"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
@@ -8,14 +8,14 @@ jobs:
|
|
|
8
8
|
steps:
|
|
9
9
|
- uses: actions/checkout@v6
|
|
10
10
|
- uses: ./.github/workflows/setup
|
|
11
|
-
- run:
|
|
11
|
+
- run: bun run build
|
|
12
12
|
|
|
13
13
|
lint:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
16
|
- uses: actions/checkout@v6
|
|
17
17
|
- uses: ./.github/workflows/setup
|
|
18
|
-
- run:
|
|
18
|
+
- run: bun run lint
|
|
19
19
|
|
|
20
20
|
discord:
|
|
21
21
|
name: Discord Failure Notification
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
{
|
|
4
4
|
"recommendations": [
|
|
5
5
|
"dbaeumer.vscode-eslint", // The TypeScript linter
|
|
6
|
-
"
|
|
6
|
+
"esbenp.prettier-vscode", // The TypeScript formatter
|
|
7
7
|
"streetsidesoftware.code-spell-checker", // A spell-checker extension based on CSpell
|
|
8
8
|
],
|
|
9
9
|
}
|
|
@@ -73,56 +73,56 @@
|
|
|
73
73
|
"editor.codeActionsOnSave": {
|
|
74
74
|
"source.fixAll.eslint": "explicit",
|
|
75
75
|
},
|
|
76
|
-
"editor.defaultFormatter": "
|
|
76
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
77
77
|
"editor.formatOnSave": true,
|
|
78
78
|
},
|
|
79
79
|
"[typescript]": {
|
|
80
80
|
"editor.codeActionsOnSave": {
|
|
81
81
|
"source.fixAll.eslint": "explicit",
|
|
82
82
|
},
|
|
83
|
-
"editor.defaultFormatter": "
|
|
83
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
84
84
|
"editor.formatOnSave": true,
|
|
85
85
|
},
|
|
86
86
|
"[javascriptreact]": {
|
|
87
87
|
"editor.codeActionsOnSave": {
|
|
88
88
|
"source.fixAll.eslint": "explicit",
|
|
89
89
|
},
|
|
90
|
-
"editor.defaultFormatter": "
|
|
90
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
91
91
|
"editor.formatOnSave": true,
|
|
92
92
|
},
|
|
93
93
|
"[typescriptreact]": {
|
|
94
94
|
"editor.codeActionsOnSave": {
|
|
95
95
|
"source.fixAll.eslint": "explicit",
|
|
96
96
|
},
|
|
97
|
-
"editor.defaultFormatter": "
|
|
97
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
98
98
|
"editor.formatOnSave": true,
|
|
99
99
|
},
|
|
100
100
|
"[css]": {
|
|
101
|
-
"editor.defaultFormatter": "
|
|
101
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
102
102
|
"editor.formatOnSave": true,
|
|
103
103
|
},
|
|
104
104
|
"[html]": {
|
|
105
|
-
"editor.defaultFormatter": "
|
|
105
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
106
106
|
"editor.formatOnSave": true,
|
|
107
107
|
},
|
|
108
108
|
"[json]": {
|
|
109
|
-
"editor.defaultFormatter": "
|
|
109
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
110
110
|
"editor.formatOnSave": true,
|
|
111
111
|
},
|
|
112
112
|
"[jsonc]": {
|
|
113
|
-
"editor.defaultFormatter": "
|
|
113
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
114
114
|
"editor.formatOnSave": true,
|
|
115
115
|
},
|
|
116
116
|
"[markdown]": {
|
|
117
|
-
"editor.defaultFormatter": "
|
|
117
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
118
118
|
"editor.formatOnSave": true,
|
|
119
119
|
},
|
|
120
120
|
"[postcss]": {
|
|
121
|
-
"editor.defaultFormatter": "
|
|
121
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
122
122
|
"editor.formatOnSave": true,
|
|
123
123
|
},
|
|
124
124
|
"[yaml]": {
|
|
125
|
-
"editor.defaultFormatter": "
|
|
125
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
126
126
|
"editor.formatOnSave": true,
|
|
127
127
|
},
|
|
128
128
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "complete-cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.15-dev.1",
|
|
4
4
|
"description": "A command line tool for bootstrapping TypeScript projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -25,29 +25,29 @@
|
|
|
25
25
|
"src"
|
|
26
26
|
],
|
|
27
27
|
"scripts": {
|
|
28
|
-
"build": "
|
|
29
|
-
"lint": "
|
|
30
|
-
"start": "
|
|
31
|
-
"test": "
|
|
28
|
+
"build": "bun run ./scripts/build.ts",
|
|
29
|
+
"lint": "bun run ./scripts/lint.ts",
|
|
30
|
+
"start": "bun run ./src/main.ts",
|
|
31
|
+
"test": "bun test"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@clack/prompts": "0.11.0",
|
|
35
35
|
"chalk": "5.6.2",
|
|
36
36
|
"clipanion": "4.0.0-rc.4",
|
|
37
|
-
"complete-common": "2.
|
|
38
|
-
"complete-node": "16.
|
|
37
|
+
"complete-common": "2.14.0",
|
|
38
|
+
"complete-node": "16.2.0",
|
|
39
39
|
"klaw-sync": "7.0.0",
|
|
40
40
|
"source-map-support": "0.5.21",
|
|
41
41
|
"yaml": "2.8.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/klaw-sync": "6.0.5",
|
|
45
|
-
"@types/node": "25.0.
|
|
45
|
+
"@types/node": "25.0.9",
|
|
46
46
|
"@types/source-map-support": "0.5.10",
|
|
47
47
|
"ts-loader": "9.5.4",
|
|
48
48
|
"tsconfig-paths-webpack-plugin": "4.2.0",
|
|
49
49
|
"typescript": "5.9.3",
|
|
50
|
-
"typescript-eslint": "8.
|
|
50
|
+
"typescript-eslint": "8.53.0",
|
|
51
51
|
"webpack": "5.104.1",
|
|
52
52
|
"webpack-cli": "6.0.1",
|
|
53
53
|
"webpack-shebang-plugin": "1.1.8"
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { Command, Option } from "clipanion";
|
|
2
|
-
import { isSemanticVersion } from "complete-common";
|
|
3
|
-
import type { PackageManager } from "complete-node";
|
|
2
|
+
import { assertDefined, isSemanticVersion } from "complete-common";
|
|
4
3
|
import {
|
|
5
4
|
$,
|
|
6
5
|
fatalError,
|
|
7
6
|
getPackageJSONFieldsMandatory,
|
|
7
|
+
getPackageManagerForProject,
|
|
8
8
|
getPackageManagerInstallCommand,
|
|
9
9
|
getPackageManagerLockFileName,
|
|
10
10
|
getPackageManagersForProject,
|
|
11
11
|
isFile,
|
|
12
12
|
isGitDirectoryClean,
|
|
13
13
|
isGitRepository,
|
|
14
|
+
PackageManager,
|
|
14
15
|
readFile,
|
|
15
16
|
updatePackageJSONDependencies,
|
|
16
17
|
writeFile,
|
|
@@ -95,9 +96,9 @@ async function prePublish(
|
|
|
95
96
|
await incrementVersion(versionBumpType);
|
|
96
97
|
await unsetDevelopmentConstants();
|
|
97
98
|
|
|
98
|
-
await
|
|
99
|
+
await tryRunPackageScript("build", packageManager);
|
|
99
100
|
if (!skipLint) {
|
|
100
|
-
await
|
|
101
|
+
await tryRunPackageScript("lint", packageManager);
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
|
|
@@ -176,7 +177,7 @@ async function incrementVersion(versionBumpType: string) {
|
|
|
176
177
|
|
|
177
178
|
// We always use `npm` here to avoid differences with the version command between package
|
|
178
179
|
// managers. The "--no-git-tag-version" flag will prevent npm from both making a commit and adding
|
|
179
|
-
// a tag.
|
|
180
|
+
// a tag. (`bun version` is not implemented.)
|
|
180
181
|
await $`npm version ${versionBumpType} --no-git-tag-version`;
|
|
181
182
|
}
|
|
182
183
|
|
|
@@ -194,13 +195,16 @@ async function unsetDevelopmentConstants() {
|
|
|
194
195
|
await writeFile(constantsTSPath, newConstantsTS);
|
|
195
196
|
}
|
|
196
197
|
|
|
197
|
-
async function
|
|
198
|
+
async function tryRunPackageScript(
|
|
199
|
+
scriptName: string,
|
|
200
|
+
packageManager: PackageManager,
|
|
201
|
+
) {
|
|
198
202
|
console.log(`Running: ${scriptName}`);
|
|
199
203
|
|
|
200
204
|
const $$ = $({
|
|
201
205
|
reject: false,
|
|
202
206
|
});
|
|
203
|
-
const { exitCode } = await
|
|
207
|
+
const { exitCode } = await $$`${packageManager} run ${scriptName}`;
|
|
204
208
|
|
|
205
209
|
if (exitCode !== 0) {
|
|
206
210
|
await $`git reset --hard`; // Revert the version changes.
|
|
@@ -221,11 +225,18 @@ async function publish(dryRun: boolean) {
|
|
|
221
225
|
const releaseGitCommitMessage = getReleaseGitCommitMessage(version);
|
|
222
226
|
await gitCommitAllAndPush(releaseGitCommitMessage);
|
|
223
227
|
|
|
228
|
+
const packageManager = await getPackageManagerForProject(CWD);
|
|
229
|
+
assertDefined(
|
|
230
|
+
packageManager,
|
|
231
|
+
`Failed to get the package manager for the project at directory: ${CWD}`,
|
|
232
|
+
);
|
|
233
|
+
const command = packageManager === PackageManager.bun ? "bun" : "npm";
|
|
234
|
+
|
|
224
235
|
// - The "--access=public" flag is only technically needed for the first publish (unless the
|
|
225
236
|
// package is a scoped package), but it is saved here for posterity.
|
|
226
237
|
// - The "--ignore-scripts" flag is needed since the "npm publish" command will run the
|
|
227
238
|
// "publish" script in the "package.json" file, causing an infinite loop.
|
|
228
|
-
await
|
|
239
|
+
await $`${command} publish --access=public --ignore-scripts`;
|
|
229
240
|
}
|
|
230
241
|
|
|
231
242
|
const dryRunSuffix = dryRun ? " (dry-run)" : "";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { assertObject, repeat } from "complete-common";
|
|
2
|
+
import { assertObject, mapAsync, repeat } from "complete-common";
|
|
3
3
|
import {
|
|
4
4
|
$q,
|
|
5
5
|
copyFileOrDirectory,
|
|
@@ -92,16 +92,14 @@ async function copyTemplateDirectoryWithoutOverwriting(
|
|
|
92
92
|
projectPath: string,
|
|
93
93
|
) {
|
|
94
94
|
const fileNames = await getFileNamesInDirectory(templateDirPath);
|
|
95
|
-
await
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}),
|
|
104
|
-
);
|
|
95
|
+
await mapAsync(fileNames, async (fileName) => {
|
|
96
|
+
const templateFilePath = path.join(templateDirPath, fileName);
|
|
97
|
+
const destinationFilePath = path.join(projectPath, fileName);
|
|
98
|
+
const file = await isFile(destinationFilePath);
|
|
99
|
+
if (!file) {
|
|
100
|
+
await copyFileOrDirectory(templateFilePath, destinationFilePath);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
/** Copy files that need to have text replaced inside of them. */
|
|
@@ -229,13 +227,11 @@ async function copyPackageManagerSpecificFiles(
|
|
|
229
227
|
tsConfigJSONPath,
|
|
230
228
|
tsConfigJSONScriptsPath,
|
|
231
229
|
];
|
|
232
|
-
await
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}),
|
|
238
|
-
);
|
|
230
|
+
await mapAsync(filePathsToReplaceNodeWithBun, async (filePath) => {
|
|
231
|
+
const fileContents = await readFile(filePath);
|
|
232
|
+
const newFileContents = fileContents.replaceAll("node", "bun");
|
|
233
|
+
await writeFile(filePath, newFileContents);
|
|
234
|
+
});
|
|
239
235
|
|
|
240
236
|
// Second, replace "tsx" with "bun run".
|
|
241
237
|
const packageJSONPath = path.join(projectPath, "package.json");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { assertObject, isArrayString } from "complete-common";
|
|
1
|
+
import { assertObject, isArrayString, mapAsync } from "complete-common";
|
|
2
2
|
import { $, $q, commandExists, getJSONC, isFile } from "complete-node";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { getInputYesNo, promptError, promptLog } from "../../prompt.js";
|
|
@@ -53,11 +53,10 @@ async function installVSCodeExtensions(
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
const extensions = await getExtensionsFromJSON(projectPath);
|
|
56
|
-
await
|
|
57
|
-
extensions
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
),
|
|
56
|
+
await mapAsync(
|
|
57
|
+
extensions,
|
|
58
|
+
async (extension) =>
|
|
59
|
+
await $q`${vsCodeCommand} --install-extension ${extension}`,
|
|
61
60
|
);
|
|
62
61
|
}
|
|
63
62
|
|
package/src/constants.ts
CHANGED
|
@@ -14,7 +14,7 @@ const { name, version } = packageJSON;
|
|
|
14
14
|
export const PROJECT_NAME = name;
|
|
15
15
|
export const PROJECT_VERSION = version;
|
|
16
16
|
|
|
17
|
-
export const DEFAULT_PACKAGE_MANAGER = PackageManager.
|
|
17
|
+
export const DEFAULT_PACKAGE_MANAGER = PackageManager.bun;
|
|
18
18
|
|
|
19
19
|
const TEMPLATES_DIR = path.join(PACKAGE_ROOT, "file-templates");
|
|
20
20
|
export const TEMPLATES_STATIC_DIR = path.join(TEMPLATES_DIR, "static");
|
package/src/git.ts
CHANGED
|
@@ -80,7 +80,6 @@ export async function promptGitHubRepoOrGitRemoteURL(
|
|
|
80
80
|
return undefined;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const dummyDefaultValue = "__GIT_URL__";
|
|
84
83
|
const gitHubUsername = await getGitHubUsername();
|
|
85
84
|
if (gitHubUsername === undefined) {
|
|
86
85
|
const gitRemoteURL = await getInputString(
|
|
@@ -90,10 +89,11 @@ ${chalk.green("git@github.com:Alice/some-repository.git")}
|
|
|
90
89
|
If you do not have an SSH key, it would be something like:
|
|
91
90
|
${chalk.green("https://github.com/Alice/some-repository.git")}
|
|
92
91
|
If you do not want to initialize a Git repository for this project, press enter to skip.`,
|
|
93
|
-
|
|
92
|
+
undefined,
|
|
93
|
+
true,
|
|
94
94
|
);
|
|
95
95
|
|
|
96
|
-
return gitRemoteURL ===
|
|
96
|
+
return gitRemoteURL === "" ? undefined : gitRemoteURL;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
const url = `https://github.com/${gitHubUsername}/${projectName}`;
|
package/src/prompt.ts
CHANGED
|
@@ -44,6 +44,7 @@ export async function getInputYesNo(
|
|
|
44
44
|
export async function getInputString(
|
|
45
45
|
msg: string,
|
|
46
46
|
defaultValue?: string,
|
|
47
|
+
allowEmpty = false,
|
|
47
48
|
): Promise<string> {
|
|
48
49
|
const input = await text({
|
|
49
50
|
message: msg,
|
|
@@ -58,11 +59,13 @@ export async function getInputString(
|
|
|
58
59
|
// The "text" return type is bugged: "input" is equal to "undefined" if the user did not enter any
|
|
59
60
|
// input.
|
|
60
61
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
61
|
-
|
|
62
|
+
const trimmedInput = input === undefined ? "" : input.trim();
|
|
63
|
+
|
|
64
|
+
if (!allowEmpty && trimmedInput === "") {
|
|
62
65
|
promptError("You must enter a non-empty value.");
|
|
63
66
|
}
|
|
64
67
|
|
|
65
|
-
return
|
|
68
|
+
return trimmedInput;
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
export function promptLog(msg: string): void {
|