flash-builder 1.0.7 → 1.0.9

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 (3) hide show
  1. package/dist/index.cjs +114 -81
  2. package/dist/index.js +115 -82
  3. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -91,7 +91,7 @@ var require_main = __commonJS((exports2, module2) => {
91
91
  var os = require("os");
92
92
  var crypto = require("crypto");
93
93
  var packageJson = require_package();
94
- var version = packageJson.version;
94
+ var version2 = packageJson.version;
95
95
  var TIPS = [
96
96
  "\uD83D\uDD10 encrypt with Dotenvx: https://dotenvx.com",
97
97
  "\uD83D\uDD10 prevent committing .env to code: https://dotenvx.com/precommit",
@@ -175,13 +175,13 @@ var require_main = __commonJS((exports2, module2) => {
175
175
  return DotenvModule.parse(decrypted);
176
176
  }
177
177
  function _warn(message) {
178
- console.error(`[dotenv@${version}][WARN] ${message}`);
178
+ console.error(`[dotenv@${version2}][WARN] ${message}`);
179
179
  }
180
180
  function _debug(message) {
181
- console.log(`[dotenv@${version}][DEBUG] ${message}`);
181
+ console.log(`[dotenv@${version2}][DEBUG] ${message}`);
182
182
  }
183
183
  function _log(message) {
184
- console.log(`[dotenv@${version}] ${message}`);
184
+ console.log(`[dotenv@${version2}] ${message}`);
185
185
  }
186
186
  function _dotenvKey(options) {
187
187
  if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {
@@ -9818,42 +9818,38 @@ var meow = (helpText, options = {}) => {
9818
9818
  return result;
9819
9819
  };
9820
9820
 
9821
+ // version.ts
9822
+ var version = "1.0.9";
9823
+ var version_default = version;
9824
+
9821
9825
  // src/banner.ts
9822
- var import_fs2 = __toESM(require("fs"));
9823
- var import_path2 = __toESM(require("path"));
9826
+ var banner = `
9827
+ ________ __ ____ _ __ __
9828
+ / ____/ /___ ______/ /_ / __ )__ __(_) /___/ /__ _____
9829
+ / /_ / / __ \`/ ___/ __ \\ / __ / / / / / / __ / _ \\/ ___/
9830
+ / __/ / / /_/ (__ ) / / / / /_/ / /_/ / / / /_/ / __/ /
9831
+ /_/ /_/\\__,_/____/_/ /_/ /_____/\\__,_/_/_/\\__,_/\\___/_/ ${version_default}
9832
+ ---------------------------------------------------------------------
9833
+ `;
9834
+ var banner_default = banner;
9824
9835
 
9825
9836
  // src/environment.ts
9837
+ var import_fs2 = __toESM(require("fs"));
9838
+ var import_path2 = __toESM(require("path"));
9826
9839
  var import_dotenv = __toESM(require_main(), 1);
9827
9840
  import_dotenv.default.config({ path: ".env", quiet: true });
9828
- var PWD = process.cwd();
9829
9841
  var ENV = process.env;
9830
- var FROM_NODE_MODULE = ENV["_"]?.includes(".bin/fbi");
9831
- console.log({ ENV, PWD, FROM_NODE_MODULE });
9842
+ var IS_NPMJS = ENV["_"]?.includes(".bin/fbi");
9843
+ var PWD = IS_NPMJS ? process.cwd() : import_path2.default.join(process.cwd(), "isolate");
9844
+ if (!IS_NPMJS && !import_fs2.default.existsSync(PWD)) {
9845
+ import_fs2.default.mkdirSync(PWD, { recursive: true });
9846
+ }
9832
9847
  var PROJECT_TARGET_URL = ENV.PROJECT_TARGET_URL;
9833
9848
  var LLM_PROVIDER = ENV.LLM_PROVIDER;
9834
9849
  var LLM_MODEL = ENV.LLM_MODEL;
9835
9850
  var LLM_BASE_URL = ENV.LLM_BASE_URL;
9836
9851
  var LLM_API_KEY = ENV.LLM_API_KEY || "";
9837
9852
 
9838
- // src/banner.ts
9839
- var packageJsonPath = FROM_NODE_MODULE ? import_path2.default.join(PWD, "node_modules", "flash-builder", "package.json") : import_path2.default.join(PWD, "package.json");
9840
- var packageJson = JSON.parse(import_fs2.default.readFileSync(packageJsonPath, "utf-8"));
9841
- var packageVersion = packageJson.version;
9842
- console.log({
9843
- packageJsonPath,
9844
- packageJson,
9845
- packageVersion
9846
- });
9847
- var banner = `
9848
- ________ __ ____ _ __ __
9849
- / ____/ /___ ______/ /_ / __ )__ __(_) /___/ /__ _____
9850
- / /_ / / __ \`/ ___/ __ \\ / __ / / / / / / __ / _ \\/ ___/
9851
- / __/ / / /_/ (__ ) / / / / /_/ / /_/ / / / /_/ / __/ /
9852
- /_/ /_/\\__,_/____/_/ /_/ /_____/\\__,_/_/_/\\__,_/\\___/_/ ${packageVersion}
9853
- ---------------------------------------------------------------------
9854
- `;
9855
- var banner_default = banner;
9856
-
9857
9853
  // src/commands/be/index.ts
9858
9854
  var import_node_fs2 = require("fs");
9859
9855
  var import_node_path3 = require("path");
@@ -9865,45 +9861,26 @@ function log(message, isVerbose = false, verbose = false) {
9865
9861
  }
9866
9862
  }
9867
9863
 
9868
- // src/commands/be/index.ts
9869
- function beCommand(projectName, verbose) {
9870
- if (!projectName) {
9871
- console.error("\u274C Error: Project name is required");
9872
- console.log("Usage: fbi be <project-name>");
9873
- process.exit(1);
9874
- }
9875
- const projectPath = import_node_path3.join(process.cwd(), projectName);
9876
- if (import_node_fs2.existsSync(projectPath)) {
9877
- console.error(`\u274C Error: Directory '${projectName}' already exists`);
9878
- process.exit(1);
9864
+ // src/commands/be/files.ts
9865
+ var packageJson = (projectName) => ({
9866
+ name: projectName,
9867
+ version: "1.0.0",
9868
+ type: "module",
9869
+ scripts: {
9870
+ dev: "bun run --watch src/index.ts",
9871
+ start: "bun run src/index.ts",
9872
+ build: "bun build src/index.ts --outdir ./dist"
9873
+ },
9874
+ dependencies: {
9875
+ express: "^4.18.2",
9876
+ dotenv: "^16.3.1"
9877
+ },
9878
+ devDependencies: {
9879
+ "@types/express": "^4.17.21",
9880
+ "@types/bun": "latest"
9879
9881
  }
9880
- log(`\uD83D\uDE80 Creating new backend project: ${projectName}`, false, verbose);
9881
- import_node_fs2.mkdirSync(projectPath, { recursive: true });
9882
- import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src"), { recursive: true });
9883
- import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "routes"), { recursive: true });
9884
- import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "controllers"), { recursive: true });
9885
- import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "models"), { recursive: true });
9886
- import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "middlewares"), { recursive: true });
9887
- const packageJson2 = {
9888
- name: projectName,
9889
- version: "1.0.0",
9890
- type: "module",
9891
- scripts: {
9892
- dev: "bun run --watch src/index.ts",
9893
- start: "bun run src/index.ts",
9894
- build: "bun build src/index.ts --outdir ./dist"
9895
- },
9896
- dependencies: {
9897
- express: "^4.18.2",
9898
- dotenv: "^16.3.1"
9899
- },
9900
- devDependencies: {
9901
- "@types/express": "^4.17.21",
9902
- "@types/bun": "latest"
9903
- }
9904
- };
9905
- import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "package.json"), JSON.stringify(packageJson2, null, 2));
9906
- import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "src", "index.ts"), `import express from "express";
9882
+ });
9883
+ var indexTs = (projectName) => `import express from "express";
9907
9884
  import dotenv from "dotenv";
