create-turbo-mono 1.0.0

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 (54) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/README.md +182 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +118 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/scaffold.d.ts +8 -0
  8. package/dist/scaffold.d.ts.map +1 -0
  9. package/dist/scaffold.js +42 -0
  10. package/dist/scaffold.js.map +1 -0
  11. package/dist/templates/backend.d.ts +2 -0
  12. package/dist/templates/backend.d.ts.map +1 -0
  13. package/dist/templates/backend.js +424 -0
  14. package/dist/templates/backend.js.map +1 -0
  15. package/dist/templates/cicd.d.ts +3 -0
  16. package/dist/templates/cicd.d.ts.map +1 -0
  17. package/dist/templates/cicd.js +307 -0
  18. package/dist/templates/cicd.js.map +1 -0
  19. package/dist/templates/docker.d.ts +3 -0
  20. package/dist/templates/docker.d.ts.map +1 -0
  21. package/dist/templates/docker.js +458 -0
  22. package/dist/templates/docker.js.map +1 -0
  23. package/dist/templates/docs.d.ts +3 -0
  24. package/dist/templates/docs.d.ts.map +1 -0
  25. package/dist/templates/docs.js +71 -0
  26. package/dist/templates/docs.js.map +1 -0
  27. package/dist/templates/frontend.d.ts +2 -0
  28. package/dist/templates/frontend.d.ts.map +1 -0
  29. package/dist/templates/frontend.js +441 -0
  30. package/dist/templates/frontend.js.map +1 -0
  31. package/dist/templates/root.d.ts +3 -0
  32. package/dist/templates/root.d.ts.map +1 -0
  33. package/dist/templates/root.js +210 -0
  34. package/dist/templates/root.js.map +1 -0
  35. package/dist/templates/shared.d.ts +2 -0
  36. package/dist/templates/shared.d.ts.map +1 -0
  37. package/dist/templates/shared.js +696 -0
  38. package/dist/templates/shared.js.map +1 -0
  39. package/dist/utils.d.ts +5 -0
  40. package/dist/utils.d.ts.map +1 -0
  41. package/dist/utils.js +34 -0
  42. package/dist/utils.js.map +1 -0
  43. package/package.json +40 -0
  44. package/src/index.ts +138 -0
  45. package/src/scaffold.ts +51 -0
  46. package/src/templates/backend.ts +460 -0
  47. package/src/templates/cicd.ts +334 -0
  48. package/src/templates/docker.ts +503 -0
  49. package/src/templates/docs.ts +74 -0
  50. package/src/templates/frontend.ts +469 -0
  51. package/src/templates/root.ts +216 -0
  52. package/src/templates/shared.ts +820 -0
  53. package/src/utils.ts +31 -0
  54. package/tsconfig.json +20 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/templates/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function checkPnpmInstalled(): Promise<boolean>;
