@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.
- package/dist/create.js +58 -11
- 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
|
-
|
|
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 './
|
|
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
|
|
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.
|
|
142
|
-
"@avleon/cli": "^0.0.
|
|
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
|
|
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) {
|