9908
9885
 
9909
9886
  dotenv.config();
@@ -9920,15 +9897,15 @@ app.get("/", (req, res) => {
9920
9897
  app.listen(PORT, () => {
9921
9898
  console.log(\`\uD83D\uDE80 Server running on http://localhost:\${PORT}\`);
9922
9899
  });
9923
- `);
9924
- import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".env"), `PORT=3000
9925
- `);
9926
- import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".gitignore"), `node_modules/
9900
+ `;
9901
+ var gitignore = `node_modules/
9927
9902
  dist/
9928
9903
  .env
9929
9904
  *.log
9930
- `);
9931
- import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "README.md"), `# ${projectName}
9905
+ bun.lock
9906
+ bun.lockb
9907
+ `;
9908
+ var readme = (projectName) => `# ${projectName}
9932
9909
 
9933
9910
  Backend project created with fbi
9934
9911
 
@@ -9939,12 +9916,67 @@ cd ${projectName}
9939
9916
  bun install
9940
9917
  bun run dev
9941
9918
  \`\`\`
9942
- `);
9943
- log(`\u2705 Backend project '${projectName}' created successfully!`, false, verbose);
9919
+ `;
9920
+ var envFile = `PORT=3000
9921
+ `;
9922
+
9923
+ // src/commands/be/index.ts
9924
+ function beCommand(projectName, verbose, targetPath) {
9925
+ if (!projectName) {
9926
+ console.error("\u274C Error: Project name is required");
9927
+ console.log("Usage: fbi be <project-name>");
9928
+ process.exit(1);
9929
+ }
9930
+ const isCurrentDir = targetPath === "." || targetPath?.startsWith("./");
9931
+ let projectPath;
9932
+ let actualProjectName;
9933
+ if (isCurrentDir && targetPath) {
9934
+ projectPath = targetPath === "." ? PWD : import_node_path3.join(PWD, targetPath.replace("./", ""));
9935
+ actualProjectName = projectName;
9936
+ } else {
9937
+ projectPath = import_node_path3.join(PWD, projectName);
9938
+ actualProjectName = projectName;
9939
+ }
9940
+ if (import_node_fs2.existsSync(projectPath)) {
9941
+ if (IS_NPMJS) {
9942
+ console.error(`\u274C Error: Directory '${projectName}' already exists`);
9943
+ process.exit(1);
9944
+ }
9945
+ }
9946
+ if (!IS_NPMJS) {
9947
+ import_node_fs2.rmSync(PWD, { recursive: true, force: true });
9948
+ }
9949
+ log(`\uD83D\uDE80 Creating new backend project: ${actualProjectName}`, false, verbose);
9950
+ import_node_fs2.mkdirSync(projectPath, { recursive: true });
9951
+ import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src"), { recursive: true });
9952
+ import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "routes"), { recursive: true });
9953
+ import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "controllers"), { recursive: true });
9954
+ import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "models"), { recursive: true });
9955
+ import_node_fs2.mkdirSync(import_node_path3.join(projectPath, "src", "middlewares"), { recursive: true });
9956
+ const packageJsonString = JSON.stringify(packageJson(actualProjectName), null, 2);
9957
+ import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "package.json"), packageJsonString);
9958
+ import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "src", "index.ts"), indexTs(actualProjectName));
9959
+ import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".env"), envFile);
9960
+ import_node_fs2.writeFileSync(import_node_path3.join(projectPath, ".gitignore"), gitignore);
9961
+ import_node_fs2.writeFileSync(import_node_path3.join(projectPath, "README.md"), readme(actualProjectName));
9962
+ log(`\u2705 Backend project '${actualProjectName}' created successfully!`, false, verbose);
9963
+ log(`
9964
+ \uD83D\uDCE6 Installing dependencies...`, false, verbose);
9965
+ const installProcess = Bun.spawnSync(["bun", "install"], {
9966
+ cwd: projectPath,
9967
+ stdout: "inherit",
9968
+ stderr: "inherit"
9969
+ });
9970
+ if (installProcess.exitCode === 0) {
9971
+ log(`\u2705 Dependencies installed successfully!`, false, verbose);
9972
+ } else {
9973
+ log(`\u274C Failed to install dependencies`, false, verbose);
9974
+ }
9944
9975
  log(`
