@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.
- package/dist/create.js +43 -12
- 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
|
-
|
|
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 './
|
|
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.
|
|
135
|
-
"@avleon/cli": "^0.0.
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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:
|
|
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.
|
|
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": [
|