@dolphjs/cli 1.4.0 → 2.0.0

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.
Files changed (107) hide show
  1. package/dist/daemon/watcher.d.ts +4 -0
  2. package/dist/daemon/watcher.js +82 -53
  3. package/dist/daemon/watcherConfig.d.ts +1 -0
  4. package/dist/daemon/watcherConfig.js +13 -9
  5. package/dist/generators/generate_controller.d.ts +2 -0
  6. package/dist/generators/generate_controller.js +38 -30
  7. package/dist/generators/generate_model.d.ts +2 -0
  8. package/dist/generators/generate_model.js +35 -27
  9. package/dist/generators/generate_mysql.d.ts +2 -0
  10. package/dist/generators/generate_mysql.js +33 -25
  11. package/dist/generators/generate_routes.d.ts +2 -0
  12. package/dist/generators/generate_routes.js +33 -25
  13. package/dist/generators/generate_service.d.ts +2 -0
  14. package/dist/generators/generate_service.js +36 -28
  15. package/dist/generators/resolvers/resolve_controller_content.d.ts +1 -0
  16. package/dist/generators/resolvers/resolve_controller_content.js +29 -3
  17. package/dist/generators/resolvers/resolve_model_content.d.ts +2 -0
  18. package/dist/generators/resolvers/resolve_model_content.js +32 -5
  19. package/dist/generators/resolvers/resolve_routes_content.d.ts +1 -0
  20. package/dist/generators/resolvers/resolve_routes_content.js +29 -3
  21. package/dist/generators/resolvers/resolve_service_content.d.ts +1 -0
  22. package/dist/generators/resolvers/resolve_service_content.js +29 -3
  23. package/dist/generators/spring/generate_spring_component.d.ts +2 -0
  24. package/dist/generators/spring/generate_spring_component.js +30 -22
  25. package/dist/generators/spring/generate_spring_controller.d.ts +2 -0
  26. package/dist/generators/spring/generate_spring_controller.js +30 -22
  27. package/dist/generators/spring/generate_spring_model.d.ts +2 -0
  28. package/dist/generators/spring/generate_spring_model.js +30 -22
  29. package/dist/generators/spring/generate_spring_mysql.d.ts +2 -0
  30. package/dist/generators/spring/generate_spring_mysql.js +30 -22
  31. package/dist/generators/spring/generate_spring_service.d.ts +2 -0
  32. package/dist/generators/spring/generate_spring_service.js +30 -22
  33. package/dist/generators/spring/generate_spring_socket_service.d.ts +2 -0
  34. package/dist/generators/spring/generate_spring_socket_service.js +29 -21
  35. package/dist/generators/templates/controller_template.d.ts +5 -0
  36. package/dist/generators/templates/controller_template.js +7 -1
  37. package/dist/generators/templates/model_template.d.ts +5 -0
  38. package/dist/generators/templates/model_template.js +7 -1
  39. package/dist/generators/templates/mysql_config_template.d.ts +5 -0
  40. package/dist/generators/templates/mysql_config_template.js +7 -1
  41. package/dist/generators/templates/routes_template.d.ts +5 -0
  42. package/dist/generators/templates/routes_template.js +7 -1
  43. package/dist/generators/templates/service_template.d.ts +5 -0
  44. package/dist/generators/templates/service_template.js +7 -1
  45. package/dist/generators/templates/socket_service_template.d.ts +1 -0
  46. package/dist/generators/templates/socket_service_template.js +5 -1
  47. package/dist/generators/templates/spring_component_template.d.ts +1 -0
  48. package/dist/generators/templates/spring_component_template.js +5 -1
  49. package/dist/generators/templates/spring_controller_template.d.ts +1 -0
  50. package/dist/generators/templates/spring_controller_template.js +5 -1
  51. package/dist/generators/templates/spring_model_template.d.ts +1 -0
  52. package/dist/generators/templates/spring_model_template.js +5 -1
  53. package/dist/generators/templates/spring_service_template.d.ts +1 -0
  54. package/dist/generators/templates/spring_service_template.js +5 -1
  55. package/dist/get_file_stats.d.ts +1 -0
  56. package/dist/get_file_stats.js +10 -0
  57. package/dist/helpers/messages.d.ts +8 -0
  58. package/dist/helpers/messages.js +14 -8
  59. package/dist/index.d.ts +2 -0
  60. package/dist/index.js +110 -29
  61. package/dist/install.d.ts +1 -0
  62. package/dist/install.js +149 -0
  63. package/dist/registers/register_component.d.ts +1 -0
  64. package/dist/registers/register_component.js +27 -21
  65. package/dist/registers/register_controllers_in_components.d.ts +1 -0
  66. package/dist/registers/register_controllers_in_components.js +22 -17
  67. package/dist/registers/register_routes.d.ts +1 -0
  68. package/dist/registers/register_routes.js +27 -32
  69. package/dist/registers/server_file_express.d.ts +1 -0
  70. package/dist/registers/server_file_express.js +20 -17
  71. package/dist/registers/server_file_spring.d.ts +1 -0
  72. package/dist/registers/server_file_spring.js +18 -13
  73. package/dist/types/config.d.ts +14 -0
  74. package/dist/types/config.js +2 -1
  75. package/dist/utils/get_root_dir_path.d.ts +1 -0
  76. package/dist/utils/get_root_dir_path.js +10 -3
  77. package/dist/utils/get_user_config_path.d.ts +1 -0
  78. package/dist/utils/get_user_config_path.js +14 -7
  79. package/dist/utils/init_helper_function.d.ts +1 -0
  80. package/dist/utils/init_helper_function.js +50 -44
  81. package/dist/utils/package_config.d.ts +1 -0
  82. package/dist/utils/package_config.js +2 -0
  83. package/dist/utils/package_description.d.ts +1 -0
  84. package/dist/utils/package_description.js +12 -5
  85. package/dist/utils/package_generator.d.ts +1 -0
  86. package/dist/utils/package_generator.js +69 -41
  87. package/dist/utils/package_init.d.ts +1 -0
  88. package/dist/utils/package_init.js +9 -5
  89. package/dist/utils/read_package_json.d.ts +4 -0
  90. package/dist/utils/read_package_json.js +17 -0
  91. package/dist/utils/read_user_config.d.ts +1 -0
  92. package/dist/utils/read_user_config.js +29 -22
  93. package/dist/utils/read_user_config_path.d.ts +1 -0
  94. package/dist/utils/read_user_config_path.js +16 -9
  95. package/dist/utils/write_dolph_config.d.ts +1 -0
  96. package/dist/utils/write_dolph_config.js +32 -5
  97. package/dist/utils/write_gitignore.d.ts +1 -0
  98. package/dist/utils/write_gitignore.js +32 -5
  99. package/dist/utils/write_package_json.d.ts +1 -0
  100. package/dist/utils/write_package_json.js +32 -5
  101. package/dist/utils/write_swrcc.d.ts +1 -0
  102. package/dist/utils/write_swrcc.js +32 -5
  103. package/dist/utils/write_tsconfig.d.ts +1 -0
  104. package/dist/utils/write_tsconfig.js +34 -5
  105. package/dist/utils/write_user_config.d.ts +1 -0
  106. package/dist/utils/write_user_config.js +17 -10
  107. package/package.json +22 -12