9945
9976
  Next steps:`, true, verbose);
9946
- log(` cd ${projectName}`, true, verbose);
9947
- log(` bun install`, true, verbose);
9977
+ if (!isCurrentDir) {
9978
+ log(` cd ${actualProjectName}`, true, verbose);
9979
+ }
9948
9980
  log(` bun run dev`, true, verbose);
9949
9981
  }
9950
9982
 
@@ -9957,7 +9989,7 @@ function mcpCommand(projectName, verbose) {
9957
9989
  console.log("Usage: fbi mcp <project-name>");
9958
9990
  process.exit(1);
9959
9991
  }
9960
- const projectPath = import_node_path4.join(process.cwd(), projectName);
9992
+ const projectPath = import_node_path4.join(PWD, projectName);
9961
9993
  if (import_node_fs3.existsSync(projectPath)) {
9962
9994
  console.error(`\u274C Error: Directory '${projectName}' already exists`);
9963
9995
  process.exit(1);
@@ -10042,14 +10074,14 @@ var import_node_fs4 = require("fs");
10042
10074
  var import_node_path5 = require("path");
10043
10075
  function syncCommand(verbose) {
10044
10076
  log(`\uD83D\uDD04 Syncing backend interface with application target...`, false, verbose);
10045
- const packageJsonPath2 = import_node_path5.join(process.cwd(), "package.json");
10046
- if (!import_node_fs4.existsSync(packageJsonPath2)) {
10077
+ const packageJsonPath = import_node_path5.join(PWD, "package.json");
10078
+ if (!import_node_fs4.existsSync(packageJsonPath)) {
10047
10079
  console.error("\u274C Error: package.json not found in current directory");
10048
10080
  console.log("Make sure you're in a project directory");
10049
10081
  process.exit(1);
10050
10082
  }
10051
10083
  try {
10052
- const packageJson2 = JSON.parse(import_node_fs4.readFileSync(packageJsonPath2, "utf-8"));
10084
+ const packageJson2 = JSON.parse(import_node_fs4.readFileSync(packageJsonPath, "utf-8"));
10053
10085
  log(`Project: ${packageJson2.name}`, true, verbose);
10054
10086
  log(`Version: ${packageJson2.version}`, true, verbose);
10055
10087
  log(`\u2705 Sync completed successfully!`, false, verbose);
@@ -10090,9 +10122,10 @@ ${banner_default}
10090
10122
  }
10091
10123
  });
10092
10124
  var [command, ...args] = cli.input;
10125
+ console.log({ args });
10093
10126
  switch (command) {
10094
10127
  case "be":
10095
- beCommand(args[0] || "", cli.flags.verbose);
10128
+ beCommand(args[0] || "", cli.flags.verbose, args[1]);
10096
10129
  break;
10097
10130
  case "mcp":
10098
10131
  mcpCommand(args[0] || "", cli.flags.verbose);
package/dist/index.js CHANGED
@@ -92,7 +92,7 @@ var require_main = __commonJS((exports, module) => {
92
92
  var os = __require("os");
93
93
  var crypto = __require("crypto");
94
94
  var packageJson = require_package();
95
- var version = packageJson.version;
95
+ var version2 = packageJson.version;
96
96
  var TIPS = [
97
97
  "\uD83D\uDD10 encrypt with Dotenvx: https://dotenvx.com",
98
98
  "\uD83D\uDD10 prevent committing .env to code: https://dotenvx.com/precommit",
@@ -176,13 +176,13 @@ var require_main = __commonJS((exports, module) => {
176
176
  return DotenvModule.parse(decrypted);
177
177
  }
178
178
  function _warn(message) {
179
- console.error(`[dotenv@${version}][WARN] ${message}`);
179
+ console.error(`[dotenv@${version2}][WARN] ${message}`);
180
180
  }
181
181
  function _debug(message) {
182
- console.log(`[dotenv@${version}][DEBUG] ${message}`);
182
+ console.log(`[dotenv@${version2}][DEBUG] ${message}`);
183
183
  }
184
184
  function _log(message) {
185
- console.log(`[dotenv@${version}] ${message}`);
185
+ console.log(`[dotenv@${version2}] ${message}`);
186
186
  }
187
187
  function _dotenvKey(options) {
188
188
  if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {
@@ -9819,44 +9819,40 @@ var meow = (helpText, options = {}) => {
9819
9819
  return result;
9820
9820
  };
9821
9821
 
9822
+ // version.ts
9823
+ var version = "1.0.9";
9824
+ var version_default = version;
9825
+
9822
9826
  // src/banner.ts
9823
- import fs2 from "fs";
9824
- import path3 from "path";
9827
+ var banner = `
9828
+ ________ __ ____ _ __ __
9829
+ / ____/ /___ ______/ /_ / __ )__ __(_) /___/ /__ _____
9830
+ / /_ / / __ \`/ ___/ __ \\ / __ / / / / / / __ / _ \\/ ___/
9831
+ / __/ / / /_/ (__ ) / / / / /_/ / /_/ / / / /_/ / __/ /
9832
+ /_/ /_/\\__,_/____/_/ /_/ /_____/\\__,_/_/_/\\__,_/\\___/_/ ${version_default}
9833
+ ---------------------------------------------------------------------
9834
+ `;
9835
+ var banner_default = banner;
9825
9836
 
