@skalfa/skalfa-api-core 1.0.12 → 1.0.14

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 +1,7 @@
1
+ import { Command } from "commander";
1
2
  export declare function runCli(): void;
3
+ export declare const devCommand: Command;
4
+ export declare const watchCommand: Command;
5
+ export declare const startCommand: Command;
6
+ export declare const testCommand: Command;
7
+ export declare const lintCommand: Command;
@@ -1,6 +1,7 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { Command } from "commander";
4
+ import { spawn } from "child_process";
4
5
  import { makeControllerCommand } from "./make/basic-controller";
5
6
  import { makeSkalfaControllerCommand } from "./make/skalfa-controller";
6
7
  import { barrelsCommand, watchBarrelsCommand } from "./runner/barrels";
@@ -64,6 +65,55 @@ export function runCli() {
64
65
  program.addCommand(daMigrateCommand);
65
66
  program.addCommand(daMigrateFreshCommand);
66
67
  }
68
+ program.addCommand(devCommand);
69
+ program.addCommand(watchCommand);
70
+ program.addCommand(startCommand);
71
+ program.addCommand(testCommand);
72
+ program.addCommand(lintCommand);
67
73
  program.parse(process.argv);
68
74
  }
75
+ function getPackageManager() {
76
+ const userAgent = process.env.npm_config_user_agent || "";
77
+ if (userAgent.includes("yarn"))
78
+ return "yarn";
79
+ if (userAgent.includes("pnpm"))
80
+ return "pnpm";
81
+ if (userAgent.includes("bun"))
82
+ return "bun";
83
+ return "npm";
84
+ }
85
+ function executeCommand(commandLine) {
86
+ const child = spawn(commandLine, { stdio: "inherit", shell: true });
87
+ child.on("exit", (code) => {
88
+ process.exit(code || 0);
89
+ });
90
+ }
91
+ export const devCommand = new Command("dev")
92
+ .description("Start development server")
93
+ .action(() => {
94
+ const pm = getPackageManager();
95
+ executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels"`);
96
+ });
97
+ export const watchCommand = new Command("watch")
98
+ .description("Start app watcher")
99
+ .action(() => {
100
+ executeCommand("bun run --watch app/app.ts");
101
+ });
102
+ export const startCommand = new Command("start")
103
+ .description("Start server")
104
+ .action(() => {
105
+ executeCommand("bun run app/app.ts");
106
+ });
107
+ export const testCommand = new Command("test")
108
+ .description("Run typescript compiler check")
109
+ .action(() => {
110
+ const pm = getPackageManager();
111
+ executeCommand(pm === "bun" ? "bun tsc --noEmit" : "tsc --noEmit");
112
+ });
113
+ export const lintCommand = new Command("lint")
114
+ .description("Run eslint check")
115
+ .action(() => {
116
+ const pm = getPackageManager();
117
+ executeCommand(pm === "bun" ? "bunx eslint app/* database/*" : "eslint app/* database/*");
118
+ });
69
119
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/commands/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/commands/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skalfa/skalfa-api-core",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "description": "Core framework engine and foundational utilities for the Skalfa API backend.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "author": "",
16
16
  "license": "MIT",
17
17
  "dependencies": {
18
- "@skalfa/skalfa-orm": "^1.0.7",
18
+ "@skalfa/skalfa-orm": "^1.0.8",
19
19
  "knex": "^3.1.0",
20
20
  "bcrypt": "^6.0.0",
21
21
  "commander": "^12.1.0",
@@ -1,6 +1,7 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { Command } from "commander";
4
+ import { spawn } from "child_process";
4
5
 
5
6
  import { makeControllerCommand } from "./make/basic-controller";
6
7
  import { makeSkalfaControllerCommand } from "./make/skalfa-controller";
@@ -75,5 +76,59 @@ export function runCli() {
75
76
  program.addCommand(daMigrateFreshCommand);
76
77
  }
77
78
 
79
+ program.addCommand(devCommand);
80
+ program.addCommand(watchCommand);
81
+ program.addCommand(startCommand);
82
+ program.addCommand(testCommand);
83
+ program.addCommand(lintCommand);
84
+
78
85
  program.parse(process.argv);
79
86
  }
87
+
88
+ function getPackageManager(): string {
89
+ const userAgent = process.env.npm_config_user_agent || "";
90
+ if (userAgent.includes("yarn")) return "yarn";
91
+ if (userAgent.includes("pnpm")) return "pnpm";
92
+ if (userAgent.includes("bun")) return "bun";
93
+ return "npm";
94
+ }
95
+
96
+ function executeCommand(commandLine: string): void {
97
+ const child = spawn(commandLine, { stdio: "inherit", shell: true });
98
+ child.on("exit", (code) => {
99
+ process.exit(code || 0);
100
+ });
101
+ }
102
+
103
+ export const devCommand = new Command("dev")
104
+ .description("Start development server")
105
+ .action(() => {
106
+ const pm = getPackageManager();
107
+ executeCommand(`concurrently --raw "${pm} run watch" "${pm} run skalfa watch:barrels"`);
108
+ });
109
+
110
+ export const watchCommand = new Command("watch")
111
+ .description("Start app watcher")
112
+ .action(() => {
113
+ executeCommand("bun run --watch app/app.ts");
114
+ });
115
+
116
+ export const startCommand = new Command("start")
117
+ .description("Start server")
118
+ .action(() => {
119
+ executeCommand("bun run app/app.ts");
120
+ });
121
+
122
+ export const testCommand = new Command("test")
123
+ .description("Run typescript compiler check")
124
+ .action(() => {
125
+ const pm = getPackageManager();
126
+ executeCommand(pm === "bun" ? "bun tsc --noEmit" : "tsc --noEmit");
127
+ });
128
+
129
+ export const lintCommand = new Command("lint")
130
+ .description("Run eslint check")
131
+ .action(() => {
132
+ const pm = getPackageManager();
133
+ executeCommand(pm === "bun" ? "bunx eslint app/* database/*" : "eslint app/* database/*");
134
+ });