create-coreback 1.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.
Files changed (96) hide show
  1. package/.github/PUBLISH.md +58 -0
  2. package/.github/workflows/publish.yml +78 -0
  3. package/LICENSE +21 -0
  4. package/README.md +62 -0
  5. package/dist/createProject.d.ts +2 -0
  6. package/dist/createProject.d.ts.map +1 -0
  7. package/dist/createProject.js +70 -0
  8. package/dist/createProject.js.map +1 -0
  9. package/dist/generators/cursorRules.d.ts +2 -0
  10. package/dist/generators/cursorRules.d.ts.map +1 -0
  11. package/dist/generators/cursorRules.js +35 -0
  12. package/dist/generators/cursorRules.js.map +1 -0
  13. package/dist/generators/docker.d.ts +3 -0
  14. package/dist/generators/docker.d.ts.map +1 -0
  15. package/dist/generators/docker.js +119 -0
  16. package/dist/generators/docker.js.map +1 -0
  17. package/dist/generators/envExample.d.ts +3 -0
  18. package/dist/generators/envExample.d.ts.map +1 -0
  19. package/dist/generators/envExample.js +39 -0
  20. package/dist/generators/envExample.js.map +1 -0
  21. package/dist/generators/eslint.d.ts +2 -0
  22. package/dist/generators/eslint.d.ts.map +1 -0
  23. package/dist/generators/eslint.js +32 -0
  24. package/dist/generators/eslint.js.map +1 -0
  25. package/dist/generators/githubActions.d.ts +3 -0
  26. package/dist/generators/githubActions.d.ts.map +1 -0
  27. package/dist/generators/githubActions.js +68 -0
  28. package/dist/generators/githubActions.js.map +1 -0
  29. package/dist/generators/gitignore.d.ts +2 -0
  30. package/dist/generators/gitignore.d.ts.map +1 -0
  31. package/dist/generators/gitignore.js +50 -0
  32. package/dist/generators/gitignore.js.map +1 -0
  33. package/dist/generators/index.d.ts +3 -0
  34. package/dist/generators/index.d.ts.map +1 -0
  35. package/dist/generators/index.js +34 -0
  36. package/dist/generators/index.js.map +1 -0
  37. package/dist/generators/jest.d.ts +2 -0
  38. package/dist/generators/jest.d.ts.map +1 -0
  39. package/dist/generators/jest.js +23 -0
  40. package/dist/generators/jest.js.map +1 -0
  41. package/dist/generators/packageJson.d.ts +3 -0
  42. package/dist/generators/packageJson.d.ts.map +1 -0
  43. package/dist/generators/packageJson.js +80 -0
  44. package/dist/generators/packageJson.js.map +1 -0
  45. package/dist/generators/prettier.d.ts +2 -0
  46. package/dist/generators/prettier.d.ts.map +1 -0
  47. package/dist/generators/prettier.js +14 -0
  48. package/dist/generators/prettier.js.map +1 -0
  49. package/dist/generators/prisma.d.ts +3 -0
  50. package/dist/generators/prisma.d.ts.map +1 -0
  51. package/dist/generators/prisma.js +55 -0
  52. package/dist/generators/prisma.js.map +1 -0
  53. package/dist/generators/sourceFiles.d.ts +3 -0
  54. package/dist/generators/sourceFiles.d.ts.map +1 -0
  55. package/dist/generators/sourceFiles.js +767 -0
  56. package/dist/generators/sourceFiles.js.map +1 -0
  57. package/dist/generators/tsconfig.d.ts +2 -0
  58. package/dist/generators/tsconfig.d.ts.map +1 -0
  59. package/dist/generators/tsconfig.js +32 -0
  60. package/dist/generators/tsconfig.js.map +1 -0
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +42 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/prompts.d.ts +3 -0
  66. package/dist/prompts.d.ts.map +1 -0
  67. package/dist/prompts.js +56 -0
  68. package/dist/prompts.js.map +1 -0
  69. package/dist/types.d.ts +10 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +2 -0
  72. package/dist/types.js.map +1 -0
  73. package/dist/utils/parseArgs.d.ts +2 -0
  74. package/dist/utils/parseArgs.d.ts.map +1 -0
  75. package/dist/utils/parseArgs.js +6 -0
  76. package/dist/utils/parseArgs.js.map +1 -0
  77. package/package.json +46 -0
  78. package/src/createProject.ts +86 -0
  79. package/src/generators/cursorRules.ts +39 -0
  80. package/src/generators/docker.ts +131 -0
  81. package/src/generators/envExample.ts +49 -0
  82. package/src/generators/eslint.ts +38 -0
  83. package/src/generators/githubActions.ts +79 -0
  84. package/src/generators/gitignore.ts +52 -0
  85. package/src/generators/index.ts +45 -0
  86. package/src/generators/jest.ts +29 -0
  87. package/src/generators/packageJson.ts +89 -0
  88. package/src/generators/prettier.ts +22 -0
  89. package/src/generators/prisma.ts +66 -0
  90. package/src/generators/sourceFiles.ts +840 -0
  91. package/src/generators/tsconfig.ts +34 -0
  92. package/src/index.ts +45 -0
  93. package/src/prompts.ts +62 -0
  94. package/src/types.ts +11 -0
  95. package/src/utils/parseArgs.ts +6 -0
  96. package/tsconfig.json +21 -0
