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.
@@ -1,6 +1,7 @@
1
1
  export function getTypeScriptPackageJson(name, telemetry) {
2
2
  const deps = {
3
- "sprint-es": "^0.0.29",
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.29",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sprint",
3
- "version": "0.0.32",
3
+ "version": "0.0.34",
4
4
  "description": "Create a new Sprint API project",
5
5
  "type": "module",
6
6
  "bin": {
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.29",
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.29",
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