@avleon/cli 0.0.33 → 0.0.35

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 (2) hide show
  1. package/dist/create.js +43 -12
  2. package/package.json +2 -1
package/dist/create.js CHANGED
@@ -41,10 +41,17 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
41
41
  const paths_1 = require("./paths");
42
42
  const prettier = __importStar(require("prettier"));
43
43
  const win32_1 = __importDefault(require("path/win32"));
44
+ const os_1 = __importDefault(require("os"));
44
45
  const inquirer_1 = __importDefault(require("inquirer"));
45
46
  const child_process_1 = require("child_process");
46
47
  const util_1 = __importDefault(require("util"));
47
48
  const execAsync = util_1.default.promisify(child_process_1.exec);
49
+ const getShell = () => {
50
+ if (os_1.default.platform() === 'win32') {
51
+ return process.env.ComSpec || 'cmd.exe'; // Windows fallback
52
+ }
53
+ return process.env.SHELL || '/bin/sh'; // macOS/Linux fallback
54
+ };
48
55
  async function askForPackageManager() {
49
56
  const { packageManager } = await inquirer_1.default.prompt([
50
57
  {
@@ -60,18 +67,40 @@ async function askForPackageManager() {
60
67
  async function createApplication(fname, flags = {}) {
61
68
  let appPaths = (0, paths_1.appPaths)(fname);
62
69
  const pm = await askForPackageManager();
63
- const dirs = Object.values(appPaths);
64
- for (let i = 0; i < dirs.length; i++) {
65
- await fs_extra_1.default.ensureDir(dirs[i]);
66
- }
70
+ // const dirs = Object.values(appPaths);
71
+ // for (let i = 0; i < dirs.length; i++) {
72
+ // await fs.ensureDir(dirs[i]);
73
+ // }
74
+ await fs_extra_1.default.ensureDir(appPaths.root + "/src");
75
+ await fs_extra_1.default.ensureDir(appPaths.root + "/test");
67
76
  await fs_extra_1.default.ensureDir(appPaths.root + "/public");
68
77
  // copy
69
- //
78
+ // home controller
79
+ const homeContrlelr = `
80
+ import { ApiController, Get } from "@avleon/core";
81
+
82
+
83
+ @ApiController
84
+ export class HomeController{
85
+
86
+ @Get()
87
+ sayHello(){
88
+ return "Hello World!";
89
+ }
90
+ }
91
+ `;
92
+ const formatHomeController = await prettier.format(homeContrlelr, {
93
+ singleQuote: true,
94
+ singleAttributePerLine: true,
95
+ parser: "typescript",
96
+ });
97
+ await fs_extra_1.default.writeFile(win32_1.default.join(appPaths.src, "home.controller.ts"), formatHomeController);
98
+ // main file
70
99
  const mainFunc = `
71
100
  import {
72
101
  Avleon
73
102
  } from "@avleon/core";
74
- import {HomeController} from './controllers/home.controller';
103
+ import { HomeController } from './home.controller';
75
104
 
76
105
 
77
106
  const app = Avleon.createApplication();
@@ -131,16 +160,16 @@ serve();
131
160
  "keywords": ["avleon","nodejs","typescript"],
132
161
  "license": "ISC",
133
162
  "dependencies": {
134
- "@avleon/core": "^0.0.27",
135
- "@avleon/cli": "^0.0.28",
163
+ "@avleon/core": "^0.0.28",
164
+ "@avleon/cli": "^0.0.34",
136
165
  "class-transformer": "^0.5.1",
137
166
  "class-validator": "^0.14.1",
138
167
  "reflect-metadata": "^0.2.2"
139
168
  },
140
169
  "devDependencies": {
141
- "@types/jest": "^29.5.14",
142
- "jest": "^29.7.0",
143
- "ts-jest": "^29.2.6",
170
+ "@types/jest": "^29.5.14",
171
+ "jest": "^29.7.0",
172
+ "ts-jest": "^29.2.6",
144
173
  "nodemon": "^3.1.7",
145
174
  "ts-node": "^10.9.2",
146
175
  "typescript": "^5.7.2"
@@ -203,7 +232,9 @@ serve();
203
232
  try {
204
233
  console.log(`Running ${pm} install...`);
205
234
  await execAsync(`cd ${fname}`);
206
- await execAsync(`${pm} install`, { cwd: 'fname' });
235
+ await execAsync(`${pm} install`, { cwd: fname, shell: getShell() });
236
+ console.log(`cd ${fname} && ${pm} install`);
237
+ console.log(pm == 'npm' ? `npm run start:dev` : `${pm} start:dev`);
207
238
  console.log('✅ Dependencies installed successfully.');
208
239
  }
209
240
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avleon/cli",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "bin": {
5
5
  "avleon": "./dist/cli.js"
6
6
  },
@@ -10,6 +10,7 @@
10
10
  "scripts": {
11
11
  "build": "rimraf dist & tsc",
12
12
  "clean": "rm -rf ./dist",
13
+ "prepublish": "npm run build",
13
14
  "watch": "tsc-watch"
14
15
  },
15
16
  "keywords": [