@avleon/cli 0.0.34 → 0.0.36

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 +58 -11
  2. package/package.json +1 -1
package/dist/create.js CHANGED
@@ -64,21 +64,66 @@ async function askForPackageManager() {
64
64
  ]);
65
65
  return packageManager;
66
66
  }
67
+ async function installDependencies(pm, fname) {
68
+ return new Promise((resolve, reject) => {
69
+ const child = (0, child_process_1.spawn)(pm, ['install'], {
70
+ cwd: fname,
71
+ shell: getShell(),
72
+ stdio: 'inherit',
73
+ });
74
+ child.on('exit', (code) => {
75
+ if (code === 0) {
76
+ console.log('✅ Dependencies installed successfully.');
77
+ resolve();
78
+ }
79
+ else {
80
+ console.error(`❌ Installation failed with exit code ${code}`);
81
+ reject(new Error(`Install failed with code ${code}`));
82
+ }
83
+ });
84
+ child.on('error', (err) => {
85
+ console.error('❌ Failed to start install process:', err);
86
+ reject(err);
87
+ });
88
+ });
89
+ }
67
90
  async function createApplication(fname, flags = {}) {
68
91
  let appPaths = (0, paths_1.appPaths)(fname);
69
92
  const pm = await askForPackageManager();
70
- const dirs = Object.values(appPaths);
71
- for (let i = 0; i < dirs.length; i++) {
72
- await fs_extra_1.default.ensureDir(dirs[i]);
73
- }
93
+ // const dirs = Object.values(appPaths);
94
+ // for (let i = 0; i < dirs.length; i++) {
95
+ // await fs.ensureDir(dirs[i]);
96
+ // }
97
+ await fs_extra_1.default.ensureDir(appPaths.root + "/src");
98
+ await fs_extra_1.default.ensureDir(appPaths.root + "/test");
74
99
  await fs_extra_1.default.ensureDir(appPaths.root + "/public");
75
100
  // copy
76
- //
101
+ // home controller
102
+ const homeContrlelr = `
103
+ import { ApiController, Get } from "@avleon/core";
104
+
105
+
106
+ @ApiController
107
+ export class HomeController{
108
+
109
+ @Get()
110
+ sayHello(){
111
+ return "Hello World!";
112
+ }
113
+ }
114
+ `;
115
+ const formatHomeController = await prettier.format(homeContrlelr, {
116
+ singleQuote: true,
117
+ singleAttributePerLine: true,
118
+ parser: "typescript",
119
+ });
120
+ await fs_extra_1.default.writeFile(win32_1.default.join(appPaths.src, "home.controller.ts"), formatHomeController);
121
+ // main file
77
122
  const mainFunc = `
78
123
  import {
79
124
  Avleon
80
125
  } from "@avleon/core";
81
- import {HomeController} from './controllers/home.controller';
126
+ import { HomeController } from './home.controller';
82
127
 
83
128
 
84
129
  const app = Avleon.createApplication();
@@ -124,8 +169,8 @@ serve();
124
169
  "description": "Basic avleon application",
125
170
  "main": "index.js",
126
171
  "scripts": {
127
- "start:dev": "nodemon /src/serve.ts",
128
- "start:debug": "nodemon --watch src --ext ts --exec node --inspect=0.0.0.0:9229 -r ts-node/register src/serve.ts",
172
+ "start:dev": "nodemon ./src/serve.ts",
173
+ "start:debug": "nodemon --watch src --ext ts --exec node --inspect=0.0.0.0:9229 -r ts-node/register ./src/serve.ts",
129
174
  "clean": "rimraf ./dist",
130
175
  "build": "npm run clean & tsc --project ./tsconfig.build.json",
131
176
  "start": "node dist/serve.js",
@@ -138,8 +183,8 @@ serve();
138
183
  "keywords": ["avleon","nodejs","typescript"],
139
184
  "license": "ISC",
140
185
  "dependencies": {
141
- "@avleon/core": "^0.0.27",
142
- "@avleon/cli": "^0.0.32",
186
+ "@avleon/core": "^0.0.28",
187
+ "@avleon/cli": "^0.0.35",
143
188
  "class-transformer": "^0.5.1",
144
189
  "class-validator": "^0.14.1",
145
190
  "reflect-metadata": "^0.2.2"
@@ -210,7 +255,9 @@ serve();
210
255
  try {
211
256
  console.log(`Running ${pm} install...`);
212
257
  await execAsync(`cd ${fname}`);
213
- await execAsync(`${pm} install`, { cwd: fname, shell: getShell() });
258
+ await installDependencies(pm, fname);
259
+ console.log(`cd ${fname}`);
260
+ console.log(pm == 'npm' ? `npm run start:dev` : `${pm} start:dev`);
214
261
  console.log('✅ Dependencies installed successfully.');
215
262
  }
216
263
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avleon/cli",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "bin": {
5
5
  "avleon": "./dist/cli.js"
6
6
  },