9826
9837
  // src/environment.ts
9827
9838
  var import_dotenv = __toESM(require_main(), 1);
9839
+ import fs2 from "fs";
9840
+ import path3 from "path";
9828
9841
  import_dotenv.default.config({ path: ".env", quiet: true });
9829
- var PWD = process.cwd();
9830
9842
  var ENV = process.env;
9831
- var FROM_NODE_MODULE = ENV["_"]?.includes(".bin/fbi");
9832
- console.log({ ENV, PWD, FROM_NODE_MODULE });
9843
+ var IS_NPMJS = ENV["_"]?.includes(".bin/fbi");
9844
+ var PWD = IS_NPMJS ? process.cwd() : path3.join(process.cwd(), "isolate");
9845
+ if (!IS_NPMJS && !fs2.existsSync(PWD)) {
9846
+ fs2.mkdirSync(PWD, { recursive: true });
9847
+ }
9833
9848
  var PROJECT_TARGET_URL = ENV.PROJECT_TARGET_URL;
9834
9849
  var LLM_PROVIDER = ENV.LLM_PROVIDER;
9835
9850
  var LLM_MODEL = ENV.LLM_MODEL;
9836
9851
  var LLM_BASE_URL = ENV.LLM_BASE_URL;
9837
9852
  var LLM_API_KEY = ENV.LLM_API_KEY || "";