@@ -0,0 +1,2 @@
1
+ export declare function generateGitIgnore(projectPath: string): Promise<void>;
2
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/generators/gitignore.ts"],"names":[],"mappings":"AAGA,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C1E"}
@@ -0,0 +1,50 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function generateGitIgnore(projectPath) {
4
+ const gitignore = `# Dependencies
5
+ node_modules/
6
+ .pnp
7
+ .pnp.js
8
+
9
+ # Testing
10
+ coverage/
11
+ .nyc_output
12
+
13
+ # Production
14
+ dist/
15
+ build/
16
+
17
+ # Environment variables
18
+ .env
19
+ .env.local
20
+ .env.*.local
21
+
22
+ # Logs
23
+ logs/
24
+ *.log
25
+ npm-debug.log*
26
+ yarn-debug.log*
27
+ yarn-error.log*
28
+ pnpm-debug.log*
29
+
30
+ # IDE
31
+ .vscode/
32
+ .idea/
33
+ *.swp
34
+ *.swo
35
+ *~
36
+
37
+ # OS
38
+ .DS_Store
39
+ Thumbs.db
40
+
41
+ # Prisma
42
+ *.db
43
+ *.db-journal
44
+
45
+ # TypeScript
46
+ *.tsbuildinfo
47
+ `;
48
+ await fs.writeFile(path.join(projectPath, '.gitignore'), gitignore);
49
+ }
50
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/generators/gitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CnB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfig } from '../types.js';
2
+ export declare function generateProjectFiles(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgB5C,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,34 @@
1
+ import { generatePackageJson } from './packageJson.js';
2
+ import { generateTsConfig } from './tsconfig.js';
3
+ import { generateEnvExample } from './envExample.js';
4
+ import { generateGitIgnore } from './gitignore.js';
5
+ import { generateEslintConfig } from './eslint.js';
6
+ import { generatePrettierConfig } from './prettier.js';
7
+ import { generateJestConfig } from './jest.js';
8
+ import { generateDockerFiles } from './docker.js';
9
+ import { generatePrismaSchema } from './prisma.js';
10
+ import { generateSourceFiles } from './sourceFiles.js';
11
+ import { generateGitHubActions } from './githubActions.js';
12
+ import { generateCursorRules } from './cursorRules.js';
13
+ export async function generateProjectFiles(projectPath, config) {
14
+ // Root files
15
+ await generatePackageJson(projectPath, config);
16
+ await generateTsConfig(projectPath);
17
+ await generateEnvExample(projectPath, config);
18
+ await generateGitIgnore(projectPath);
19
+ await generateEslintConfig(projectPath);
20
+ await generatePrettierConfig(projectPath);
21
+ await generateJestConfig(projectPath);
22
+ await generateCursorRules(projectPath);
23
+ // Docker
24
+ if (config.includeDocker) {
25
+ await generateDockerFiles(projectPath, config);
26
+ }
27
+ // Prisma
28
+ await generatePrismaSchema(projectPath, config);
29
+ // Source files
30
+ await generateSourceFiles(projectPath, config);
31
+ // GitHub Actions
32
+ await generateGitHubActions(projectPath, config);
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAqB;IAErB,aAAa;IACb,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpC,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEvC,SAAS;IACT,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,SAAS;IACT,MAAM,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhD,eAAe;IACf,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE/C,iBAAiB;IACjB,MAAM,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateJestConfig(projectPath: string): Promise<void>;
2
+ //# sourceMappingURL=jest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../src/generators/jest.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3E"}
@@ -0,0 +1,23 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function generateJestConfig(projectPath) {
4
+ const jestConfig = {
5
+ preset: 'ts-jest',
6
+ testEnvironment: 'node',
7
+ roots: ['<rootDir>/tests'],
8
+ testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
9
+ transform: {
10
+ '^.+\\.ts$': 'ts-jest',
11
+ },
12
+ collectCoverageFrom: [
13
+ 'src/**/*.ts',
14
+ '!src/**/*.d.ts',
15
+ '!src/index.ts',
16
+ ],
17
+ moduleNameMapper: {
18
+ '^@/(.*)$': '<rootDir>/src/$1',
19
+ },
20
+ };
21
+ await fs.writeJSON(path.join(projectPath, 'jest.config.js'), jestConfig, { spaces: 2 });
22
+ }
23
+ //# sourceMappingURL=jest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.js","sourceRoot":"","sources":["../../src/generators/jest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,CAAC,iBAAiB,CAAC;QAC1B,SAAS,EAAE,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;QAC9D,SAAS,EAAE;YACT,WAAW,EAAE,SAAS;SACvB;QACD,mBAAmB,EAAE;YACnB,aAAa;YACb,gBAAgB;YAChB,eAAe;SAChB;QACD,gBAAgB,EAAE;YAChB,UAAU,EAAE,kBAAkB;SAC/B;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EACxC,UAAU,EACV,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfig } from '../types.js';
2
+ export declare function generatePackageJson(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=packageJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAgFf"}
@@ -0,0 +1,80 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function generatePackageJson(projectPath, config) {
4
+ const dependencies = {
5
+ express: '^4.18.2',
6
+ 'express-rate-limit': '^7.1.5',
7
+ cors: '^2.8.5',
8
+ helmet: '^7.1.0',
9
+ compression: '^1.7.4',
10
+ dotenv: '^16.4.1',
11
+ zod: '^3.22.4',
12
+ winston: '^3.11.0',
13
+ '@prisma/client': '^5.9.1',
14
+ 'swagger-jsdoc': '^6.2.8',
15
+ 'swagger-ui-express': '^5.0.0',
16
+ };
17
+ if (config.includeAuth) {
18
+ dependencies['jsonwebtoken'] = '^9.0.2';
19
+ dependencies['bcrypt'] = '^5.1.1';
20
+ }
21
+ const devDependencies = {
22
+ '@types/express': '^4.17.21',
23
+ '@types/cors': '^2.8.17',
24
+ '@types/compression': '^1.7.5',
25
+ '@types/node': '^20.11.5',
26
+ '@types/jsonwebtoken': '^9.0.5',
27
+ '@types/bcrypt': '^5.0.2',
28
+ '@types/swagger-jsdoc': '^6.0.4',
29
+ '@types/swagger-ui-express': '^4.1.6',
30
+ '@types/jest': '^29.5.11',
31
+ '@types/supertest': '^6.0.2',
32
+ '@typescript-eslint/eslint-plugin': '^6.19.1',
33
+ '@typescript-eslint/parser': '^6.19.1',
34
+ eslint: '^8.56.0',
35
+ prettier: '^3.2.4',
36
+ 'ts-jest': '^29.1.2',
37
+ jest: '^29.7.0',
38
+ supertest: '^6.3.4',
39
+ tsx: '^4.7.1',
40
+ typescript: '^5.3.3',
41
+ prisma: '^5.9.1',
42
+ };
43
+ const packageJson = {
44
+ name: config.projectName,
45
+ version: '1.0.0',
46
+ description: 'Production-ready backend API',
47
+ main: 'dist/index.js',
48
+ scripts: {
49
+ dev: 'tsx watch src/index.ts',
50
+ build: 'tsc',
51
+ start: 'node dist/index.js',
52
+ lint: 'eslint src --ext .ts',
53
+ 'lint:fix': 'eslint src --ext .ts --fix',
54
+ format: 'prettier --write "src/**/*.ts"',
55
+ test: 'jest',
56
+ 'test:watch': 'jest --watch',
57
+ 'test:coverage': 'jest --coverage',
58
+ 'db:push': 'prisma db push',
59
+ 'db:migrate': 'prisma migrate dev',
60
+ 'db:studio': 'prisma studio',
61
+ 'db:generate': 'prisma generate',
62
+ ...(config.includeDocker && {
63
+ 'docker:up': 'docker-compose up -d',
64
+ 'docker:down': 'docker-compose down',
65
+ }),
66
+ },
67
+ keywords: ['backend', 'api', 'express', 'typescript'],
68
+ author: '',
69
+ license: 'MIT',
70
+ dependencies,
71
+ devDependencies,
72
+ engines: {
73
+ node: '>=20.0.0',
74
+ },
75
+ };
76
+ await fs.writeJSON(path.join(projectPath, 'package.json'), packageJson, {
77
+ spaces: 2,
78
+ });
79
+ }
80
+ //# sourceMappingURL=packageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../src/generators/packageJson.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,MAAqB;IAErB,MAAM,YAAY,GAA2B;QAC3C,OAAO,EAAE,SAAS;QAClB,oBAAoB,EAAE,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,SAAS;QACjB,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,SAAS;QAClB,gBAAgB,EAAE,QAAQ;QAC1B,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,QAAQ;KAC/B,CAAC;IAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;QACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,MAAM,eAAe,GAA2B;QAC9C,gBAAgB,EAAE,UAAU;QAC5B,aAAa,EAAE,SAAS;QACxB,oBAAoB,EAAE,QAAQ;QAC9B,aAAa,EAAE,UAAU;QACzB,qBAAqB,EAAE,QAAQ;QAC/B,eAAe,EAAE,QAAQ;QACzB,sBAAsB,EAAE,QAAQ;QAChC,2BAA2B,EAAE,QAAQ;QACrC,aAAa,EAAE,UAAU;QACzB,kBAAkB,EAAE,QAAQ;QAC5B,kCAAkC,EAAE,SAAS;QAC7C,2BAA2B,EAAE,SAAS;QACtC,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,QAAQ;QACnB,GAAG,EAAE,QAAQ;QACb,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACjB,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACP,GAAG,EAAE,wBAAwB;YAC7B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,4BAA4B;YACxC,MAAM,EAAE,gCAAgC;YACxC,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc;YAC5B,eAAe,EAAE,iBAAiB;YAClC,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,iBAAiB;YAChC,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI;gBAC1B,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,qBAAqB;aACrC,CAAC;SACH;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;QACrD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;QACd,YAAY;QACZ,eAAe;QACf,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;SACjB;KACF,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,WAAW,EAAE;QACtE,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generatePrettierConfig(projectPath: string): Promise<void>;
2
+ //# sourceMappingURL=prettier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier.d.ts","sourceRoot":"","sources":["../../src/generators/prettier.ts"],"names":[],"mappings":"AAGA,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -0,0 +1,14 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function generatePrettierConfig(projectPath) {
4
+ const prettierConfig = {
5
+ semi: true,
6
+ trailingComma: 'es5',
7
+ singleQuote: true,
8
+ printWidth: 80,
9
+ tabWidth: 2,
10
+ useTabs: false,
11
+ };
12
+ await fs.writeJSON(path.join(projectPath, '.prettierrc'), prettierConfig, { spaces: 2 });
13
+ }
14
+ //# sourceMappingURL=prettier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier.js","sourceRoot":"","sources":["../../src/generators/prettier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAmB;IAEnB,MAAM,cAAc,GAAG;QACrB,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,KAAc;QAC7B,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,EACrC,cAAc,EACd,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfig } from '../types.js';
2
+ export declare function generatePrismaSchema(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=prisma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -0,0 +1,55 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ export async function generatePrismaSchema(projectPath, config) {
4
+ const prismaDir = path.join(projectPath, 'prisma');
5
+ await fs.ensureDir(prismaDir);
6
+ let provider = '';
7
+ let url = '';
8
+ switch (config.database) {
9
+ case 'postgresql':
10
+ provider = 'postgresql';
11
+ url = 'env("DATABASE_URL")';
12
+ break;
13
+ case 'mysql':
14
+ provider = 'mysql';
15
+ url = 'env("DATABASE_URL")';
16
+ break;
17
+ case 'mongodb':
18
+ provider = 'mongodb';
19
+ url = 'env("DATABASE_URL")';
20
+ break;
21
+ case 'sqlite':
22
+ provider = 'sqlite';
23
+ url = 'env("DATABASE_URL")';
24
+ break;
25
+ }
26
+ let schema = `// This is your Prisma schema file,
27
+ // learn more about it in the docs: https://pris.ly/d/prisma-schema
28
+
29
+ generator client {
30
+ provider = "prisma-client-js"
31
+ }
32
+
33
+ datasource db {
34
+ provider = "${provider}"
35
+ url = ${url}
36
+ }
37
+
38
+ model User {
39
+ id String @id @default(cuid())
40
+ email String @unique
41
+ name String?
42
+ createdAt DateTime @default(now())
43
+ updatedAt DateTime @updatedAt
44
+ `;
45
+ if (config.includeAuth) {
46
+ schema += ` password String
47
+ `;
48
+ }
49
+ schema += `
50
+ @@map("users")
51
+ }
52
+ `;
53
+ await fs.writeFile(path.join(prismaDir, 'schema.prisma'), schema);
54
+ }
55
+ //# sourceMappingURL=prisma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generators/prisma.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,MAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,QAAQ,GAAG,YAAY,CAAC;YACxB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,QAAQ,GAAG,OAAO,CAAC;YACnB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,QAAQ,CAAC;YACpB,GAAG,GAAG,qBAAqB,CAAC;YAC5B,MAAM;IACV,CAAC;IAED,IAAI,MAAM,GAAG;;;;;;;;gBAQC,QAAQ;eACT,GAAG;;;;;;;;;CASjB,CAAC;IAEA,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI;CACb,CAAC;IACA,CAAC;IAED,MAAM,IAAI;;;CAGX,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfig } from '../types.js';
2
+ export declare function generateSourceFiles(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=sourceFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceFiles.d.ts","sourceRoot":"","sources":["../../src/generators/sourceFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}