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.
Files changed (77) hide show
  1. package/README.md +4 -2
  2. package/bin/build-app-with.js +113 -0
  3. package/bin/cli.js +85 -1
  4. package/dist/build-app-with.cjs +7614 -0
  5. package/dist/build-app-with.js +111 -0
  6. package/package.json +15 -11
  7. package/src/__tests__/core/error-handler.test.js +0 -99
  8. package/src/__tests__/core/logger.test.js +0 -93
  9. package/src/__tests__/e2e/cli-integration.test.js +0 -220
  10. package/src/__tests__/e2e/framework-generation.test.js +0 -249
  11. package/src/__tests__/setup.js +0 -70
  12. package/src/config/package-mappings.js +0 -110
  13. package/src/constants/index.js +0 -42
  14. package/src/core/error-handler.js +0 -89
  15. package/src/core/logger.js +0 -89
  16. package/src/core/package-manager.js +0 -114
  17. package/src/create-app.js +0 -90
  18. package/src/generators/express/index.js +0 -52
  19. package/src/generators/express/project-generator.js +0 -367
  20. package/src/generators/express/prompts.js +0 -74
  21. package/src/generators/express/simple-generator.js +0 -275
  22. package/src/generators/express/templates/app.js +0 -73
  23. package/src/generators/express/templates/config/database.js +0 -122
  24. package/src/generators/express/templates/config.js +0 -37
  25. package/src/generators/express/templates/controllers.js +0 -49
  26. package/src/generators/express/templates/docker.js +0 -72
  27. package/src/generators/express/templates/middleware/errorHandler.js +0 -49
  28. package/src/generators/express/templates/middleware.js +0 -59
  29. package/src/generators/express/templates/models.js +0 -77
  30. package/src/generators/express/templates/package-json.js +0 -55
  31. package/src/generators/express/templates/readme.js +0 -310
  32. package/src/generators/express/templates/routes.js +0 -36
  33. package/src/generators/express/templates/server.js +0 -59
  34. package/src/generators/express/templates/services.js +0 -55
  35. package/src/generators/express/templates/tests.js +0 -46
  36. package/src/generators/express/templates/utils/logger.js +0 -54
  37. package/src/generators/fastify/index.js +0 -46
  38. package/src/generators/fastify/project-generator.js +0 -373
  39. package/src/generators/fastify/prompts.js +0 -76
  40. package/src/generators/fastify/templates/app.js +0 -179
  41. package/src/generators/fastify/templates/config.js +0 -33
  42. package/src/generators/fastify/templates/docker.js +0 -73
  43. package/src/generators/fastify/templates/models.js +0 -77
  44. package/src/generators/fastify/templates/package-json.js +0 -57
  45. package/src/generators/fastify/templates/plugins.js +0 -38
  46. package/src/generators/fastify/templates/readme.js +0 -328
  47. package/src/generators/fastify/templates/routes.js +0 -32
  48. package/src/generators/fastify/templates/server.js +0 -71
  49. package/src/generators/fastify/templates/services.js +0 -50
  50. package/src/generators/fastify/templates/tests.js +0 -60
  51. package/src/generators/nextjs/dependency-manager.js +0 -99
  52. package/src/generators/nextjs/file-generator.js +0 -256
  53. package/src/generators/nextjs/nextjs-generator.js +0 -177
  54. package/src/generators/nextjs/nextjs-project-generator.js +0 -896
  55. package/src/generators/nextjs/package-mappings.js +0 -51
  56. package/src/generators/nextjs/templates.js +0 -272
  57. package/src/generators/package-json-generator.js +0 -117
  58. package/src/generators/vite/components/CreditComponent.jsx +0 -41
  59. package/src/generators/vite/components/app-component.js +0 -359
  60. package/src/generators/vite/components/main-file.js +0 -88
  61. package/src/generators/vite/eslint-config-generator.js +0 -20
  62. package/src/generators/vite/file-generator.js +0 -796
  63. package/src/generators/vite/prettier-config-generator.js +0 -10
  64. package/src/generators/vite/structures/domain-driven-structure.js +0 -465
  65. package/src/generators/vite/structures/feature-based-structure.js +0 -342
  66. package/src/generators/vite/structures/simple-structure.js +0 -62
  67. package/src/generators/vite/styles/index-css.js +0 -130
  68. package/src/generators/vite/tailwind-config-generator.js +0 -14
  69. package/src/generators/vite/vite-config-generator.js +0 -22
  70. package/src/generators/vite/vite-project-generator.js +0 -263
  71. package/src/generators/vite-project-generator.js +0 -136
  72. package/src/prompts/index.js +0 -262
  73. package/src/types/index.js +0 -113
  74. package/src/utils/answer-helpers.js +0 -24
  75. package/src/utils/credits.js +0 -192
  76. package/src/utils/dependencies.js +0 -25
  77. 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
- ### Try it now (no installation required)
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
- await createApp();
91
+
92
+ // Create app with optional project name from CLI
93
+ await createApp(options.projectName);
10
94
  }
11
95
 
12
96
  main().catch((error) => {