build-app-with 2.0.1 → 2.0.4
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 +4 -2
- package/bin/build-app-with.js +113 -0
- package/bin/cli.js +85 -1
- package/dist/build-app-with.cjs +7614 -0
- package/dist/build-app-with.js +111 -0
- package/package.json +15 -11
- package/src/__tests__/core/error-handler.test.js +0 -99
- package/src/__tests__/core/logger.test.js +0 -93
- package/src/__tests__/e2e/cli-integration.test.js +0 -220
- package/src/__tests__/e2e/framework-generation.test.js +0 -249
- package/src/__tests__/setup.js +0 -70
- package/src/config/package-mappings.js +0 -110
- package/src/constants/index.js +0 -42
- package/src/core/error-handler.js +0 -89
- package/src/core/logger.js +0 -89
- package/src/core/package-manager.js +0 -114
- package/src/create-app.js +0 -90
- package/src/generators/express/index.js +0 -52
- package/src/generators/express/project-generator.js +0 -367
- package/src/generators/express/prompts.js +0 -74
- package/src/generators/express/simple-generator.js +0 -275
- package/src/generators/express/templates/app.js +0 -73
- package/src/generators/express/templates/config/database.js +0 -122
- package/src/generators/express/templates/config.js +0 -37
- package/src/generators/express/templates/controllers.js +0 -49
- package/src/generators/express/templates/docker.js +0 -72
- package/src/generators/express/templates/middleware/errorHandler.js +0 -49
- package/src/generators/express/templates/middleware.js +0 -59
- package/src/generators/express/templates/models.js +0 -77
- package/src/generators/express/templates/package-json.js +0 -55
- package/src/generators/express/templates/readme.js +0 -310
- package/src/generators/express/templates/routes.js +0 -36
- package/src/generators/express/templates/server.js +0 -59
- package/src/generators/express/templates/services.js +0 -55
- package/src/generators/express/templates/tests.js +0 -46
- package/src/generators/express/templates/utils/logger.js +0 -54
- package/src/generators/fastify/index.js +0 -46
- package/src/generators/fastify/project-generator.js +0 -373
- package/src/generators/fastify/prompts.js +0 -76
- package/src/generators/fastify/templates/app.js +0 -179
- package/src/generators/fastify/templates/config.js +0 -33
- package/src/generators/fastify/templates/docker.js +0 -73
- package/src/generators/fastify/templates/models.js +0 -77
- package/src/generators/fastify/templates/package-json.js +0 -57
- package/src/generators/fastify/templates/plugins.js +0 -38
- package/src/generators/fastify/templates/readme.js +0 -328
- package/src/generators/fastify/templates/routes.js +0 -32
- package/src/generators/fastify/templates/server.js +0 -71
- package/src/generators/fastify/templates/services.js +0 -50
- package/src/generators/fastify/templates/tests.js +0 -60
- package/src/generators/nextjs/dependency-manager.js +0 -99
- package/src/generators/nextjs/file-generator.js +0 -256
- package/src/generators/nextjs/nextjs-generator.js +0 -177
- package/src/generators/nextjs/nextjs-project-generator.js +0 -896
- package/src/generators/nextjs/package-mappings.js +0 -51
- package/src/generators/nextjs/templates.js +0 -272
- package/src/generators/package-json-generator.js +0 -117
- package/src/generators/vite/components/CreditComponent.jsx +0 -41
- package/src/generators/vite/components/app-component.js +0 -359
- package/src/generators/vite/components/main-file.js +0 -88
- package/src/generators/vite/eslint-config-generator.js +0 -20
- package/src/generators/vite/file-generator.js +0 -796
- package/src/generators/vite/prettier-config-generator.js +0 -10
- package/src/generators/vite/structures/domain-driven-structure.js +0 -465
- package/src/generators/vite/structures/feature-based-structure.js +0 -342
- package/src/generators/vite/structures/simple-structure.js +0 -62
- package/src/generators/vite/styles/index-css.js +0 -130
- package/src/generators/vite/tailwind-config-generator.js +0 -14
- package/src/generators/vite/vite-config-generator.js +0 -22
- package/src/generators/vite/vite-project-generator.js +0 -263
- package/src/generators/vite-project-generator.js +0 -136
- package/src/prompts/index.js +0 -262
- package/src/types/index.js +0 -113
- package/src/utils/answer-helpers.js +0 -24
- package/src/utils/credits.js +0 -192
- package/src/utils/dependencies.js +0 -25
- package/src/utils/messages.js +0 -30
package/README.md
CHANGED
|
@@ -16,12 +16,14 @@ An interactive CLI tool that helps you quickly set up production-ready web appli
|
|
|
16
16
|
|
|
17
17
|
## 🚀 Quick Start
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
> **⚠️ Important**: This is a CLI tool. Don't use `npm i build-app-with` - that won't work!
|
|
20
|
+
|
|
21
|
+
### ✨ Recommended: Use directly (no installation needed)
|
|
20
22
|
```bash
|
|
21
23
|
npx build-app-with my-awesome-app
|
|
22
24
|
```
|
|
23
25
|
|
|
24
|
-
### Or install globally
|
|
26
|
+
### 📦 Or install globally for repeated use
|
|
25
27
|
```bash
|
|
26
28
|
npm install -g build-app-with
|
|
27
29
|
build-app-with my-app
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// Bundled CLI executable
|
|
4
|
+
import { createRequire } from 'module';
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const { createApp } = require('../dist/build-app-with.cjs');
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import fs from 'fs';
|
|
9
|
+
|
|
10
|
+
// Import logger from bundled package for error handling
|
|
11
|
+
const bundledExports = require('../dist/build-app-with.cjs');
|
|
12
|
+
const logger = bundledExports.logger || { error: console.error, isDevelopment: false };
|
|
13
|
+
|
|
14
|
+
// Simple welcome message function
|
|
15
|
+
function welcomeMessage() {
|
|
16
|
+
console.log('🚀 Welcome to Build App With!');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Parse command line arguments
|
|
21
|
+
* @returns {Object} Parsed CLI options
|
|
22
|
+
*/
|
|
23
|
+
function parseCliArgs() {
|
|
24
|
+
const args = process.argv.slice(2);
|
|
25
|
+
const options = {
|
|
26
|
+
projectName: null,
|
|
27
|
+
help: false,
|
|
28
|
+
version: false
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
// Parse arguments
|
|
32
|
+
for (let i = 0; i < args.length; i++) {
|
|
33
|
+
const arg = args[i];
|
|
34
|
+
|
|
35
|
+
if (arg === '--help' || arg === '-h') {
|
|
36
|
+
options.help = true;
|
|
37
|
+
} else if (arg === '--version' || arg === '-v') {
|
|
38
|
+
options.version = true;
|
|
39
|
+
} else if (!arg.startsWith('-') && !options.projectName) {
|
|
40
|
+
// First non-flag argument is the project name
|
|
41
|
+
options.projectName = arg;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return options;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Show help information
|
|
50
|
+
*/
|
|
51
|
+
function showHelp() {
|
|
52
|
+
console.log(`
|
|
53
|
+
🚀 Build App With - Interactive Project Creator
|
|
54
|
+
|
|
55
|
+
USAGE:
|
|
56
|
+
npx build-app-with [project-name] [options]
|
|
57
|
+
|
|
58
|
+
ARGUMENTS:
|
|
59
|
+
project-name Name of the project to create (optional)
|
|
60
|
+
|
|
61
|
+
OPTIONS:
|
|
62
|
+
-h, --help Show this help message
|
|
63
|
+
-v, --version Show version number
|
|
64
|
+
|
|
65
|
+
EXAMPLES:
|
|
66
|
+
npx build-app-with # Interactive mode
|
|
67
|
+
npx build-app-with my-awesome-app # Create project with name
|
|
68
|
+
npx build-app-with --help # Show help
|
|
69
|
+
|
|
70
|
+
For more information, visit: https://github.com/imnayakshubham/build-app-with
|
|
71
|
+
`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Show version information
|
|
76
|
+
*/
|
|
77
|
+
async function showVersion() {
|
|
78
|
+
try {
|
|
79
|
+
const pkg = require('../package.json');
|
|
80
|
+
console.log(`v${pkg.version}`);
|
|
81
|
+
} catch {
|
|
82
|
+
console.log('Version unavailable');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async function main() {
|
|
87
|
+
const options = parseCliArgs();
|
|
88
|
+
|
|
89
|
+
// Handle help and version flags
|
|
90
|
+
if (options.help) {
|
|
91
|
+
showHelp();
|
|
92
|
+
process.exit(0);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (options.version) {
|
|
96
|
+
await showVersion();
|
|
97
|
+
process.exit(0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Show welcome message
|
|
101
|
+
welcomeMessage();
|
|
102
|
+
|
|
103
|
+
// Create app with optional project name from CLI
|
|
104
|
+
await createApp(options.projectName);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
main().catch((error) => {
|
|
108
|
+
logger.error(`Fatal error: ${error.message}`);
|
|
109
|
+
if (logger.isDevelopment) {
|
|
110
|
+
console.error(error.stack);
|
|
111
|
+
}
|
|
112
|
+
process.exit(1);
|
|
113
|
+
});
|
package/bin/cli.js
CHANGED
|
@@ -4,9 +4,93 @@ import { createApp } from '../src/create-app.js';
|
|
|
4
4
|
import { welcomeMessage } from '../src/utils/messages.js';
|
|
5
5
|
import { logger } from '../src/core/logger.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Parse command line arguments
|
|
9
|
+
* @returns {Object} Parsed CLI options
|
|
10
|
+
*/
|
|
11
|
+
function parseCliArgs() {
|
|
12
|
+
const args = process.argv.slice(2);
|
|
13
|
+
const options = {
|
|
14
|
+
projectName: null,
|
|
15
|
+
help: false,
|
|
16
|
+
version: false
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// Parse arguments
|
|
20
|
+
for (let i = 0; i < args.length; i++) {
|
|
21
|
+
const arg = args[i];
|
|
22
|
+
|
|
23
|
+
if (arg === '--help' || arg === '-h') {
|
|
24
|
+
options.help = true;
|
|
25
|
+
} else if (arg === '--version' || arg === '-v') {
|
|
26
|
+
options.version = true;
|
|
27
|
+
} else if (!arg.startsWith('-') && !options.projectName) {
|
|
28
|
+
// First non-flag argument is the project name
|
|
29
|
+
options.projectName = arg;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return options;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Show help information
|
|
38
|
+
*/
|
|
39
|
+
function showHelp() {
|
|
40
|
+
console.log(`
|
|
41
|
+
🚀 Build App With - Interactive Project Creator
|
|
42
|
+
|
|
43
|
+
USAGE:
|
|
44
|
+
npx build-app-with [project-name] [options]
|
|
45
|
+
|
|
46
|
+
ARGUMENTS:
|
|
47
|
+
project-name Name of the project to create (optional)
|
|
48
|
+
|
|
49
|
+
OPTIONS:
|
|
50
|
+
-h, --help Show this help message
|
|
51
|
+
-v, --version Show version number
|
|
52
|
+
|
|
53
|
+
EXAMPLES:
|
|
54
|
+
npx build-app-with # Interactive mode
|
|
55
|
+
npx build-app-with my-awesome-app # Create project with name
|
|
56
|
+
npx build-app-with --help # Show help
|
|
57
|
+
|
|
58
|
+
For more information, visit: https://github.com/imnayakshubham/build-app-with
|
|
59
|
+
`);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Show version information
|
|
64
|
+
*/
|
|
65
|
+
async function showVersion() {
|
|
66
|
+
try {
|
|
67
|
+
// Import package.json to get version
|
|
68
|
+
const pkg = await import('../package.json');
|
|
69
|
+
console.log(`v${pkg.default.version}`);
|
|
70
|
+
} catch {
|
|
71
|
+
console.log('Version unavailable');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
7
75
|
async function main() {
|
|
76
|
+
const options = parseCliArgs();
|
|
77
|
+
|
|
78
|
+
// Handle help and version flags
|
|
79
|
+
if (options.help) {
|
|
80
|
+
showHelp();
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (options.version) {
|
|
85
|
+
await showVersion();
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Show welcome message
|
|
8
90
|
welcomeMessage();
|
|
9
|
-
|
|
91
|
+
|
|
92
|
+
// Create app with optional project name from CLI
|
|
93
|
+
await createApp(options.projectName);
|
|
10
94
|
}
|
|
11
95
|
|
|
12
96
|
main().catch((error) => {
|