package/dist/index.js CHANGED
@@ -1,32 +1,113 @@
1
1
  #!/usr/bin/env node
2
- import chalk from "chalk";
3
- import { program } from "commander";
4
- import figlet from "figlet";
5
- import { packageDescription } from "./utils/package_description.js";
6
- import { configurePackage } from "./utils/read_user_config.js";
7
- import { InitDolphCli } from "./utils/package_init.js";
8
- import { packageGenerator } from "./utils/package_generator.js";
9
- import { watcherConfig } from "./daemon/watcherConfig.js";
10
- figlet.text("dolph cli", {
11
- font: "Big",
12
- horizontalLayout: "default",
13
- verticalLayout: "default",
14
- width: 150,
15
- whitespaceBreak: true,
16
- }, function (err, _data) {
17
- if (err) {
18
- console.log("[FIGLET ERROR]: ", chalk.red(err.toString()));
19
- return;
2
+ "use strict";
3
+ // import chalk from "chalk";
4
+ // import { program } from "commander";
5
+ // import figlet from "figlet";
6
+ // import { packageDescription } from "./utils/package_description.js";
7
+ // import { configurePackage } from "./utils/read_user_config.js";
8
+ // import { InitDolphCli } from "./utils/package_init.js";
9
+ // import { packageGenerator } from "./utils/package_generator.js";
10
+ // import { watcherConfig } from "./daemon/watcherConfig.js";
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ // figlet.text(
49
+ // "dolph cli",
50
+ // {
51
+ // font: "Big",
52
+ // horizontalLayout: "default",
53
+ // verticalLayout: "default",
54
+ // width: 150,
55
+ // whitespaceBreak: true,
56
+ // },
57
+ // function (err: any, _data: any) {
58
+ // if (err) {
59
+ // console.log("[FIGLET ERROR]: ", chalk.red(err.toString()));
60
+ // return;
61
+ // }
62
+ // // console.log(chalk.bold(chalk.cyan(data)));
63
+ // InitDolphCli();
64
+ // packageDescription();
65
+ // configurePackage();
66
+ // packageGenerator();
67
+ // watcherConfig();
68
+ // program.command("*", { hidden: true }).action(() => {
69
+ // console.log(
70
+ // `${chalk.red("[DOLPH ERROR]: ")} ${chalk.redBright(
71
+ // "unknown command. See list of available commands: "
72
+ // )}`
73
+ // );
74
+ // program.help();
75
+ // });
76
+ // program.parse(process.argv);
77
+ // }
78
+ // );
79
+ const path = __importStar(require("path"));
80
+ const os = __importStar(require("os"));
81
+ const child_process_1 = require("child_process");
82
+ const chalk_1 = __importDefault(require("chalk"));
83
+ function getBinaryPath() {
84
+ const platform = os.platform();
85
+ const arch = os.arch();
86
+ let binaryName = "dolph";
87
+ if (platform === "win32") {
88
+ binaryName = "dolph.exe";
89
+ }
90
+ // const binaryPath = path.join(__dirname, "..", "bin", binaryName);
91
+ const binaryPath = path.join(__dirname, "../", "bin", binaryName);
92
+ if (!require("fs").existsSync(binaryPath)) {
93
+ console.log(`${chalk_1.default.red("[ERROR]: ")} ${chalk_1.default.blue(`DolphJS CLI binary not found. Please run "npm install" again.`)}`);
94
+ process.exit(1);
95
+ }
96
+ return binaryPath;
97
+ }
98
+ const binary = getBinaryPath();
99
+ // Pass all arguments to the Rust binary
100
+ const args = process.argv.slice(2);
101
+ const child = (0, child_process_1.spawn)(binary, args, {
102
+ // This pipes input/output to the current terminal
103
+ stdio: "inherit",
104
+ });
105
+ child.on("error", (err) => {
106
+ console.log(`${chalk_1.default.red("[ERROR]: ")} ${chalk_1.default.blue(`Failed to start DolphJS CLI: ${err.message}`)}`);
107
+ process.exit(1);
108
+ });
109
+ child.on("close", (code) => {
110
+ if (code !== null) {
111
+ process.exit(code);
20
112
  }
21
- // console.log(chalk.bold(chalk.cyan(data)));
22
- InitDolphCli();
23
- packageDescription();
24
- configurePackage();
25
- packageGenerator();
26
- watcherConfig();
27
- program.command("*", { hidden: true }).action(() => {
28
- console.log(`${chalk.red("[DOLPH ERROR]: ")} ${chalk.redBright("unknown command. See list of available commands: ")}`);
29
- program.help();
30
- });
31
- program.parse(process.argv);
32
113
  });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const os = __importStar(require("os"));
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const https = __importStar(require("https"));
43
+ const http = __importStar(require("http"));
44
+ const child_process_1 = require("child_process");
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ async function downloadBinary() {
47
+ const platform = os.platform(); // 'darwin', 'linux', 'win32'
48
+ const arch = os.arch(); // 'x64', 'arm64'
49
+ let binaryName = "dolph";
50
+ let releaseAssetName = ""; // e.g., 'dolph-x86_64-apple-darwin.tar.gz' or 'dolph-x86_64-pc-windows-msvc.zip'
51
+ // Map Node.js platform/arch to the Rust target triples and asset names
52
+ if (platform === "darwin") {
53
+ if (arch === "arm64") {
54
+ releaseAssetName = "dolph-aarch64-apple-darwin";
55
+ }
56
+ else {
57
+ // x64
58
+ releaseAssetName = "dolph-x86_64-apple-darwin";
59
+ }
60
+ // macOS binaries are often just executable, not compressed, or .tar.gz
61
+ binaryName = "dolph"; // No .exe extension
62
+ }
63
+ else if (platform === "win32") {
64
+ releaseAssetName = "dolph-x86_64-pc-windows-msvc";
65
+ binaryName = "dolph.exe";
66
+ }
67
+ else if (platform === "linux") {
68
+ releaseAssetName = "dolph-x86_64-unknown-linux-gnu";
69
+ binaryName = "dolph";
70
+ }
71
+ else {
72
+ console.error(`Unsupported platform: ${platform}-${arch}`);
73
+ process.exit(1);
74
+ }
75
+ const version = require("../package.json").version; // Get version from package.json
76
+ let releaseUrl = `https://github.com/dolphjs/cli_v2/releases/download/v${version}/${releaseAssetName}.tar.gz`;
77
+ if (platform === "win32") {
78
+ releaseUrl = `https://github.com/dolphjs/cli_v2/releases/download/v${version}/${releaseAssetName}.zip`;
79
+ }
80
+ // Where to put the binary
81
+ const installDir = path.join(__dirname, "..", "bin");
82
+ if (!fs.existsSync(installDir)) {
83
+ fs.mkdirSync(installDir, { recursive: true });
84
+ }
85
+ const binaryPath = path.join(__dirname, "..", "bin", binaryName);
86
+ const archiveName = platform === "win32" ? "dolph.zip" : "dolph.tar.gz";
87
+ const archivePath = path.join(__dirname, "..", "bin", archiveName);
88
+ console.log(`${chalk_1.default.blue("[INFO]: ")} ${chalk_1.default.blue(`Downloading DolphJS CLI for ${platform}-${arch} from ${releaseUrl}...`)}`);
89
+ try {
90
+ await downloadWithRedirects(releaseUrl, archivePath);
91
+ console.log(`${chalk_1.default.blue("[INFO]: ")} Extracting archive...`);
92
+ if (platform === "win32") {
93
+ const extCmd = (0, child_process_1.spawnSync)("powershell", ["-command", `Expand-Archive -Path '${archivePath}' -DestinationPath '${installDir}' -Force`], { stdio: "inherit" });
94
+ if (extCmd.status !== 0)
95
+ throw new Error("Failed to extract zip archive");
96
+ }
97
+ else {
98
+ const extCmd = (0, child_process_1.spawnSync)("tar", ["-xzf", archivePath, "-C", installDir], { stdio: "inherit" });
99
+ if (extCmd.status !== 0)
100
+ throw new Error("Failed to extract tar archive");
101
+ }
102
+ fs.unlinkSync(archivePath);
103
+ fs.chmodSync(binaryPath, "755");
104
+ console.log(`${chalk_1.default.blue("[INFO]: ")} ${chalk_1.default.blue(`DolphJS CLI downloaded and installed successfully!`)}`);
105
+ }
106
+ catch (error) {
107
+ console.log(`${chalk_1.default.red("[ERROR]: ")} ${chalk_1.default.redBright(`Error downloading DolphJS CLI: ${error?.message || error}`)}`);
108
+ process.exit(1);
109
+ }
110
+ }
111
+ function downloadWithRedirects(url, filePath, maxRedirects = 5) {
112
+ return new Promise((resolve, reject) => {
113
+ if (maxRedirects < 0) {
114
+ return reject(new Error("Too many redirects"));
115
+ }
116
+ const parsedUrl = new URL(url);
117
+ const httpModule = parsedUrl.protocol === "https:" ? https : http;
118
+ const request = httpModule.get(url, (response) => {
119
+ // Handle redirects
120
+ if (response.statusCode >= 300 &&
121
+ response.statusCode < 400 &&
122
+ response.headers.location) {
123
+ const redirectUrl = response.headers.location.startsWith("http")
124
+ ? response.headers.location
125
+ : new URL(response.headers.location, url).href;
126
+ console.log(`Redirecting to: ${redirectUrl}`);
127
+ return downloadWithRedirects(redirectUrl, filePath, maxRedirects - 1)
128
+ .then(resolve)
129
+ .catch(reject);
130
+ }
131
+ // Handle error status codes
132
+ if (response.statusCode < 200 || response.statusCode >= 300) {
133
+ return reject(new Error(`Failed to download binary: HTTP status code ${response.statusCode}`));
134
+ }
135
+ // Create write stream and pipe response
136
+ const file = fs.createWriteStream(filePath);
137
+ response.pipe(file);
138
+ file.on("finish", () => {
139
+ file.close(() => resolve());
140
+ });
141
+ file.on("error", (err) => {
142
+ // Delete file on error
143
+ fs.unlink(filePath, () => reject(err));
144
+ });
145
+ });
146
+ request.on("error", (err) => reject(err));
147
+ });
148
+ }
149
+ downloadBinary();
@@ -0,0 +1 @@
1
+ export declare const addComponentToServerFile: (componentName: string) => Promise<void>;
@@ -1,49 +1,54 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
2
- import { dolphMsg } from "../helpers/messages.js";
3
- import path from "path";
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addComponentToServerFile = void 0;
7
+ const fs_1 = require("fs");
8
+ const messages_js_1 = require("../helpers/messages.js");
9
+ const path_1 = __importDefault(require("path"));
4
10
  const createComponentDirectory = () => {
5
- const projectRoot = path.join(process.cwd());
6
- const userComponentPath = path.join(projectRoot, `/src/components`);
7
- if (!existsSync(userComponentPath)) {
8
- mkdirSync(userComponentPath);
11
+ const projectRoot = path_1.default.join(process.cwd());
12
+ const userComponentPath = path_1.default.join(projectRoot, `/src/components`);
13
+ if (!(0, fs_1.existsSync)(userComponentPath)) {
14
+ (0, fs_1.mkdirSync)(userComponentPath);
9
15
  }
10
16
  };
11
17
  const findSrcDirectory = () => {
12
18
  const rootDir = process.cwd();
13
19
  const possibleDirs = [`src`];
14
- const srcDir = possibleDirs.find((dir) => existsSync(path.join(rootDir, dir)));
15
- return srcDir ? path.join(rootDir, srcDir) : null;
20
+ const srcDir = possibleDirs.find((dir) => (0, fs_1.existsSync)(path_1.default.join(rootDir, dir)));
21
+ return srcDir ? path_1.default.join(rootDir, srcDir) : null;
16
22
  };
17
- export const addComponentToServerFile = async (componentName) => {
23
+ const addComponentToServerFile = async (componentName) => {
18
24
  if (!componentName) {
19
- dolphMsg.errorRed("component extension or name is required! 🤨");
25
+ messages_js_1.dolphMsg.errorRed("component extension or name is required! 🤨");
20
26
  }
21
27
  const serverDir = findSrcDirectory();
22
28
  if (!serverDir) {
23
- dolphMsg.errorRed("something went wrong, please make sure to use the `new` command when creating a dolph project.");
29
+ messages_js_1.dolphMsg.errorRed("something went wrong, please make sure to use the `new` command when creating a dolph project.");
24
30
  return;
25
31
  }
26
- const serverPath = path.join(serverDir, "server.ts");
32
+ const serverPath = path_1.default.join(serverDir, "server.ts");
27
33
  const capitalizedString = componentName.charAt(0).toUpperCase() + componentName.slice(1);
28
34
  const importStatement = `import { ${capitalizedString}Component } from "./components/${componentName}/${componentName}.component";`;
29
35
  try {
30
- if (!existsSync(serverPath)) {
36
+ if (!(0, fs_1.existsSync)(serverPath)) {
31
37
  const fileContent = `import { DolphFactory } from "@dolphjs/dolph";
32
38
  ${importStatement}
33
39
  const dolph = new DolphFactory([${capitalizedString}Component]);
34
40
  dolph.start();
35
41
  `;
36
- writeFileSync(serverPath, fileContent);
42
+ (0, fs_1.writeFileSync)(serverPath, fileContent);
37
43
  }
38
44
  else {
39
- const fileContent = readFileSync(serverPath, "utf8");
45
+ const fileContent = (0, fs_1.readFileSync)(serverPath, "utf8");
40
46
  const newComponentInstance = `${capitalizedString}Component`;
41
47
  if (!fileContent.includes(importStatement)) {
42
48
  const updatedContent = `${importStatement}\n${fileContent}`;
43
- writeFileSync(serverPath, updatedContent);
49
+ (0, fs_1.writeFileSync)(serverPath, updatedContent);
44
50
  }
45
51
  if (fileContent.includes(`const dolph`)) {
46
- // add new controller class to the existing array
47
52
  const routesArrayMatch = fileContent.match(/const dolph = new DolphFactory\(([^)]+)\);/);
48
53
  if (routesArrayMatch) {
49
54
  const existingCode = routesArrayMatch[1].trim();
@@ -52,14 +57,15 @@ dolph.start();
52
57
  ? existingCode.slice(0, -1) + `, ${newComponentInstance}]`
53
58
  : newComponentInstance}`);
54
59
  const updatedContents = `${importStatement}\n${fileContents}`;
55
- writeFileSync(serverPath, updatedContents);
60
+ (0, fs_1.writeFileSync)(serverPath, updatedContents);
56
61
  }
57
62
  }
58
63
  }
59
- dolphMsg.info(`added ${capitalizedString}Component to components array in server.ts file.`);
64
+ messages_js_1.dolphMsg.info(`added ${capitalizedString}Component to components array in server.ts file.`);
60
65
  process.exit(0);
61
66
  }
62
67
  catch (e) {
63
- dolphMsg.errorRed(e.toString());
68
+ messages_js_1.dolphMsg.errorRed(e.toString());
64
69
  }
65
70
  };
71
+ exports.addComponentToServerFile = addComponentToServerFile;
@@ -0,0 +1 @@
1
+ export declare const addControllerInComponentFIle: (componentName: string) => Promise<void>;
@@ -1,44 +1,48 @@
1
- import { existsSync, readFileSync, writeFileSync } from "fs";
2
- import path from "path";
3
- import { dolphMsg } from "../helpers/messages.js";
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addControllerInComponentFIle = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const messages_js_1 = require("../helpers/messages.js");
4
10
  const findComponentsDirectory = (componentName) => {
5
11
  const rootDir = process.cwd();
6
12
  const possibleDirs = [`src/components/${componentName}`];
7
- const srcDir = possibleDirs.find((dir) => existsSync(path.join(rootDir, dir)));
8
- return srcDir ? path.join(rootDir, srcDir) : null;
13
+ const srcDir = possibleDirs.find((dir) => (0, fs_1.existsSync)(path_1.default.join(rootDir, dir)));
14
+ return srcDir ? path_1.default.join(rootDir, srcDir) : null;
9
15
  };
10
- export const addControllerInComponentFIle = async (componentName) => {
16
+ const addControllerInComponentFIle = async (componentName) => {
11
17
  if (!componentName) {
12
- dolphMsg.errorRed("component extension or name is required! 🤨");
18
+ messages_js_1.dolphMsg.errorRed("component extension or name is required! 🤨");
13
19
  }
14
20
  const componentDir = findComponentsDirectory(componentName);
15
21
  if (!componentDir) {
16
- dolphMsg.errorRed("something went wrong, please make sure to use the `new` command when creating a dolph project.");
22
+ messages_js_1.dolphMsg.errorRed("something went wrong, please make sure to use the `new` command when creating a dolph project.");
17
23
  return;
18
24
  }
19
- const componentPath = path.join(componentDir, `${componentName}.component.ts`);
25
+ const componentPath = path_1.default.join(componentDir, `${componentName}.component.ts`);
20
26
  const capitalizedString = componentName.charAt(0).toUpperCase() + componentName.slice(1);
21
27
  const importStatement = `import { ${capitalizedString}Controller } from "./${componentName}.controller";`;
22
28
  try {
23
- if (!existsSync(componentPath)) {
29
+ if (!(0, fs_1.existsSync)(componentPath)) {
24
30
  const fileContent = `import { Component } from "@dolphjs/dolph/decorators";
25
31
  import { ${capitalizedString}Controller } from "./${componentName}.controller";
26
32
 
27
33
  @Component({ controllers: [${capitalizedString}Controller], services: [] })
28
34
  export class ${capitalizedString}Component {}
29
35
  `;
30
- writeFileSync(componentPath, fileContent);
36
+ (0, fs_1.writeFileSync)(componentPath, fileContent);
31
37
  }
32
38
  else {
33
- const fileContent = readFileSync(componentPath, "utf8");
39
+ const fileContent = (0, fs_1.readFileSync)(componentPath, "utf8");
34
40
  const newComponentInstance = `${capitalizedString}Controller`;
35
41
  if (!fileContent.includes(importStatement)) {
36
- // If import statement is not present, add it along with the new controller
37
42
  const updatedContents = `${importStatement}\n${fileContent.replace(/@Component\(\s*{\s*controllers:\s*\[([^\]]*)\]\s*}\s*\)/, `@Component({ controllers: [${newComponentInstance}] })`)}`;
38
- writeFileSync(componentPath, updatedContents);
43
+ (0, fs_1.writeFileSync)(componentPath, updatedContents);
39
44
  }
40
45
  else if (fileContent.includes(`const dolph`)) {
41
- // If import statement is present and contains `const dolph`
42
46
  const controllersArrayMatch = fileContent.match(/@Component\(\s*{\s*controllers:\s*\[([^\]]*)\]\s*}\s*\)/);
43
47
  if (controllersArrayMatch) {
44
48
  const existingCode = controllersArrayMatch[1].trim();
@@ -47,11 +51,11 @@ export class ${capitalizedString}Component {}
47
51
  ? existingCode.slice(0, -1) + `, ${newComponentInstance}`
48
52
  : newComponentInstance}`);
49
53
  const updatedContents = `${importStatement}\n${fileContents}`;
50
- writeFileSync(componentPath, updatedContents);
54
+ (0, fs_1.writeFileSync)(componentPath, updatedContents);
51
55
  }
52
56
  }
53
57
  }
54
- dolphMsg.info(`registered ${capitalizedString}Controller in ${capitalizedString}Component`);
58
+ messages_js_1.dolphMsg.info(`registered ${capitalizedString}Controller in ${capitalizedString}Component`);
55
59
  process.exit(0);
56
60
  }
57
61
  catch (error) {
@@ -59,3 +63,4 @@ export class ${capitalizedString}Component {}
59
63
  process.exit(1);
60
64
  }
61
65
  };
66
+ exports.addControllerInComponentFIle = addControllerInComponentFIle;
@@ -0,0 +1 @@
1
+ export declare const addRoutesIndexFile: (routesName: string, readConfig: any) => void;
@@ -1,22 +1,21 @@
1
- import chalk from "chalk";
2
- import { existsSync, readFileSync, writeFileSync } from "fs";
3
- import path from "path";
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.addRoutesIndexFile = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const fs_1 = require("fs");
9
+ const path_1 = __importDefault(require("path"));
4
10
  const findRoutesDirectory = () => {
5
11
  const rootDir = process.cwd();
6
12
  const possibleDirs = [
7
13
  "/src/routes",
8
- // "/src/Routes",
9
- // "/src/route",
10
- // "/src/Route",
11
- // "/Routes",
12
- // "/Route",
13
- // "/routes",
14
- // "/route",
15
14
  ];
16
- const routesDir = possibleDirs.find((dir) => existsSync(path.join(rootDir, dir)));
17
- return routesDir ? path.join(rootDir, routesDir) : null;
15
+ const routesDir = possibleDirs.find((dir) => (0, fs_1.existsSync)(path_1.default.join(rootDir, dir)));
16
+ return routesDir ? path_1.default.join(rootDir, routesDir) : null;
18
17
  };
19
- export const addRoutesIndexFile = (routesName, readConfig) => {
18
+ const addRoutesIndexFile = (routesName, readConfig) => {
20
19
  let extension;
21
20
  let paradigm;
22
21
  paradigm = readConfig().paradigm;
@@ -32,14 +31,13 @@ export const addRoutesIndexFile = (routesName, readConfig) => {
32
31
  break;
33
32
  }
34
33
  if (!routesName)
35
- chalk.bold(chalk.red("Routes extension or name is required! 🤨"));
34
+ chalk_1.default.bold(chalk_1.default.red("Routes extension or name is required! 🤨"));
36
35
  const routesDir = findRoutesDirectory();
37
36
  if (!routesDir) {
38
- //TODO: create one if it doesn't exist
39
- console.log(chalk.bold(chalk.red("Routes directory doesn't exist 🤨")));
37
+ console.log(chalk_1.default.bold(chalk_1.default.red("Routes directory doesn't exist 🤨")));
40
38
  return;
41
39
  }
42
- const indexPath = path.join(routesDir, `index.${extension}`);
40
+ const indexPath = path_1.default.join(routesDir, `index.${extension}`);
43
41
  let importStatement = ``;
44
42
  const capitalizedString = routesName.charAt(0).toUpperCase() + routesName.slice(1);
45
43
  if (extension === "ts") {
@@ -55,7 +53,7 @@ export const addRoutesIndexFile = (routesName, readConfig) => {
55
53
  }
56
54
  }
57
55
  else {
58
- console.log(chalk.bold(chalk.red("dolphjs only supports '.js' & '.ts' file extensions")));
56
+ console.log(chalk_1.default.bold(chalk_1.default.red("dolphjs only supports '.js' & '.ts' file extensions")));
59
57
  }
60
58
  let routesArray = "";
61
59
  if (extension === "ts") {
@@ -75,22 +73,19 @@ module.exports = { routes };
75
73
  }
76
74
  }
77
75
  try {
78
- // check if file exists
79
- if (!existsSync(indexPath)) {
80
- // if it doesn't exist, create file and add import statement
76
+ if (!(0, fs_1.existsSync)(indexPath)) {
81
77
  const fileContent = `${importStatement}\n\n${routesArray}\n`;
82
- writeFileSync(indexPath, fileContent);
78
+ (0, fs_1.writeFileSync)(indexPath, fileContent);
83
79
  }
84
80
  else {
85
- const fileContent = readFileSync(indexPath, "utf8");
81
+ const fileContent = (0, fs_1.readFileSync)(indexPath, "utf8");
86
82
  const newRouterInstance = `new ${capitalizedString}Router()`;
87
83
  const newRoutesInstance = `${routesName}Routes`;
88
84
  if (!fileContent.includes(importStatement)) {
89
85
  const updatedContent = `${importStatement}\n${fileContent}`;
90
- writeFileSync(indexPath, updatedContent);
86
+ (0, fs_1.writeFileSync)(indexPath, updatedContent);
91
87
  }
92
88
  if (fileContent.includes(`${extension === "ts" ? "export const routes" : "const routes"}`)) {
93
- // add new routes instance to the exisiting routes array
94
89
  if (extension === "ts") {
95
90
  const routesArrayMatch = fileContent.match(/export const routes = \[([\s\S]+?)\];/);
96
91
  if (routesArrayMatch) {
@@ -103,7 +98,7 @@ module.exports = { routes };
103
98
  fileContents = fileContent.replace(`[${existingRoutes}]`, `[${existingRoutes.length > 0 ? existingRoutes + ", " : ""}${newRoutesInstance}]`);
104
99
  }
105
100
  const updatedContents = `${importStatement}\n${fileContents}`;
106
- writeFileSync(indexPath, updatedContents);
101
+ (0, fs_1.writeFileSync)(indexPath, updatedContents);
107
102
  }
108
103
  }
109
104
  else {
@@ -118,27 +113,27 @@ module.exports = { routes };
118
113
  fileContents = fileContent.replace(`[${existingRoutes}]`, `[${existingRoutes.length > 0 ? existingRoutes + ", " : ""}${newRoutesInstance}]`);
119
114
  }
120
115
  const updatedContents = `${importStatement}\n${fileContents}`;
121
- writeFileSync(indexPath, updatedContents);
116
+ (0, fs_1.writeFileSync)(indexPath, updatedContents);
122
117
  }
123
118
  }
124
119
  }
125
120
  else {
126
- // if there is no routes array, add new one
127
121
  if (extension === "ts") {
128
122
  const updatedContents = `${fileContent.trim()}\n\nexport const routes = [${paradigm !== "oop" ? newRouterInstance : newRoutesInstance}];\n`;
129
- writeFileSync(indexPath, updatedContents);
123
+ (0, fs_1.writeFileSync)(indexPath, updatedContents);
130
124
  }
131
125
  else {
132
126
  const updatedContents = `${fileContent.trim()}\n\nconst routes = [${paradigm !== "oop" ? newRouterInstance : newRoutesInstance}];\n\n module.exports = { routes } \n`;
133
- writeFileSync(indexPath, updatedContents);
127
+ (0, fs_1.writeFileSync)(indexPath, updatedContents);
134
128
  }
135
129
  }
136
130
  }
137
- console.log(chalk.bold(chalk.green(`added ${paradigm === "oop"
131
+ console.log(chalk_1.default.bold(chalk_1.default.green(`added ${paradigm === "oop"
138
132
  ? `${capitalizedString}Router`
139
133
  : `${routesName}Routes`} to routes array in index.${extension} file`)));
140
134
  }
141
135
  catch (e) {
142
- console.log(chalk.bold(chalk.red(e)));
136
+ console.log(chalk_1.default.bold(chalk_1.default.red(e)));
143
137
  }
144
138
  };
139
+ exports.addRoutesIndexFile = addRoutesIndexFile;
@@ -0,0 +1 @@
1
+ export declare const addServerFile: (readConfig: any) => void;