create-sprint 0.0.32 ā 0.0.34
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/generators.js +30 -4
- package/dist/index.js +3 -1
- package/package.json +1 -1
- package/src/generators.ts +31 -4
- package/src/index.ts +4 -1
package/dist/generators.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export function getTypeScriptPackageJson(name, telemetry) {
|
|
2
2
|
const deps = {
|
|
3
|
-
"sprint-es": "^0.0.
|
|
3
|
+
"sprint-es": "^0.0.35",
|
|
4
|
+
"node-cron": "^3.0.3",
|
|
4
5
|
dotenv: "^17.0.0",
|
|
5
6
|
};
|
|
6
7
|
const devDeps = {
|
|
@@ -30,7 +31,8 @@ export function getTypeScriptPackageJson(name, telemetry) {
|
|
|
30
31
|
}
|
|
31
32
|
export function getJavaScriptPackageJson(name, telemetry) {
|
|
32
33
|
const deps = {
|
|
33
|
-
"sprint-es": "^0.0.
|
|
34
|
+
"sprint-es": "^0.0.35",
|
|
35
|
+
"node-cron": "^3.0.3",
|
|
34
36
|
dotenv: "^17.0.0",
|
|
35
37
|
};
|
|
36
38
|
if (telemetry === "sentry" || telemetry === "glitchtip") {
|
|
@@ -251,7 +253,7 @@ export const adminSchema = defineRouteSchema({
|
|
|
251
253
|
}),
|
|
252
254
|
body: z.object({
|
|
253
255
|
name: z.string().min(1),
|
|
254
|
-
email: z.email().optional()
|
|
256
|
+
email: z.string().email().optional()
|
|
255
257
|
})
|
|
256
258
|
});
|
|
257
259
|
`;
|
|
@@ -264,7 +266,7 @@ export const adminSchema = defineRouteSchema({
|
|
|
264
266
|
}),
|
|
265
267
|
body: z.object({
|
|
266
268
|
name: z.string().min(1),
|
|
267
|
-
email: z.email().optional()
|
|
269
|
+
email: z.string().email().optional()
|
|
268
270
|
})
|
|
269
271
|
});
|
|
270
272
|
`;
|
|
@@ -544,3 +546,27 @@ DISCORD_WEBHOOK_URL=
|
|
|
544
546
|
}
|
|
545
547
|
return env;
|
|
546
548
|
}
|
|
549
|
+
export function getExampleCronJob(language) {
|
|
550
|
+
if (language === "typescript") {
|
|
551
|
+
return `import { defineCronJob } from "sprint-es/cronjobs";
|
|
552
|
+
|
|
553
|
+
export default defineCronJob({
|
|
554
|
+
name: "daily-task",
|
|
555
|
+
cronExpression: "0 21 * * *",
|
|
556
|
+
handler: () => {
|
|
557
|
+
console.log("Hello World from cronjob!");
|
|
558
|
+
}
|
|
559
|
+
});
|
|
560
|
+
`;
|
|
561
|
+
}
|
|
562
|
+
return `import { defineCronJob } from "sprint-es/cronjobs";
|
|
563
|
+
|
|
564
|
+
export default defineCronJob({
|
|
565
|
+
name: "daily-task",
|
|
566
|
+
cronExpression: "0 21 * * *",
|
|
567
|
+
handler: () => {
|
|
568
|
+
console.log("Hello World from cronjob!");
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
`;
|
|
572
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { mkdir, writeFile } from "fs/promises";
|
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { input, select, confirm } from "@inquirer/prompts";
|
|
6
6
|
import { validateProjectName } from "./validators.js";
|
|
7
|
-
import { getTypeScriptPackageJson, getJavaScriptPackageJson, getTsConfig, getViteConfig, getMainFile, getHomeRoute, getAdminRoute, getHomeController, getAdminController, getAuthMiddleware, getHomeSchema, getAdminSchema, getDockerfile, getDockerCompose, getGitignore, getDockerIgnore, getSprintConfigFile, getEnvDevelopment, getEnvProduction } from "./generators.js";
|
|
7
|
+
import { getTypeScriptPackageJson, getJavaScriptPackageJson, getTsConfig, getViteConfig, getMainFile, getHomeRoute, getAdminRoute, getHomeController, getAdminController, getAuthMiddleware, getHomeSchema, getAdminSchema, getDockerfile, getDockerCompose, getGitignore, getDockerIgnore, getSprintConfigFile, getEnvDevelopment, getEnvProduction, getExampleCronJob } from "./generators.js";
|
|
8
8
|
export async function runCLI(args) {
|
|
9
9
|
const options = parseArgs(args);
|
|
10
10
|
console.log("\nš Welcome to Sprint - Quickly API Framework\n");
|
|
@@ -180,6 +180,7 @@ async function createProject(projectName, language, telemetryArg, useDockerArg)
|
|
|
180
180
|
await mkdir(join(srcDir, "routes"), { recursive: true });
|
|
181
181
|
await mkdir(join(srcDir, "controllers"), { recursive: true });
|
|
182
182
|
await mkdir(join(srcDir, "schemas"), { recursive: true });
|
|
183
|
+
await mkdir(join(srcDir, "cronjobs"), { recursive: true });
|
|
183
184
|
await writeFile(join(srcDir, "middlewares", ".gitkeep"), "");
|
|
184
185
|
await writeFile(join(srcDir, "app." + (language === "typescript" ? "ts" : "js")), getMainFile(language));
|
|
185
186
|
await writeFile(join(srcDir, "routes", "home." + (language === "typescript" ? "ts" : "js")), getHomeRoute(language));
|
|
@@ -189,6 +190,7 @@ async function createProject(projectName, language, telemetryArg, useDockerArg)
|
|
|
189
190
|
await writeFile(join(srcDir, "middlewares", "auth." + (language === "typescript" ? "ts" : "js")), getAuthMiddleware(language));
|
|
190
191
|
await writeFile(join(srcDir, "schemas", "home." + (language === "typescript" ? "ts" : "js")), getHomeSchema(language));
|
|
191
192
|
await writeFile(join(srcDir, "schemas", "admin." + (language === "typescript" ? "ts" : "js")), getAdminSchema(language));
|
|
193
|
+
await writeFile(join(srcDir, "cronjobs", "example." + (language === "typescript" ? "ts" : "js")), getExampleCronJob(language));
|
|
192
194
|
await writeFile(join(targetDir, ".env.development.example"), getEnvDevelopment(telemetry));
|
|
193
195
|
await writeFile(join(targetDir, ".env.production.example"), getEnvProduction(telemetry));
|
|
194
196
|
await writeFile(join(targetDir, ".env.development"), "");
|
package/package.json
CHANGED
package/src/generators.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export function getTypeScriptPackageJson(name: string, telemetry: string) {
|
|
2
2
|
const deps: Record<string, string> = {
|
|
3
|
-
"sprint-es": "^0.0.
|
|
3
|
+
"sprint-es": "^0.0.35",
|
|
4
|
+
"node-cron": "^3.0.3",
|
|
4
5
|
dotenv: "^17.0.0",
|
|
5
6
|
};
|
|
6
7
|
|
|
@@ -33,7 +34,8 @@ export function getTypeScriptPackageJson(name: string, telemetry: string) {
|
|
|
33
34
|
|
|
34
35
|
export function getJavaScriptPackageJson(name: string, telemetry: string) {
|
|
35
36
|
const deps: Record<string, string> = {
|
|
36
|
-
"sprint-es": "^0.0.
|
|
37
|
+
"sprint-es": "^0.0.35",
|
|
38
|
+
"node-cron": "^3.0.3",
|
|
37
39
|
dotenv: "^17.0.0",
|
|
38
40
|
};
|
|
39
41
|
|
|
@@ -265,7 +267,7 @@ export const adminSchema = defineRouteSchema({
|
|
|
265
267
|
}),
|
|
266
268
|
body: z.object({
|
|
267
269
|
name: z.string().min(1),
|
|
268
|
-
email: z.email().optional()
|
|
270
|
+
email: z.string().email().optional()
|
|
269
271
|
})
|
|
270
272
|
});
|
|
271
273
|
`;
|
|
@@ -278,7 +280,7 @@ export const adminSchema = defineRouteSchema({
|
|
|
278
280
|
}),
|
|
279
281
|
body: z.object({
|
|
280
282
|
name: z.string().min(1),
|
|
281
|
-
email: z.email().optional()
|
|
283
|
+
email: z.string().email().optional()
|
|
282
284
|
})
|
|
283
285
|
});
|
|
284
286
|
`;
|
|
@@ -573,3 +575,28 @@ DISCORD_WEBHOOK_URL=
|
|
|
573
575
|
|
|
574
576
|
return env;
|
|
575
577
|
}
|
|
578
|
+
|
|
579
|
+
export function getExampleCronJob(language: string) {
|
|
580
|
+
if (language === "typescript") {
|
|
581
|
+
return `import { defineCronJob } from "sprint-es/cronjobs";
|
|
582
|
+
|
|
583
|
+
export default defineCronJob({
|
|
584
|
+
name: "daily-task",
|
|
585
|
+
cronExpression: "0 21 * * *",
|
|
586
|
+
handler: () => {
|
|
587
|
+
console.log("Hello World from cronjob!");
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
`;
|
|
591
|
+
}
|
|
592
|
+
return `import { defineCronJob } from "sprint-es/cronjobs";
|
|
593
|
+
|
|
594
|
+
export default defineCronJob({
|
|
595
|
+
name: "daily-task",
|
|
596
|
+
cronExpression: "0 21 * * *",
|
|
597
|
+
handler: () => {
|
|
598
|
+
console.log("Hello World from cronjob!");
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
`;
|
|
602
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { mkdir, writeFile } from "fs/promises";
|
|
|
4
4
|
import { join } from "path";
|
|
5
5
|
import { input, select, confirm } from "@inquirer/prompts";
|
|
6
6
|
import { validateProjectName } from "./validators.js";
|
|
7
|
-
import { getTypeScriptPackageJson, getJavaScriptPackageJson, getTsConfig, getViteConfig, getMainFile, getHomeRoute, getAdminRoute, getHomeController, getAdminController, getAuthMiddleware, getHomeSchema, getAdminSchema, getDockerfile, getDockerCompose, getGitignore, getDockerIgnore, getSprintConfigFile, getEnvDevelopment, getEnvProduction } from "./generators.js";
|
|
7
|
+
import { getTypeScriptPackageJson, getJavaScriptPackageJson, getTsConfig, getViteConfig, getMainFile, getHomeRoute, getAdminRoute, getHomeController, getAdminController, getAuthMiddleware, getHomeSchema, getAdminSchema, getDockerfile, getDockerCompose, getGitignore, getDockerIgnore, getSprintConfigFile, getEnvDevelopment, getEnvProduction, getExampleCronJob } from "./generators.js";
|
|
8
8
|
|
|
9
9
|
export interface CLIOptions {
|
|
10
10
|
projectName?: string;
|
|
@@ -210,6 +210,7 @@ async function createProject(
|
|
|
210
210
|
await mkdir(join(srcDir, "routes"), { recursive: true });
|
|
211
211
|
await mkdir(join(srcDir, "controllers"), { recursive: true });
|
|
212
212
|
await mkdir(join(srcDir, "schemas"), { recursive: true });
|
|
213
|
+
await mkdir(join(srcDir, "cronjobs"), { recursive: true });
|
|
213
214
|
|
|
214
215
|
await writeFile(join(srcDir, "middlewares", ".gitkeep"), "");
|
|
215
216
|
|
|
@@ -226,6 +227,8 @@ async function createProject(
|
|
|
226
227
|
await writeFile(join(srcDir, "schemas", "home." + (language === "typescript" ? "ts" : "js")), getHomeSchema(language));
|
|
227
228
|
await writeFile(join(srcDir, "schemas", "admin." + (language === "typescript" ? "ts" : "js")), getAdminSchema(language));
|
|
228
229
|
|
|
230
|
+
await writeFile(join(srcDir, "cronjobs", "example." + (language === "typescript" ? "ts" : "js")), getExampleCronJob(language));
|
|
231
|
+
|
|
229
232
|
await writeFile(join(targetDir, ".env.development.example"), getEnvDevelopment(telemetry));
|
|
230
233
|
await writeFile(join(targetDir, ".env.production.example"), getEnvProduction(telemetry));
|
|
231
234
|
|