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.
- package/.github/PUBLISH.md +58 -0
- package/.github/workflows/publish.yml +78 -0
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/dist/createProject.d.ts +2 -0
- package/dist/createProject.d.ts.map +1 -0
- package/dist/createProject.js +70 -0
- package/dist/createProject.js.map +1 -0
- package/dist/generators/cursorRules.d.ts +2 -0
- package/dist/generators/cursorRules.d.ts.map +1 -0
- package/dist/generators/cursorRules.js +35 -0
- package/dist/generators/cursorRules.js.map +1 -0
- package/dist/generators/docker.d.ts +3 -0
- package/dist/generators/docker.d.ts.map +1 -0
- package/dist/generators/docker.js +119 -0
- package/dist/generators/docker.js.map +1 -0
- package/dist/generators/envExample.d.ts +3 -0
- package/dist/generators/envExample.d.ts.map +1 -0
- package/dist/generators/envExample.js +39 -0
- package/dist/generators/envExample.js.map +1 -0
- package/dist/generators/eslint.d.ts +2 -0
- package/dist/generators/eslint.d.ts.map +1 -0
- package/dist/generators/eslint.js +32 -0
- package/dist/generators/eslint.js.map +1 -0
- package/dist/generators/githubActions.d.ts +3 -0
- package/dist/generators/githubActions.d.ts.map +1 -0
- package/dist/generators/githubActions.js +68 -0
- package/dist/generators/githubActions.js.map +1 -0
- package/dist/generators/gitignore.d.ts +2 -0
- package/dist/generators/gitignore.d.ts.map +1 -0
- package/dist/generators/gitignore.js +50 -0
- package/dist/generators/gitignore.js.map +1 -0
- package/dist/generators/index.d.ts +3 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +34 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/jest.d.ts +2 -0
- package/dist/generators/jest.d.ts.map +1 -0
- package/dist/generators/jest.js +23 -0
- package/dist/generators/jest.js.map +1 -0
- package/dist/generators/packageJson.d.ts +3 -0
- package/dist/generators/packageJson.d.ts.map +1 -0
- package/dist/generators/packageJson.js +80 -0
- package/dist/generators/packageJson.js.map +1 -0
- package/dist/generators/prettier.d.ts +2 -0
- package/dist/generators/prettier.d.ts.map +1 -0
- package/dist/generators/prettier.js +14 -0
- package/dist/generators/prettier.js.map +1 -0
- package/dist/generators/prisma.d.ts +3 -0
- package/dist/generators/prisma.d.ts.map +1 -0
- package/dist/generators/prisma.js +55 -0
- package/dist/generators/prisma.js.map +1 -0
- package/dist/generators/sourceFiles.d.ts +3 -0
- package/dist/generators/sourceFiles.d.ts.map +1 -0
- package/dist/generators/sourceFiles.js +767 -0
- package/dist/generators/sourceFiles.js.map +1 -0
- package/dist/generators/tsconfig.d.ts +2 -0
- package/dist/generators/tsconfig.d.ts.map +1 -0
- package/dist/generators/tsconfig.js +32 -0
- package/dist/generators/tsconfig.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +3 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +56 -0
- package/dist/prompts.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/parseArgs.d.ts +2 -0
- package/dist/utils/parseArgs.d.ts.map +1 -0
- package/dist/utils/parseArgs.js +6 -0
- package/dist/utils/parseArgs.js.map +1 -0
- package/package.json +46 -0
- package/src/createProject.ts +86 -0
- package/src/generators/cursorRules.ts +39 -0
- package/src/generators/docker.ts +131 -0
- package/src/generators/envExample.ts +49 -0
- package/src/generators/eslint.ts +38 -0
- package/src/generators/githubActions.ts +79 -0
- package/src/generators/gitignore.ts +52 -0
- package/src/generators/index.ts +45 -0
- package/src/generators/jest.ts +29 -0
- package/src/generators/packageJson.ts +89 -0
- package/src/generators/prettier.ts +22 -0
- package/src/generators/prisma.ts +66 -0
- package/src/generators/sourceFiles.ts +840 -0
- package/src/generators/tsconfig.ts +34 -0
- package/src/index.ts +45 -0
- package/src/prompts.ts +62 -0
- package/src/types.ts +11 -0
- package/src/utils/parseArgs.ts +6 -0
- package/tsconfig.json +21 -0
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|