9838
9853
 
9839
- // src/banner.ts
9840
- var packageJsonPath = FROM_NODE_MODULE ? path3.join(PWD, "node_modules", "flash-builder", "package.json") : path3.join(PWD, "package.json");
9841
- var packageJson = JSON.parse(fs2.readFileSync(packageJsonPath, "utf-8"));
9842
- var packageVersion = packageJson.version;
9843
- console.log({
9844
- packageJsonPath,
9845
- packageJson,
9846
- packageVersion
9847
- });
9848
- var banner = `
9849
- ________ __ ____ _ __ __
9850
- / ____/ /___ ______/ /_ / __ )__ __(_) /___/ /__ _____
9851
- / /_ / / __ \`/ ___/ __ \\ / __ / / / / / / __ / _ \\/ ___/
9852
- / __/ / / /_/ (__ ) / / / / /_/ / /_/ / / / /_/ / __/ /
9853
- /_/ /_/\\__,_/____/_/ /_/ /_____/\\__,_/_/_/\\__,_/\\___/_/ ${packageVersion}
9854
- ---------------------------------------------------------------------
9855
- `;
9856
- var banner_default = banner;
9857
-
9858
9854
  // src/commands/be/index.ts
9859
- import { existsSync, mkdirSync, writeFileSync } from "fs";
9855
+ import { existsSync, mkdirSync, writeFileSync, rmSync } from "fs";
9860
9856
  import { join } from "path";
9861
9857
 
9862
9858
  // src/utils/logger.ts
@@ -9866,45 +9862,26 @@ function log(message, isVerbose = false, verbose = false) {
9866
9862
  }
9867
9863
  }
9868
9864
 
