create-sprint 0.0.42 → 0.0.44
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/index.js +2 -43
- package/package.json +1 -1
- package/src/index.ts +9 -50
package/dist/index.js
CHANGED
|
@@ -93,56 +93,15 @@ function parseArgs(args) {
|
|
|
93
93
|
return options;
|
|
94
94
|
}
|
|
95
95
|
;
|
|
96
|
-
async function
|
|
97
|
-
const name = await p.text({
|
|
98
|
-
message: "Enter project name:",
|
|
99
|
-
validate: (value) => validateProjectName(value) || undefined,
|
|
100
|
-
});
|
|
101
|
-
return name;
|
|
102
|
-
}
|
|
103
|
-
;
|
|
104
|
-
async function selectLanguage() {
|
|
105
|
-
const language = await p.select({
|
|
106
|
-
message: "Select your preferred language:",
|
|
107
|
-
options: [
|
|
108
|
-
{ value: "typescript", label: "TypeScript", hint: "recommended" },
|
|
109
|
-
{ value: "javascript", label: "JavaScript" },
|
|
110
|
-
],
|
|
111
|
-
});
|
|
112
|
-
return language;
|
|
113
|
-
}
|
|
114
|
-
;
|
|
115
|
-
async function selectTelemetry() {
|
|
116
|
-
const telemetry = await p.select({
|
|
117
|
-
message: "Select error tracking/telemetry solution:",
|
|
118
|
-
options: [
|
|
119
|
-
{ value: "none", label: "None" },
|
|
120
|
-
{ value: "sentry", label: "Sentry", hint: "free tier available" },
|
|
121
|
-
{ value: "glitchtip", label: "GlitchTip", hint: "self-hostable" },
|
|
122
|
-
{ value: "discord", label: "Discord Webhook", hint: "sends to a channel" },
|
|
123
|
-
],
|
|
124
|
-
});
|
|
125
|
-
return telemetry;
|
|
126
|
-
}
|
|
127
|
-
async function createProject(projectName, language, telemetryArg, useDockerArg) {
|
|
96
|
+
async function createProject(projectName, language, telemetry, useDocker) {
|
|
128
97
|
const isCurrentDir = projectName === ".";
|
|
129
98
|
const targetDir = isCurrentDir ? process.cwd() : join(process.cwd(), projectName);
|
|
130
99
|
if (!isCurrentDir && existsSync(targetDir)) {
|
|
131
|
-
|
|
100
|
+
p.cancel(`Directory "${projectName}" already exists.`);
|
|
132
101
|
process.exit(1);
|
|
133
102
|
}
|
|
134
103
|
if (!isCurrentDir)
|
|
135
104
|
await mkdir(targetDir, { recursive: true });
|
|
136
|
-
let telemetry = telemetryArg || "none";
|
|
137
|
-
if (!telemetryArg)
|
|
138
|
-
telemetry = await selectTelemetry();
|
|
139
|
-
let useDocker = useDockerArg || false;
|
|
140
|
-
if (!useDockerArg) {
|
|
141
|
-
useDocker = await p.confirm({
|
|
142
|
-
message: "Do you want to add Docker support?",
|
|
143
|
-
initialValue: false,
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
105
|
let pkgJson;
|
|
147
106
|
if (language === "typescript")
|
|
148
107
|
pkgJson = getTypeScriptPackageJson(projectName, telemetry);
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -64,7 +64,12 @@ export async function runCLI(args: string[]) {
|
|
|
64
64
|
|
|
65
65
|
const s = p.spinner();
|
|
66
66
|
s.start("Creating project");
|
|
67
|
-
await createProject(
|
|
67
|
+
await createProject(
|
|
68
|
+
config.projectName as string,
|
|
69
|
+
config.language as "typescript" | "javascript",
|
|
70
|
+
config.telemetry as string,
|
|
71
|
+
config.docker as boolean,
|
|
72
|
+
);
|
|
68
73
|
s.stop("Project created");
|
|
69
74
|
|
|
70
75
|
const installDeps = await p.confirm({ message: "Install dependencies now?", initialValue: true });
|
|
@@ -122,68 +127,22 @@ function parseArgs(args: string[]): CLIOptions {
|
|
|
122
127
|
return options;
|
|
123
128
|
};
|
|
124
129
|
|
|
125
|
-
async function getProjectName(): Promise<string> {
|
|
126
|
-
const name = await p.text({
|
|
127
|
-
message: "Enter project name:",
|
|
128
|
-
validate: (value) => validateProjectName(value) || undefined,
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
return name as string;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
async function selectLanguage(): Promise<"typescript" | "javascript"> {
|
|
135
|
-
const language = await p.select({
|
|
136
|
-
message: "Select your preferred language:",
|
|
137
|
-
options: [
|
|
138
|
-
{ value: "typescript", label: "TypeScript", hint: "recommended" },
|
|
139
|
-
{ value: "javascript", label: "JavaScript" },
|
|
140
|
-
],
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
return language as "typescript" | "javascript";
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
async function selectTelemetry(): Promise<"none" | "sentry" | "glitchtip" | "discord"> {
|
|
147
|
-
const telemetry = await p.select({
|
|
148
|
-
message: "Select error tracking/telemetry solution:",
|
|
149
|
-
options: [
|
|
150
|
-
{ value: "none", label: "None" },
|
|
151
|
-
{ value: "sentry", label: "Sentry", hint: "free tier available" },
|
|
152
|
-
{ value: "glitchtip", label: "GlitchTip", hint: "self-hostable" },
|
|
153
|
-
{ value: "discord", label: "Discord Webhook", hint: "sends to a channel" },
|
|
154
|
-
],
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
return telemetry as "none" | "sentry" | "glitchtip" | "discord";
|
|
158
|
-
}
|
|
159
|
-
|
|
160
130
|
async function createProject(
|
|
161
131
|
projectName: string,
|
|
162
132
|
language: "typescript" | "javascript",
|
|
163
|
-
|
|
164
|
-
|
|
133
|
+
telemetry: string,
|
|
134
|
+
useDocker: boolean
|
|
165
135
|
) {
|
|
166
136
|
const isCurrentDir = projectName === ".";
|
|
167
137
|
const targetDir = isCurrentDir ? process.cwd() : join(process.cwd(), projectName);
|
|
168
138
|
|
|
169
139
|
if (!isCurrentDir && existsSync(targetDir)) {
|
|
170
|
-
|
|
140
|
+
p.cancel(`Directory "${projectName}" already exists.`);
|
|
171
141
|
process.exit(1);
|
|
172
142
|
}
|
|
173
143
|
|
|
174
144
|
if (!isCurrentDir) await mkdir(targetDir, { recursive: true });
|
|
175
145
|
|
|
176
|
-
let telemetry = telemetryArg || "none";
|
|
177
|
-
if (!telemetryArg) telemetry = await selectTelemetry();
|
|
178
|
-
|
|
179
|
-
let useDocker = useDockerArg || false;
|
|
180
|
-
if (!useDockerArg) {
|
|
181
|
-
useDocker = await p.confirm({
|
|
182
|
-
message: "Do you want to add Docker support?",
|
|
183
|
-
initialValue: false,
|
|
184
|
-
}) as boolean;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
146
|
let pkgJson;
|
|
188
147
|
if (language === "typescript") pkgJson = getTypeScriptPackageJson(projectName, telemetry);
|
|
189
148
|
else pkgJson = getJavaScriptPackageJson(projectName, telemetry);
|