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 CHANGED
@@ -93,56 +93,15 @@ function parseArgs(args) {
93
93
  return options;
94
94
  }
95
95
  ;
96
- async function getProjectName() {
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
- console.error(`Error: Directory ${projectName} already exists`);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sprint",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "Create a new Sprint API project",
5
5
  "type": "module",
6
6
  "bin": {
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(config.projectName, config.language as "typescript" | "javascript", config.telemetry, config.docker);
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
- telemetryArg?: string,
164
- useDockerArg?: boolean
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
- console.error(`Error: Directory ${projectName} already exists`);
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);