9869
- // src/commands/be/index.ts
9870
- function beCommand(projectName, verbose) {
9871
- if (!projectName) {
9872
- console.error("\u274C Error: Project name is required");
9873
- console.log("Usage: fbi be <project-name>");
9874
- process.exit(1);
9875
- }
9876
- const projectPath = join(process.cwd(), projectName);
9877
- if (existsSync(projectPath)) {
9878
- console.error(`\u274C Error: Directory '${projectName}' already exists`);
9879
- process.exit(1);
9865
+ // src/commands/be/files.ts
9866
+ var packageJson = (projectName) => ({
9867
+ name: projectName,
9868
+ version: "1.0.0",
9869
+ type: "module",
9870
+ scripts: {
9871
+ dev: "bun run --watch src/index.ts",
9872
+ start: "bun run src/index.ts",
9873
+ build: "bun build src/index.ts --outdir ./dist"
9874
+ },
9875
+ dependencies: {
9876
+ express: "^4.18.2",
9877
+ dotenv: "^16.3.1"
9878
+ },
9879
+ devDependencies: {
9880
+ "@types/express": "^4.17.21",
9881
+ "@types/bun": "latest"
9880
9882
  }
9881
- log(`\uD83D\uDE80 Creating new backend project: ${projectName}`, false, verbose);
9882
- mkdirSync(projectPath, { recursive: true });
9883
- mkdirSync(join(projectPath, "src"), { recursive: true });
9884
- mkdirSync(join(projectPath, "src", "routes"), { recursive: true });
9885
- mkdirSync(join(projectPath, "src", "controllers"), { recursive: true });
9886
- mkdirSync(join(projectPath, "src", "models"), { recursive: true });
9887
- mkdirSync(join(projectPath, "src", "middlewares"), { recursive: true });
9888
- const packageJson2 = {
9889
- name: projectName,
9890
- version: "1.0.0",
9891
- type: "module",
9892
- scripts: {
9893
- dev: "bun run --watch src/index.ts",
9894
- start: "bun run src/index.ts",
9895
- build: "bun build src/index.ts --outdir ./dist"
9896
- },
9897
- dependencies: {
9898
- express: "^4.18.2",
9899
- dotenv: "^16.3.1"
9900
- },
9901
- devDependencies: {
9902
- "@types/express": "^4.17.21",
9903
- "@types/bun": "latest"
9904
- }
9905
- };
9906
- writeFileSync(join(projectPath, "package.json"), JSON.stringify(packageJson2, null, 2));
9907
- writeFileSync(join(projectPath, "src", "index.ts"), `import express from "express";
9883
+ });
9884
+ var indexTs = (projectName) => `import express from "express";
9908
9885
  import dotenv from "dotenv";
9909
9886
 
9910
9887
  dotenv.config();
@@ -9921,15 +9898,15 @@ app.get("/", (req, res) => {
9921
9898
  app.listen(PORT, () => {
9922
9899
  console.log(\`\uD83D\uDE80 Server running on http://localhost:\${PORT}\`);
9923
9900
  });
9924
- `);
9925
- writeFileSync(join(projectPath, ".env"), `PORT=3000
9926
- `);
9927
- writeFileSync(join(projectPath, ".gitignore"), `node_modules/
9901
+ `;
9902
+ var gitignore = `node_modules/
9928
9903
  dist/
9929
9904
  .env
9930
9905
  *.log
9931
- `);
9932
- writeFileSync(join(projectPath, "README.md"), `# ${projectName}
9906
+ bun.lock
9907
+ bun.lockb
9908
+ `;
9909
+ var readme = (projectName) => `# ${projectName}
9933
9910
 
9934
9911
  Backend project created with fbi
9935
9912
 
@@ -9940,12 +9917,67 @@ cd ${projectName}
9940
9917
  bun install
9941
9918
  bun run dev
9942
9919
  \`\`\`
9943
- `);
9944
- log(`\u2705 Backend project '${projectName}' created successfully!`, false, verbose);
9920
+ `;
9921
+ var envFile = `PORT=3000
9922
+ `;
9923
+
9924
+ // src/commands/be/index.ts
9925
+ function beCommand(projectName, verbose, targetPath) {
9926
+ if (!projectName) {
9927
+ console.error("\u274C Error: Project name is required");
9928
+ console.log("Usage: fbi be <project-name>");
9929
+ process.exit(1);
9930
+ }
9931
+ const isCurrentDir = targetPath === "." || targetPath?.startsWith("./");
9932
+ let projectPath;
9933
+ let actualProjectName;
9934
+ if (isCurrentDir && targetPath) {
9935
+ projectPath = targetPath === "." ? PWD : join(PWD, targetPath.replace("./", ""));
9936
+ actualProjectName = projectName;
9937
+ } else {
9938
+ projectPath = join(PWD, projectName);
9939
+ actualProjectName = projectName;
9940
+ }
9941
+ if (existsSync(projectPath)) {
9942
+ if (IS_NPMJS) {
9943
+ console.error(`\u274C Error: Directory '${projectName}' already exists`);
9944
+ process.exit(1);
9945
+ }
9946
+ }
9947
+ if (!IS_NPMJS) {
9948
+ rmSync(PWD, { recursive: true, force: true });
9949
+ }
9950
+ log(`\uD83D\uDE80 Creating new backend project: ${actualProjectName}`, false, verbose);
9951
+ mkdirSync(projectPath, { recursive: true });
9952
+ mkdirSync(join(projectPath, "src"), { recursive: true });
9953
+ mkdirSync(join(projectPath, "src", "routes"), { recursive: true });
9954
+ mkdirSync(join(projectPath, "src", "controllers"), { recursive: true });
9955
+ mkdirSync(join(projectPath, "src", "models"), { recursive: true });
9956
+ mkdirSync(join(projectPath, "src", "middlewares"), { recursive: true });
9957
+ const packageJsonString = JSON.stringify(packageJson(actualProjectName), null, 2);
9958
+ writeFileSync(join(projectPath, "package.json"), packageJsonString);
9959
+ writeFileSync(join(projectPath, "src", "index.ts"), indexTs(actualProjectName));
9960
+ writeFileSync(join(projectPath, ".env"), envFile);
9961
+ writeFileSync(join(projectPath, ".gitignore"), gitignore);
9962
+ writeFileSync(join(projectPath, "README.md"), readme(actualProjectName));
9963
+ log(`\u2705 Backend project '${actualProjectName}' created successfully!`, false, verbose);
9964
+ log(`
9965
+ \uD83D\uDCE6 Installing dependencies...`, false, verbose);
9966
+ const installProcess = Bun.spawnSync(["bun", "install"], {
9967
+ cwd: projectPath,
9968
+ stdout: "inherit",
9969
+ stderr: "inherit"
9970
+ });
9971
+ if (installProcess.exitCode === 0) {
9972
+ log(`\u2705 Dependencies installed successfully!`, false, verbose);
9973
+ } else {
9974
+ log(`\u274C Failed to install dependencies`, false, verbose);
9975
+ }
9945
9976
  log(`
9946
9977
  Next steps:`, true, verbose);
9947
- log(` cd ${projectName}`, true, verbose);
9948
- log(` bun install`, true, verbose);
9978
+ if (!isCurrentDir) {
9979
+ log(` cd ${actualProjectName}`, true, verbose);
9980
+ }
9949
9981
  log(` bun run dev`, true, verbose);
9950
9982
  }
9951
9983
 
@@ -9958,7 +9990,7 @@ function mcpCommand(projectName, verbose) {
9958
9990
  console.log("Usage: fbi mcp <project-name>");
9959
9991
  process.exit(1);
9960
9992
  }
9961
- const projectPath = join2(process.cwd(), projectName);
9993
+ const projectPath = join2(PWD, projectName);
9962
9994
  if (existsSync2(projectPath)) {
9963
9995
  console.error(`\u274C Error: Directory '${projectName}' already exists`);
9964
9996
  process.exit(1);
@@ -10043,14 +10075,14 @@ import { existsSync as existsSync3, readFileSync as readFileSync2 } from "fs";
10043
10075
  import { join as join3 } from "path";
10044
10076
  function syncCommand(verbose) {
10045
10077
  log(`\uD83D\uDD04 Syncing backend interface with application target...`, false, verbose);
10046
- const packageJsonPath2 = join3(process.cwd(), "package.json");
10047
- if (!existsSync3(packageJsonPath2)) {
10078
+ const packageJsonPath = join3(PWD, "package.json");
10079
+ if (!existsSync3(packageJsonPath)) {
10048
10080
  console.error("\u274C Error: package.json not found in current directory");
10049
10081
  console.log("Make sure you're in a project directory");
10050
10082
  process.exit(1);
10051
10083
  }
10052
10084
  try {
10053
- const packageJson2 = JSON.parse(readFileSync2(packageJsonPath2, "utf-8"));
10085
+ const packageJson2 = JSON.parse(readFileSync2(packageJsonPath, "utf-8"));
10054
10086
  log(`Project: ${packageJson2.name}`, true, verbose);
10055
10087
  log(`Version: ${packageJson2.version}`, true, verbose);
10056
10088
  log(`\u2705 Sync completed successfully!`, false, verbose);
@@ -10091,9 +10123,10 @@ ${banner_default}
10091
10123
  }
10092
10124
  });
10093
10125
  var [command, ...args] = cli.input;
10126
+ console.log({ args });
10094
10127
  switch (command) {
10095
10128
  case "be":
10096
- beCommand(args[0] || "", cli.flags.verbose);
10129
+ beCommand(args[0] || "", cli.flags.verbose, args[1]);
10097
10130
  break;
10098
10131
  case "mcp":
10099
10132
  mcpCommand(args[0] || "", cli.flags.verbose);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flash-builder",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/jefripunza/flash-builder-cli#readme",
6
6
  "repository": {