2
+ export declare function installDependencies(targetDir: string): Promise<void>;
3
+ export declare function toPascalCase(str: string): string;
4
+ export declare function toKebabCase(str: string): string;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C"}
package/dist/utils.js ADDED
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkPnpmInstalled = checkPnpmInstalled;
4
+ exports.installDependencies = installDependencies;
5
+ exports.toPascalCase = toPascalCase;
6
+ exports.toKebabCase = toKebabCase;
7
+ const child_process_1 = require("child_process");
8
+ const util_1 = require("util");
9
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
10
+ async function checkPnpmInstalled() {
11
+ try {
12
+ await execAsync('pnpm --version');
13
+ return true;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }
19
+ async function installDependencies(targetDir) {
20
+ await execAsync('pnpm install', { cwd: targetDir });
21
+ }
22
+ function toPascalCase(str) {
23
+ return str
24
+ .split(/[-_\s]/)
25
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
26
+ .join('');
27
+ }
28
+ function toKebabCase(str) {
29
+ return str
30
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
31
+ .replace(/[\s_]+/g, '-')
32
+ .toLowerCase();
33
+ }
34
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAKA,gDAOC;AAED,kDAEC;AAED,oCAKC;AAED,kCAKC;AA9BD,iDAAqC;AACrC,+BAAiC;AAEjC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAE3B,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACzD,MAAM,SAAS,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "create-turbo-mono",
3
+ "version": "1.0.0",
4
+ "description": "CLI tool to scaffold a monorepo with NestJS backends and Next.js frontends",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "create-repo": "./dist/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "tsc --watch",
12
+ "prepublishOnly": "npm run build"
13
+ },
14
+ "keywords": [
15
+ "cli",
16
+ "monorepo",
17
+ "turborepo",
18
+ "nestjs",
19
+ "nextjs",
20
+ "scaffold"
21
+ ],
22
+ "author": "Abdul Ahad",
23
+ "license": "MIT",
24
+ "dependencies": {
25
+ "commander": "^11.1.0",
26
+ "prompts": "^2.4.2",
27
+ "fs-extra": "^11.2.0",
28
+ "chalk": "^4.1.2",
29
+ "ora": "^5.4.1"
30
+ },
31
+ "devDependencies": {
32
+ "@types/node": "^20.10.6",
33
+ "@types/prompts": "^2.4.9",
34
+ "@types/fs-extra": "^11.0.4",
35
+ "typescript": "^5.3.3"
36
+ },
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ }
40
+ }
package/src/index.ts ADDED
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { Command } from 'commander';
4
+ import prompts from 'prompts';
5
+ import path from 'path';
6
+ import fs from 'fs-extra';
7
+ import chalk from 'chalk';
8
+ import ora from 'ora';
9
+ import { scaffoldProject } from './scaffold';
10
+ import { installDependencies, checkPnpmInstalled } from './utils';
11
+
12
+ const program = new Command();
13
+
14
+ interface ProjectConfig {
15
+ projectName: string;
16
+ targetDir: string;
17
+ backends: string[];
18
+ frontends: string[];
19
+ }
20
+
21
+ program
22
+ .name('create-repo')
23
+ .description('Create a new monorepo with NestJS and Next.js apps')
24
+ .argument('[project-name]', 'Name of the project')
25
+ .action(async (projectName?: string) => {
26
+ console.log(chalk.blue.bold('\n🚀 Welcome to Monorepo Generator!\n'));
27
+
28
+ const questions: prompts.PromptObject[] = [];
29
+
30
+ if (!projectName) {
31
+ questions.push({
32
+ type: 'text',
33
+ name: 'projectName',
34
+ message: 'What is your project name?',
35
+ initial: 'my-monorepo',
36
+ validate: (value: string) =>
37
+ value.length > 0 ? true : 'Project name is required',
38
+ });
39
+ }
40
+
41
+ questions.push(
42
+ {
43
+ type: 'list',
44
+ name: 'backends',
45
+ message: 'Enter backend app names (comma-separated):',
46
+ initial: 'api',
47
+ separator: ',',
48
+ format: (val: string[]) => val.map(v => v.trim()).filter(Boolean),
49
+ },
50
+ {
51
+ type: 'list',
52
+ name: 'frontends',
53
+ message: 'Enter frontend app names (comma-separated):',
54
+ initial: 'web',
55
+ separator: ',',
56
+ format: (val: string[]) => val.map(v => v.trim()).filter(Boolean),
57
+ }
58
+ );
59
+
60
+ const answers = await prompts(questions, {
61
+ onCancel: () => {
62
+ console.log(chalk.red('\n❌ Operation cancelled'));
63
+ process.exit(0);
64
+ },
65
+ });
66
+
67
+ const config: ProjectConfig = {
68
+ projectName: projectName || answers.projectName,
69
+ targetDir: path.join(process.cwd(), projectName || answers.projectName),
70
+ backends: answers.backends,
71
+ frontends: answers.frontends,
72
+ };
73
+
74
+ // Check if directory exists
75
+ if (fs.existsSync(config.targetDir)) {
76
+ const { overwrite } = await prompts({
77
+ type: 'confirm',
78
+ name: 'overwrite',
79
+ message: `Directory ${chalk.yellow(config.projectName)} already exists. Overwrite?`,
80
+ initial: false,
81
+ });
82
+
83
+ if (!overwrite) {
84
+ console.log(chalk.red('\n❌ Operation cancelled'));
85
+ process.exit(0);
86
+ }
87
+
88
+ await fs.remove(config.targetDir);
89
+ }
90
+
91
+ console.log(chalk.green('\n✨ Creating your monorepo...\n'));
92
+ console.log(chalk.gray(`📦 Project: ${config.projectName}`));
93
+ console.log(chalk.gray(`📂 Backends: ${config.backends.join(', ')}`));
94
+ console.log(chalk.gray(`🎨 Frontends: ${config.frontends.join(', ')}\n`));
95
+
96
+ const spinner = ora('Scaffolding project...').start();
97
+
98
+ try {
99
+ await scaffoldProject(config);
100
+ spinner.succeed('Project scaffolded successfully!');
101
+
102
+ // Check if pnpm is installed
103
+ const hasPnpm = await checkPnpmInstalled();
104
+
105
+ if (hasPnpm) {
106
+ spinner.start('Installing dependencies...');
107
+ try {
108
+ await installDependencies(config.targetDir);
109
+ spinner.succeed('Dependencies installed!');
110
+ } catch (error) {
111
+ spinner.warn('Failed to install dependencies');
112
+ console.log(chalk.yellow('\n⚠️ Could not install dependencies automatically.'));
113
+ console.log(chalk.yellow(' Please run manually: cd ' + config.projectName + ' && pnpm install\n'));
114
+ }
115
+ } else {
116
+ spinner.warn('pnpm not found - skipping dependency installation');
117
+ console.log(chalk.yellow('\n⚠️ pnpm is not installed. Install it with:'));
118
+ console.log(chalk.yellow(' npm install -g pnpm\n'));
119
+ }
120
+
121
+ console.log(chalk.green.bold('\n✅ Your monorepo is ready!\n'));
122
+ console.log(chalk.blue('📖 Next steps:\n'));
123
+ console.log(chalk.gray(` cd ${config.projectName}`));
124
+ if (!hasPnpm) {
125
+ console.log(chalk.yellow(' npm install -g pnpm # Install pnpm first'));
126
+ }
127
+ console.log(chalk.gray(' pnpm install # Install dependencies'));
128
+ console.log(chalk.gray(' pnpm db:generate # Generate Prisma client'));
129
+ console.log(chalk.gray(' pnpm dev # Start all apps'));
130
+ console.log(chalk.gray(' pnpm build # Build all apps\n'));
131
+ } catch (error) {
132
+ spinner.fail('Failed to create project');
133
+ console.error(chalk.red(error));
134
+ process.exit(1);
135
+ }
136
+ });
137
+
138
+ program.parse();
@@ -0,0 +1,51 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { createRootFiles } from './templates/root';
4
+ import { createBackendApp } from './templates/backend';
5
+ import { createFrontendApp } from './templates/frontend';
6
+ import { createSharedPackages } from './templates/shared';
7
+ import { createDockerFiles } from './templates/docker';
8
+ import { createCICDFiles } from './templates/cicd';
9
+ import { createDocumentation } from './templates/docs';
10
+
11
+ export interface ProjectConfig {
12
+ projectName: string;
13
+ targetDir: string;
14
+ backends: string[];
15
+ frontends: string[];
16
+ }
17
+
18
+ export async function scaffoldProject(config: ProjectConfig): Promise<void> {
19
+ const { targetDir, backends, frontends } = config;
20
+
21
+ // Create directory structure
22
+ await fs.ensureDir(targetDir);
23
+ await fs.ensureDir(path.join(targetDir, 'apps', 'backend'));
24
+ await fs.ensureDir(path.join(targetDir, 'apps', 'frontend'));
25
+ await fs.ensureDir(path.join(targetDir, 'packages'));
26
+
27
+ // Create root configuration files
28
+ await createRootFiles(config);
29
+
30
+ // Create backend apps
31
+ for (const backendName of backends) {
32
+ await createBackendApp(targetDir, backendName);
33
+ }
34
+
35
+ // Create frontend apps
36
+ for (const frontendName of frontends) {
37
+ await createFrontendApp(targetDir, frontendName);
38
+ }
39
+
40
+ // Create shared packages
41
+ await createSharedPackages(targetDir);
42
+
43
+ // Create Docker files
44
+ await createDockerFiles(config);
45
+
46
+ // Create CI/CD files
47
+ await createCICDFiles(config);
48
+
49
+ // Create documentation
50
+ await createDocumentation(config);
51
+ }