wexts 2.0.9 → 3.0.1
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/README.md +241 -235
- package/dist/chunk-2KAQYLVN.js +1 -0
- package/dist/chunk-2KAQYLVN.js.map +1 -0
- package/dist/chunk-3OM7CHCA.js +65 -0
- package/dist/chunk-3OM7CHCA.js.map +1 -0
- package/dist/chunk-667BQCEM.js +375 -0
- package/dist/chunk-667BQCEM.js.map +1 -0
- package/dist/chunk-FCEZDH42.mjs +20 -0
- package/dist/chunk-FCEZDH42.mjs.map +1 -0
- package/dist/chunk-KXYLEUSW.mjs +242 -0
- package/dist/chunk-KXYLEUSW.mjs.map +1 -0
- package/dist/chunk-O42L6HOX.js +242 -0
- package/dist/chunk-O42L6HOX.js.map +1 -0
- package/dist/chunk-ONXNE2A6.mjs +375 -0
- package/dist/chunk-ONXNE2A6.mjs.map +1 -0
- package/dist/chunk-STTOPUZ2.mjs +88 -0
- package/dist/chunk-STTOPUZ2.mjs.map +1 -0
- package/dist/chunk-VMT3LALB.mjs +51 -0
- package/dist/chunk-VMT3LALB.mjs.map +1 -0
- package/dist/chunk-VNNVLQLJ.mjs +65 -0
- package/dist/chunk-VNNVLQLJ.mjs.map +1 -0
- package/dist/chunk-WF65EDRZ.js +88 -0
- package/dist/chunk-WF65EDRZ.js.map +1 -0
- package/dist/chunk-XE4OXN2W.js +12 -0
- package/dist/chunk-XE4OXN2W.js.map +1 -0
- package/dist/chunk-XVKTIYHY.js +51 -0
- package/dist/chunk-XVKTIYHY.js.map +1 -0
- package/dist/chunk-YSLEF5C5.mjs +1 -0
- package/dist/chunk-YSLEF5C5.mjs.map +1 -0
- package/dist/cli/index.js +134 -81
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +93 -41
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.js +3 -3
- package/dist/client/index.mjs +2 -2
- package/dist/codegen/index.js +4 -4
- package/dist/codegen/index.mjs +3 -3
- package/dist/dev-server/index.js +4 -4
- package/dist/dev-server/index.mjs +3 -3
- package/dist/index.js +93 -51
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +75 -33
- package/dist/index.mjs.map +1 -1
- package/dist/nest/index.js +3 -3
- package/dist/nest/index.mjs +2 -2
- package/dist/next/index.js +22 -9
- package/dist/next/index.js.map +1 -1
- package/dist/next/index.mjs +23 -9
- package/dist/next/index.mjs.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.mjs +2 -2
- package/package.json +126 -112
- package/templates/.dockerignore +43 -0
- package/templates/.env.example +17 -0
- package/templates/Dockerfile +60 -0
- package/templates/Procfile +1 -0
- package/templates/README.md +58 -0
- package/templates/api-sdk.ts +115 -0
- package/templates/docker-compose.yml +34 -0
- package/templates/nestjs-api/src/auth/auth.controller.ts +4 -7
- package/templates/nestjs-api/src/auth/auth.module.ts +4 -1
- package/templates/nestjs-api/src/auth/auth.service.ts +8 -13
- package/templates/nestjs-api/src/todos/todos.controller.ts +0 -7
- package/templates/nestjs-api/src/todos/todos.module.ts +3 -1
- package/templates/nestjs-api/src/users/users.controller.ts +0 -3
- package/templates/nestjs-api/src/users/users.module.ts +3 -1
- package/templates/nextjs-web/app/actions/auth.ts +49 -20
- package/templates/nextjs-web/lib/api.ts +115 -0
- package/templates/nextjs-web/next-env.d.ts +1 -1
- package/templates/nixpacks.toml +11 -0
- package/templates/root-package.json +32 -0
- package/templates/server.ts +66 -0
- package/templates/tsconfig.json +31 -0
package/dist/cli/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict"; function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
|
|
4
|
+
var _chunk3OM7CHCAjs = require('../chunk-3OM7CHCA.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkXE4OXN2Wjs = require('../chunk-XE4OXN2W.js');
|
|
6
8
|
|
|
7
9
|
// src/cli/index.ts
|
|
8
10
|
var _commander = require('commander');
|
|
@@ -29,17 +31,35 @@ program.action(async () => {
|
|
|
29
31
|
name: "action",
|
|
30
32
|
message: "What would you like to do?",
|
|
31
33
|
choices: [
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{
|
|
37
|
-
|
|
34
|
+
{
|
|
35
|
+
name: "\u{1F4E6} Create a new project",
|
|
36
|
+
value: "create"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "\u{1F680} Start development server",
|
|
40
|
+
value: "dev"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "\u{1F528} Build for production",
|
|
44
|
+
value: "build"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "\u26A1 Generate code",
|
|
48
|
+
value: "generate"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "\u{1F916} Generate API client",
|
|
52
|
+
value: "codegen"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "\u274C Exit",
|
|
56
|
+
value: "exit"
|
|
57
|
+
}
|
|
38
58
|
]
|
|
39
59
|
}
|
|
40
60
|
]);
|
|
41
61
|
if (action === "exit") {
|
|
42
|
-
|
|
62
|
+
_chunk3OM7CHCAjs.logger.info("Goodbye! \u{1F44B}");
|
|
43
63
|
process.exit(0);
|
|
44
64
|
}
|
|
45
65
|
if (action === "create") {
|
|
@@ -55,26 +75,40 @@ program.action(async () => {
|
|
|
55
75
|
name: "template",
|
|
56
76
|
message: "Select template:",
|
|
57
77
|
choices: [
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
|
|
78
|
+
{
|
|
79
|
+
name: "\u{1F4E6} Monorepo (Next.js + NestJS)",
|
|
80
|
+
value: "monorepo"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "\u{1F3AF} API only (NestJS)",
|
|
84
|
+
value: "api"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "\u{1F310} Web only (Next.js)",
|
|
88
|
+
value: "web"
|
|
89
|
+
}
|
|
61
90
|
]
|
|
62
91
|
}
|
|
63
92
|
]);
|
|
64
93
|
await createProject(projectName, template);
|
|
65
94
|
} else if (action === "dev") {
|
|
66
|
-
|
|
67
|
-
|
|
95
|
+
_chunk3OM7CHCAjs.logger.info(pc.green("\u{1F680} Starting development servers...\n"));
|
|
96
|
+
_chunk3OM7CHCAjs.logger.warn("Dev server not yet implemented");
|
|
68
97
|
} else if (action === "build") {
|
|
69
|
-
|
|
70
|
-
|
|
98
|
+
_chunk3OM7CHCAjs.logger.info(pc.blue("\u{1F528} Building project...\n"));
|
|
99
|
+
_chunk3OM7CHCAjs.logger.warn("Build not yet implemented");
|
|
71
100
|
} else if (action === "generate") {
|
|
72
101
|
const { type, name } = await _inquirer2.default.prompt([
|
|
73
102
|
{
|
|
74
103
|
type: "list",
|
|
75
104
|
name: "type",
|
|
76
105
|
message: "What to generate?",
|
|
77
|
-
choices: [
|
|
106
|
+
choices: [
|
|
107
|
+
"controller",
|
|
108
|
+
"module",
|
|
109
|
+
"service",
|
|
110
|
+
"page"
|
|
111
|
+
]
|
|
78
112
|
},
|
|
79
113
|
{
|
|
80
114
|
type: "input",
|
|
@@ -82,20 +116,20 @@ program.action(async () => {
|
|
|
82
116
|
message: "Name:"
|
|
83
117
|
}
|
|
84
118
|
]);
|
|
85
|
-
|
|
119
|
+
_chunk3OM7CHCAjs.logger.info(pc.magenta(`
|
|
86
120
|
\u26A1 Generating ${type}: ${name}
|
|
87
121
|
`));
|
|
88
|
-
|
|
122
|
+
_chunk3OM7CHCAjs.logger.warn("Code generation not yet implemented");
|
|
89
123
|
} else if (action === "codegen") {
|
|
90
|
-
|
|
91
|
-
|
|
124
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan("\n\u{1F916} Generating API client...\n"));
|
|
125
|
+
_chunk3OM7CHCAjs.logger.warn("Codegen not yet implemented");
|
|
92
126
|
}
|
|
93
127
|
});
|
|
94
128
|
program.command("create <project-name>").description("Create a new wexts project").option("-t, --template <template>", "Template to use (monorepo|api|web)", "monorepo").action(async (projectName, options) => {
|
|
95
129
|
await createProject(projectName, options.template);
|
|
96
130
|
});
|
|
97
131
|
program.command("dev").description("Start development servers").option("-a, --api <path>", "Path to API project", "./apps/api").option("-w, --web <path>", "Path to Web project", "./apps/web").option("-p, --port <port>", "Port for web server", "3000").option("--api-port <port>", "Port for API server", "5050").option("--no-proxy", "Disable proxy server").action(async (options) => {
|
|
98
|
-
|
|
132
|
+
_chunk3OM7CHCAjs.logger.info(pc.green("\u{1F680} Starting Wexts development servers...\n"));
|
|
99
133
|
const { FusionDevServer } = await Promise.resolve().then(() => _interopRequireWildcard(require("../dev-server/index.js")));
|
|
100
134
|
const server = new FusionDevServer();
|
|
101
135
|
try {
|
|
@@ -107,29 +141,29 @@ program.command("dev").description("Start development servers").option("-a, --ap
|
|
|
107
141
|
useProxy: options.proxy
|
|
108
142
|
});
|
|
109
143
|
} catch (error) {
|
|
110
|
-
|
|
144
|
+
_chunk3OM7CHCAjs.logger.error("Failed to start dev server:", error.message);
|
|
111
145
|
process.exit(1);
|
|
112
146
|
}
|
|
113
147
|
});
|
|
114
148
|
program.command("build").description("Build for production").action(async () => {
|
|
115
|
-
|
|
116
|
-
|
|
149
|
+
_chunk3OM7CHCAjs.logger.info(pc.blue("Building Wexts project..."));
|
|
150
|
+
_chunk3OM7CHCAjs.logger.warn("Build not yet implemented");
|
|
117
151
|
});
|
|
118
152
|
program.command("generate <type> <name>").alias("g").description("Generate code (controller|module|page)").action(async (type, name) => {
|
|
119
|
-
|
|
120
|
-
|
|
153
|
+
_chunk3OM7CHCAjs.logger.info(pc.magenta(`Generating ${type}: ${name}`));
|
|
154
|
+
_chunk3OM7CHCAjs.logger.warn("Code generation not yet implemented");
|
|
121
155
|
});
|
|
122
156
|
program.command("codegen").description("Generate API client from NestJS controllers").option("-w, --watch", "Watch mode - regenerate on changes").option("-p, --project <path>", "Path to NestJS project", "./apps/api").option("-o, --output <path>", "Output path for generated client", "./packages/api-client/src").action(async (options) => {
|
|
123
157
|
const { NestJSParser, ClientGenerator, CodegenWatcher } = await Promise.resolve().then(() => _interopRequireWildcard(require("../codegen/index.js")));
|
|
124
158
|
if (options.watch) {
|
|
125
|
-
|
|
159
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan("Starting codegen in watch mode..."));
|
|
126
160
|
const watcher = new CodegenWatcher();
|
|
127
161
|
await watcher.watch({
|
|
128
162
|
projectPath: options.project,
|
|
129
163
|
outputPath: options.output
|
|
130
164
|
});
|
|
131
165
|
} else {
|
|
132
|
-
|
|
166
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan("Generating API client..."));
|
|
133
167
|
const parser = new NestJSParser(options.project);
|
|
134
168
|
const controllers = parser.findFusionControllers();
|
|
135
169
|
const generator = new ClientGenerator();
|
|
@@ -140,21 +174,18 @@ program.command("codegen").description("Generate API client from NestJS controll
|
|
|
140
174
|
}
|
|
141
175
|
});
|
|
142
176
|
async function createProject(projectName, template) {
|
|
143
|
-
|
|
144
|
-
|
|
177
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan(`Creating wexts project: ${pc.bold(projectName)}`));
|
|
178
|
+
_chunk3OM7CHCAjs.logger.info(`Template: ${template}`);
|
|
145
179
|
const projectPath = path.join(process.cwd(), projectName);
|
|
146
180
|
if (fs.existsSync(projectPath)) {
|
|
147
|
-
|
|
181
|
+
_chunk3OM7CHCAjs.logger.error(`Directory ${projectName} already exists!`);
|
|
148
182
|
process.exit(1);
|
|
149
183
|
}
|
|
150
184
|
function getTemplatePath() {
|
|
151
185
|
const possiblePaths = [
|
|
152
186
|
path.join(__dirname, "../../templates"),
|
|
153
|
-
// When running from dist/cli/index.js
|
|
154
187
|
path.join(__dirname, "../templates"),
|
|
155
|
-
// Alternative structure
|
|
156
188
|
path.join(process.cwd(), "templates"),
|
|
157
|
-
// Local dev
|
|
158
189
|
path.resolve(__dirname, "..", "..", "templates")
|
|
159
190
|
// Absolute resolve
|
|
160
191
|
];
|
|
@@ -165,43 +196,60 @@ async function createProject(projectName, template) {
|
|
|
165
196
|
}
|
|
166
197
|
return "";
|
|
167
198
|
}
|
|
199
|
+
_chunkXE4OXN2Wjs.__name.call(void 0, getTemplatePath, "getTemplatePath");
|
|
168
200
|
const templatePath = getTemplatePath();
|
|
169
201
|
if (!templatePath) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
fs.mkdirSync(projectPath, {
|
|
177
|
-
|
|
178
|
-
|
|
202
|
+
_chunk3OM7CHCAjs.logger.error(`\u274C Template directory not found!`);
|
|
203
|
+
_chunk3OM7CHCAjs.logger.info(`Searched in:`);
|
|
204
|
+
_chunk3OM7CHCAjs.logger.info(` - ${path.join(__dirname, "../../templates")}`);
|
|
205
|
+
_chunk3OM7CHCAjs.logger.info(` - ${path.join(__dirname, "../templates")}`);
|
|
206
|
+
_chunk3OM7CHCAjs.logger.info(` - ${path.join(process.cwd(), "templates")}`);
|
|
207
|
+
_chunk3OM7CHCAjs.logger.warn("\u26A0\uFE0F Using fallback scaffolding (empty structure)");
|
|
208
|
+
fs.mkdirSync(projectPath, {
|
|
209
|
+
recursive: true
|
|
210
|
+
});
|
|
211
|
+
fs.mkdirSync(path.join(projectPath, "apps"), {
|
|
212
|
+
recursive: true
|
|
213
|
+
});
|
|
214
|
+
fs.mkdirSync(path.join(projectPath, "packages"), {
|
|
215
|
+
recursive: true
|
|
216
|
+
});
|
|
179
217
|
} else {
|
|
180
|
-
|
|
181
|
-
fs.mkdirSync(projectPath, {
|
|
182
|
-
|
|
183
|
-
|
|
218
|
+
_chunk3OM7CHCAjs.logger.info(`\u{1F4E6} Copying templates from: ${templatePath}`);
|
|
219
|
+
fs.mkdirSync(projectPath, {
|
|
220
|
+
recursive: true
|
|
221
|
+
});
|
|
222
|
+
fs.mkdirSync(path.join(projectPath, "apps"), {
|
|
223
|
+
recursive: true
|
|
224
|
+
});
|
|
225
|
+
fs.mkdirSync(path.join(projectPath, "packages"), {
|
|
226
|
+
recursive: true
|
|
227
|
+
});
|
|
184
228
|
const apiTemplatePath = path.join(templatePath, "nestjs-api");
|
|
185
229
|
const apiDestPath = path.join(projectPath, "apps/api");
|
|
186
230
|
if (fs.existsSync(apiTemplatePath)) {
|
|
187
|
-
fs.cpSync(apiTemplatePath, apiDestPath, {
|
|
188
|
-
|
|
231
|
+
fs.cpSync(apiTemplatePath, apiDestPath, {
|
|
232
|
+
recursive: true
|
|
233
|
+
});
|
|
234
|
+
_chunk3OM7CHCAjs.logger.success(" - Copied API template");
|
|
189
235
|
const envExamplePath = path.join(apiDestPath, ".env.example");
|
|
190
236
|
const envPath = path.join(apiDestPath, ".env");
|
|
191
237
|
if (fs.existsSync(envExamplePath) && !fs.existsSync(envPath)) {
|
|
192
238
|
fs.copyFileSync(envExamplePath, envPath);
|
|
193
|
-
|
|
239
|
+
_chunk3OM7CHCAjs.logger.success(" - Created .env from .env.example");
|
|
194
240
|
}
|
|
195
241
|
} else {
|
|
196
|
-
|
|
242
|
+
_chunk3OM7CHCAjs.logger.warn(` \u26A0\uFE0F API template not found at ${apiTemplatePath}`);
|
|
197
243
|
}
|
|
198
244
|
const webTemplatePath = path.join(templatePath, "nextjs-web");
|
|
199
245
|
const webDestPath = path.join(projectPath, "apps/web");
|
|
200
246
|
if (fs.existsSync(webTemplatePath)) {
|
|
201
|
-
fs.cpSync(webTemplatePath, webDestPath, {
|
|
202
|
-
|
|
247
|
+
fs.cpSync(webTemplatePath, webDestPath, {
|
|
248
|
+
recursive: true
|
|
249
|
+
});
|
|
250
|
+
_chunk3OM7CHCAjs.logger.success(" - Copied Web template");
|
|
203
251
|
} else {
|
|
204
|
-
|
|
252
|
+
_chunk3OM7CHCAjs.logger.warn(` \u26A0\uFE0F Web template not found at ${webTemplatePath}`);
|
|
205
253
|
}
|
|
206
254
|
}
|
|
207
255
|
const packageJson = {
|
|
@@ -222,16 +270,19 @@ async function createProject(projectName, template) {
|
|
|
222
270
|
},
|
|
223
271
|
packageManager: "pnpm@10.0.0"
|
|
224
272
|
};
|
|
225
|
-
fs.writeFileSync(
|
|
226
|
-
path.join(projectPath, "package.json"),
|
|
227
|
-
JSON.stringify(packageJson, null, 2)
|
|
228
|
-
);
|
|
273
|
+
fs.writeFileSync(path.join(projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
|
|
229
274
|
const turboJson = {
|
|
230
275
|
"$schema": "https://turbo.build/schema.json",
|
|
231
276
|
"tasks": {
|
|
232
277
|
"build": {
|
|
233
|
-
"dependsOn": [
|
|
234
|
-
|
|
278
|
+
"dependsOn": [
|
|
279
|
+
"^build"
|
|
280
|
+
],
|
|
281
|
+
"outputs": [
|
|
282
|
+
".next/**",
|
|
283
|
+
"!.next/cache/**",
|
|
284
|
+
"dist/**"
|
|
285
|
+
]
|
|
235
286
|
},
|
|
236
287
|
"lint": {},
|
|
237
288
|
"dev": {
|
|
@@ -240,40 +291,42 @@ async function createProject(projectName, template) {
|
|
|
240
291
|
}
|
|
241
292
|
}
|
|
242
293
|
};
|
|
243
|
-
fs.writeFileSync(
|
|
244
|
-
path.join(projectPath, "turbo.json"),
|
|
245
|
-
JSON.stringify(turboJson, null, 2)
|
|
246
|
-
);
|
|
294
|
+
fs.writeFileSync(path.join(projectPath, "turbo.json"), JSON.stringify(turboJson, null, 2));
|
|
247
295
|
const pnpmWorkspace = `packages:
|
|
248
296
|
- 'apps/*'
|
|
249
297
|
- 'packages/*'
|
|
250
298
|
`;
|
|
251
|
-
fs.writeFileSync(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
);
|
|
255
|
-
_chunkDW6GOKMFjs.logger.success("\u2705 Project structure created");
|
|
256
|
-
_chunkDW6GOKMFjs.logger.info("\u{1F4E6} Installing dependencies...");
|
|
299
|
+
fs.writeFileSync(path.join(projectPath, "pnpm-workspace.yaml"), pnpmWorkspace);
|
|
300
|
+
_chunk3OM7CHCAjs.logger.success("\u2705 Project structure created");
|
|
301
|
+
_chunk3OM7CHCAjs.logger.info("\u{1F4E6} Installing dependencies...");
|
|
257
302
|
try {
|
|
258
303
|
try {
|
|
259
|
-
_child_process.execSync.call(void 0, "pnpm --version", {
|
|
304
|
+
_child_process.execSync.call(void 0, "pnpm --version", {
|
|
305
|
+
stdio: "ignore"
|
|
306
|
+
});
|
|
260
307
|
} catch (e) {
|
|
261
|
-
|
|
262
|
-
_child_process.execSync.call(void 0, "npm install -g pnpm", {
|
|
308
|
+
_chunk3OM7CHCAjs.logger.info("Installing pnpm...");
|
|
309
|
+
_child_process.execSync.call(void 0, "npm install -g pnpm", {
|
|
310
|
+
stdio: "ignore"
|
|
311
|
+
});
|
|
263
312
|
}
|
|
264
|
-
_child_process.execSync.call(void 0, "pnpm install", {
|
|
265
|
-
|
|
266
|
-
|
|
313
|
+
_child_process.execSync.call(void 0, "pnpm install", {
|
|
314
|
+
cwd: projectPath,
|
|
315
|
+
stdio: "inherit"
|
|
316
|
+
});
|
|
317
|
+
_chunk3OM7CHCAjs.logger.success("\u2705 Dependencies installed");
|
|
318
|
+
_chunk3OM7CHCAjs.logger.info(pc.green(`
|
|
267
319
|
\u{1F389} Project ${projectName} created successfully!`));
|
|
268
|
-
|
|
320
|
+
_chunk3OM7CHCAjs.logger.info(`
|
|
269
321
|
To get started:
|
|
270
322
|
`);
|
|
271
|
-
|
|
272
|
-
|
|
323
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan(` cd ${projectName}`));
|
|
324
|
+
_chunk3OM7CHCAjs.logger.info(pc.cyan(` pnpm dev
|
|
273
325
|
`));
|
|
274
326
|
} catch (error) {
|
|
275
|
-
|
|
327
|
+
_chunk3OM7CHCAjs.logger.error("Failed to install dependencies");
|
|
276
328
|
}
|
|
277
329
|
}
|
|
330
|
+
_chunkXE4OXN2Wjs.__name.call(void 0, createProject, "createProject");
|
|
278
331
|
program.parse();
|
|
279
332
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["c:\\Users\\ziad\\Desktop\\wexts\\packages\\dist\\cli\\index.js"],"names":[],"mappings":"AAAA;AACA;AACE;AACF,uDAA6B;AAC7B,
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\ziad\\Desktop\\wexts\\packages\\dist\\cli\\index.js"],"names":[],"mappings":"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A;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,kBAAA;AACA,IAAA;AACA;AACA;AACA,IAAA;AACA,IAAA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA","file":"C:\\Users\\ziad\\Desktop\\wexts\\packages\\dist\\cli\\index.js","sourcesContent":[null]}
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-VNNVLQLJ.mjs";
|
|
5
5
|
import {
|
|
6
|
-
__dirname
|
|
7
|
-
|
|
6
|
+
__dirname,
|
|
7
|
+
__name
|
|
8
|
+
} from "../chunk-FCEZDH42.mjs";
|
|
8
9
|
|
|
9
10
|
// src/cli/index.ts
|
|
10
11
|
import { Command } from "commander";
|
|
@@ -31,12 +32,30 @@ program.action(async () => {
|
|
|
31
32
|
name: "action",
|
|
32
33
|
message: "What would you like to do?",
|
|
33
34
|
choices: [
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
{
|
|
39
|
-
|
|
35
|
+
{
|
|
36
|
+
name: "\u{1F4E6} Create a new project",
|
|
37
|
+
value: "create"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "\u{1F680} Start development server",
|
|
41
|
+
value: "dev"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "\u{1F528} Build for production",
|
|
45
|
+
value: "build"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "\u26A1 Generate code",
|
|
49
|
+
value: "generate"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "\u{1F916} Generate API client",
|
|
53
|
+
value: "codegen"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "\u274C Exit",
|
|
57
|
+
value: "exit"
|
|
58
|
+
}
|
|
40
59
|
]
|
|
41
60
|
}
|
|
42
61
|
]);
|
|
@@ -57,9 +76,18 @@ program.action(async () => {
|
|
|
57
76
|
name: "template",
|
|
58
77
|
message: "Select template:",
|
|
59
78
|
choices: [
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
79
|
+
{
|
|
80
|
+
name: "\u{1F4E6} Monorepo (Next.js + NestJS)",
|
|
81
|
+
value: "monorepo"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "\u{1F3AF} API only (NestJS)",
|
|
85
|
+
value: "api"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "\u{1F310} Web only (Next.js)",
|
|
89
|
+
value: "web"
|
|
90
|
+
}
|
|
63
91
|
]
|
|
64
92
|
}
|
|
65
93
|
]);
|
|
@@ -76,7 +104,12 @@ program.action(async () => {
|
|
|
76
104
|
type: "list",
|
|
77
105
|
name: "type",
|
|
78
106
|
message: "What to generate?",
|
|
79
|
-
choices: [
|
|
107
|
+
choices: [
|
|
108
|
+
"controller",
|
|
109
|
+
"module",
|
|
110
|
+
"service",
|
|
111
|
+
"page"
|
|
112
|
+
]
|
|
80
113
|
},
|
|
81
114
|
{
|
|
82
115
|
type: "input",
|
|
@@ -152,11 +185,8 @@ async function createProject(projectName, template) {
|
|
|
152
185
|
function getTemplatePath() {
|
|
153
186
|
const possiblePaths = [
|
|
154
187
|
path.join(__dirname, "../../templates"),
|
|
155
|
-
// When running from dist/cli/index.js
|
|
156
188
|
path.join(__dirname, "../templates"),
|
|
157
|
-
// Alternative structure
|
|
158
189
|
path.join(process.cwd(), "templates"),
|
|
159
|
-
// Local dev
|
|
160
190
|
path.resolve(__dirname, "..", "..", "templates")
|
|
161
191
|
// Absolute resolve
|
|
162
192
|
];
|
|
@@ -167,6 +197,7 @@ async function createProject(projectName, template) {
|
|
|
167
197
|
}
|
|
168
198
|
return "";
|
|
169
199
|
}
|
|
200
|
+
__name(getTemplatePath, "getTemplatePath");
|
|
170
201
|
const templatePath = getTemplatePath();
|
|
171
202
|
if (!templatePath) {
|
|
172
203
|
logger.error(`\u274C Template directory not found!`);
|
|
@@ -175,18 +206,32 @@ async function createProject(projectName, template) {
|
|
|
175
206
|
logger.info(` - ${path.join(__dirname, "../templates")}`);
|
|
176
207
|
logger.info(` - ${path.join(process.cwd(), "templates")}`);
|
|
177
208
|
logger.warn("\u26A0\uFE0F Using fallback scaffolding (empty structure)");
|
|
178
|
-
fs.mkdirSync(projectPath, {
|
|
179
|
-
|
|
180
|
-
|
|
209
|
+
fs.mkdirSync(projectPath, {
|
|
210
|
+
recursive: true
|
|
211
|
+
});
|
|
212
|
+
fs.mkdirSync(path.join(projectPath, "apps"), {
|
|
213
|
+
recursive: true
|
|
214
|
+
});
|
|
215
|
+
fs.mkdirSync(path.join(projectPath, "packages"), {
|
|
216
|
+
recursive: true
|
|
217
|
+
});
|
|
181
218
|
} else {
|
|
182
219
|
logger.info(`\u{1F4E6} Copying templates from: ${templatePath}`);
|
|
183
|
-
fs.mkdirSync(projectPath, {
|
|
184
|
-
|
|
185
|
-
|
|
220
|
+
fs.mkdirSync(projectPath, {
|
|
221
|
+
recursive: true
|
|
222
|
+
});
|
|
223
|
+
fs.mkdirSync(path.join(projectPath, "apps"), {
|
|
224
|
+
recursive: true
|
|
225
|
+
});
|
|
226
|
+
fs.mkdirSync(path.join(projectPath, "packages"), {
|
|
227
|
+
recursive: true
|
|
228
|
+
});
|
|
186
229
|
const apiTemplatePath = path.join(templatePath, "nestjs-api");
|
|
187
230
|
const apiDestPath = path.join(projectPath, "apps/api");
|
|
188
231
|
if (fs.existsSync(apiTemplatePath)) {
|
|
189
|
-
fs.cpSync(apiTemplatePath, apiDestPath, {
|
|
232
|
+
fs.cpSync(apiTemplatePath, apiDestPath, {
|
|
233
|
+
recursive: true
|
|
234
|
+
});
|
|
190
235
|
logger.success(" - Copied API template");
|
|
191
236
|
const envExamplePath = path.join(apiDestPath, ".env.example");
|
|
192
237
|
const envPath = path.join(apiDestPath, ".env");
|
|
@@ -200,7 +245,9 @@ async function createProject(projectName, template) {
|
|
|
200
245
|
const webTemplatePath = path.join(templatePath, "nextjs-web");
|
|
201
246
|
const webDestPath = path.join(projectPath, "apps/web");
|
|
202
247
|
if (fs.existsSync(webTemplatePath)) {
|
|
203
|
-
fs.cpSync(webTemplatePath, webDestPath, {
|
|
248
|
+
fs.cpSync(webTemplatePath, webDestPath, {
|
|
249
|
+
recursive: true
|
|
250
|
+
});
|
|
204
251
|
logger.success(" - Copied Web template");
|
|
205
252
|
} else {
|
|
206
253
|
logger.warn(` \u26A0\uFE0F Web template not found at ${webTemplatePath}`);
|
|
@@ -224,16 +271,19 @@ async function createProject(projectName, template) {
|
|
|
224
271
|
},
|
|
225
272
|
packageManager: "pnpm@10.0.0"
|
|
226
273
|
};
|
|
227
|
-
fs.writeFileSync(
|
|
228
|
-
path.join(projectPath, "package.json"),
|
|
229
|
-
JSON.stringify(packageJson, null, 2)
|
|
230
|
-
);
|
|
274
|
+
fs.writeFileSync(path.join(projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
|
|
231
275
|
const turboJson = {
|
|
232
276
|
"$schema": "https://turbo.build/schema.json",
|
|
233
277
|
"tasks": {
|
|
234
278
|
"build": {
|
|
235
|
-
"dependsOn": [
|
|
236
|
-
|
|
279
|
+
"dependsOn": [
|
|
280
|
+
"^build"
|
|
281
|
+
],
|
|
282
|
+
"outputs": [
|
|
283
|
+
".next/**",
|
|
284
|
+
"!.next/cache/**",
|
|
285
|
+
"dist/**"
|
|
286
|
+
]
|
|
237
287
|
},
|
|
238
288
|
"lint": {},
|
|
239
289
|
"dev": {
|
|
@@ -242,28 +292,29 @@ async function createProject(projectName, template) {
|
|
|
242
292
|
}
|
|
243
293
|
}
|
|
244
294
|
};
|
|
245
|
-
fs.writeFileSync(
|
|
246
|
-
path.join(projectPath, "turbo.json"),
|
|
247
|
-
JSON.stringify(turboJson, null, 2)
|
|
248
|
-
);
|
|
295
|
+
fs.writeFileSync(path.join(projectPath, "turbo.json"), JSON.stringify(turboJson, null, 2));
|
|
249
296
|
const pnpmWorkspace = `packages:
|
|
250
297
|
- 'apps/*'
|
|
251
298
|
- 'packages/*'
|
|
252
299
|
`;
|
|
253
|
-
fs.writeFileSync(
|
|
254
|
-
path.join(projectPath, "pnpm-workspace.yaml"),
|
|
255
|
-
pnpmWorkspace
|
|
256
|
-
);
|
|
300
|
+
fs.writeFileSync(path.join(projectPath, "pnpm-workspace.yaml"), pnpmWorkspace);
|
|
257
301
|
logger.success("\u2705 Project structure created");
|
|
258
302
|
logger.info("\u{1F4E6} Installing dependencies...");
|
|
259
303
|
try {
|
|
260
304
|
try {
|
|
261
|
-
execSync("pnpm --version", {
|
|
305
|
+
execSync("pnpm --version", {
|
|
306
|
+
stdio: "ignore"
|
|
307
|
+
});
|
|
262
308
|
} catch {
|
|
263
309
|
logger.info("Installing pnpm...");
|
|
264
|
-
execSync("npm install -g pnpm", {
|
|
310
|
+
execSync("npm install -g pnpm", {
|
|
311
|
+
stdio: "ignore"
|
|
312
|
+
});
|
|
265
313
|
}
|
|
266
|
-
execSync("pnpm install", {
|
|
314
|
+
execSync("pnpm install", {
|
|
315
|
+
cwd: projectPath,
|
|
316
|
+
stdio: "inherit"
|
|
317
|
+
});
|
|
267
318
|
logger.success("\u2705 Dependencies installed");
|
|
268
319
|
logger.info(pc.green(`
|
|
269
320
|
\u{1F389} Project ${projectName} created successfully!`));
|
|
@@ -277,5 +328,6 @@ To get started:
|
|
|
277
328
|
logger.error("Failed to install dependencies");
|
|
278
329
|
}
|
|
279
330
|
}
|
|
331
|
+
__name(createProject, "createProject");
|
|
280
332
|
program.parse();
|
|
281
333
|
//# sourceMappingURL=index.mjs.map
|