@idealyst/cli 1.0.36 → 1.0.38
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/dist/generators/api.js +3 -4
- package/dist/generators/api.js.map +1 -1
- package/dist/generators/database.js +32 -0
- package/dist/generators/database.js.map +1 -0
- package/dist/generators/index.js +5 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/utils.js +2 -1
- package/dist/generators/utils.js.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/templates/api/.env.example +6 -0
- package/dist/templates/api/README.md +25 -35
- package/dist/templates/api/package.json +0 -8
- package/dist/templates/api/src/context.ts +4 -8
- package/dist/templates/database/.env.example +8 -0
- package/dist/templates/database/README.md +93 -0
- package/dist/templates/database/__tests__/database.test.ts +14 -0
- package/dist/templates/database/jest.config.js +19 -0
- package/dist/templates/database/jest.setup.js +11 -0
- package/dist/templates/database/package.json +61 -0
- package/dist/templates/{api → database}/prisma/schema.prisma +1 -1
- package/dist/templates/database/prisma/seed.ts +28 -0
- package/dist/templates/database/src/client.ts +18 -0
- package/dist/templates/database/src/index.ts +11 -0
- package/dist/templates/database/src/schemas.ts +26 -0
- package/dist/templates/database/tsconfig.json +32 -0
- package/dist/templates/workspace/.devcontainer/Dockerfile +23 -0
- package/dist/templates/workspace/.devcontainer/README.md +0 -0
- package/dist/templates/workspace/.devcontainer/devcontainer.json +71 -99
- package/dist/templates/workspace/.devcontainer/docker-compose.yml +19 -46
- package/dist/templates/workspace/.devcontainer/fix-permissions.sh +0 -0
- package/dist/templates/workspace/.devcontainer/post-create.sh +0 -89
- package/dist/templates/workspace/.devcontainer/setup.sh +64 -0
- package/dist/templates/workspace/Dockerfile +24 -6
- package/dist/types/generators/database.d.ts +2 -0
- package/dist/types/generators/index.d.ts +1 -0
- package/dist/types/types.d.ts +1 -1
- package/package.json +8 -3
- package/templates/api/.env.example +6 -0
- package/templates/api/README.md +25 -35
- package/templates/api/package.json +0 -8
- package/templates/api/src/context.ts +4 -8
- package/templates/database/.env.example +8 -0
- package/templates/database/README.md +93 -0
- package/templates/database/__tests__/database.test.ts +14 -0
- package/templates/database/jest.config.js +19 -0
- package/templates/database/jest.setup.js +11 -0
- package/templates/database/package.json +61 -0
- package/templates/{api → database}/prisma/schema.prisma +1 -1
- package/templates/database/prisma/seed.ts +28 -0
- package/templates/database/src/client.ts +18 -0
- package/templates/database/src/index.ts +11 -0
- package/templates/database/src/schemas.ts +26 -0
- package/templates/database/tsconfig.json +32 -0
- package/templates/workspace/.devcontainer/Dockerfile +4 -6
- package/templates/workspace/.devcontainer/README.md +0 -0
- package/templates/workspace/.devcontainer/docker-compose.yml +13 -27
- package/templates/workspace/.devcontainer/fix-permissions.sh +0 -0
- package/templates/workspace/.devcontainer/post-create.sh +0 -0
- package/dist/templates/api/env.example +0 -12
- package/dist/templates/workspace/.env.production +0 -56
- package/dist/templates/workspace/scripts/docker-build.sh +0 -151
- package/templates/api/env.example +0 -12
package/dist/generators/api.js
CHANGED
|
@@ -15,19 +15,18 @@ async function generateApiProject(options) {
|
|
|
15
15
|
console.log(chalk_1.default.blue(`🚀 Creating API project: ${name}`));
|
|
16
16
|
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
17
17
|
const templatePath = path_1.default.join(__dirname, '..', 'templates', 'api');
|
|
18
|
-
const templateData = (0, utils_1.getTemplateData)(name, `
|
|
18
|
+
const templateData = (0, utils_1.getTemplateData)(name, `API server template with tRPC and Express`, undefined, workspaceScope || undefined);
|
|
19
19
|
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
20
20
|
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
21
21
|
await (0, utils_1.updateWorkspacePackageJson)(workspacePath, directory);
|
|
22
22
|
console.log(chalk_1.default.green('✅ API project created successfully!'));
|
|
23
23
|
console.log(chalk_1.default.blue('📋 Project includes:'));
|
|
24
24
|
console.log(chalk_1.default.white(' • tRPC for type-safe APIs'));
|
|
25
|
-
console.log(chalk_1.default.white(' • Prisma for database management'));
|
|
26
25
|
console.log(chalk_1.default.white(' • Zod for schema validation'));
|
|
27
26
|
console.log(chalk_1.default.white(' • Express.js server'));
|
|
28
27
|
console.log(chalk_1.default.white(' • TypeScript configuration'));
|
|
29
28
|
console.log(chalk_1.default.white(' • CORS and middleware setup'));
|
|
30
|
-
console.log(chalk_1.default.white(' •
|
|
31
|
-
console.log(chalk_1.default.white(' •
|
|
29
|
+
console.log(chalk_1.default.white(' • Clean template ready for your endpoints'));
|
|
30
|
+
console.log(chalk_1.default.white(' • Example controllers and routing'));
|
|
32
31
|
}
|
|
33
32
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":";;;;;AAKA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/generators/api.ts"],"names":[],"mappings":";;;;;AAKA,gDA2BC;AAhCD,gDAAwB;AACxB,kDAA0B;AAE1B,mCAAkJ;AAE3I,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,2CAA2C,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAEhI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateDatabaseProject = generateDatabaseProject;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
async function generateDatabaseProject(options) {
|
|
11
|
+
const { name, directory, skipInstall } = options;
|
|
12
|
+
if (!(0, utils_1.validateProjectName)(name)) {
|
|
13
|
+
throw new Error(`Invalid project name: ${name}`);
|
|
14
|
+
}
|
|
15
|
+
console.log(chalk_1.default.blue(`🗄️ Creating Database project: ${name}`));
|
|
16
|
+
const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
|
|
17
|
+
const templatePath = path_1.default.join(__dirname, '..', 'templates', 'database');
|
|
18
|
+
const templateData = (0, utils_1.getTemplateData)(name, `Database models and client library with Prisma`, undefined, workspaceScope || undefined);
|
|
19
|
+
await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
|
|
20
|
+
await (0, utils_1.installDependencies)(projectPath, skipInstall);
|
|
21
|
+
await (0, utils_1.updateWorkspacePackageJson)(workspacePath, directory);
|
|
22
|
+
console.log(chalk_1.default.green('✅ Database project created successfully!'));
|
|
23
|
+
console.log(chalk_1.default.blue('📋 Project includes:'));
|
|
24
|
+
console.log(chalk_1.default.white(' • Prisma for database management'));
|
|
25
|
+
console.log(chalk_1.default.white(' • TypeScript configuration'));
|
|
26
|
+
console.log(chalk_1.default.white(' • Database migration scripts'));
|
|
27
|
+
console.log(chalk_1.default.white(' • Exportable client and models'));
|
|
28
|
+
console.log(chalk_1.default.white(' • Zod schemas for validation'));
|
|
29
|
+
console.log(chalk_1.default.white(' • Clean template ready for your models'));
|
|
30
|
+
console.log(chalk_1.default.white(' • Shared database types for client consumption'));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":";;;;;AAKA,0DA2BC;AAhCD,gDAAwB;AACxB,kDAA0B;AAE1B,mCAAkJ;AAE3I,KAAK,UAAU,uBAAuB,CAAC,OAA+B;IAC3E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAEzE,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,gDAAgD,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAErI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
package/dist/generators/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const web_1 = require("./web");
|
|
|
20
20
|
const shared_1 = require("./shared");
|
|
21
21
|
const workspace_1 = require("./workspace");
|
|
22
22
|
const api_1 = require("./api");
|
|
23
|
+
const database_1 = require("./database");
|
|
23
24
|
async function generateProject(options) {
|
|
24
25
|
const { type } = options;
|
|
25
26
|
switch (type) {
|
|
@@ -38,6 +39,9 @@ async function generateProject(options) {
|
|
|
38
39
|
case 'api':
|
|
39
40
|
await (0, api_1.generateApiProject)(options);
|
|
40
41
|
break;
|
|
42
|
+
case 'database':
|
|
43
|
+
await (0, database_1.generateDatabaseProject)(options);
|
|
44
|
+
break;
|
|
41
45
|
default:
|
|
42
46
|
throw new Error(`Unknown project type: ${type}`);
|
|
43
47
|
}
|
|
@@ -47,4 +51,5 @@ __exportStar(require("./web"), exports);
|
|
|
47
51
|
__exportStar(require("./shared"), exports);
|
|
48
52
|
__exportStar(require("./workspace"), exports);
|
|
49
53
|
__exportStar(require("./api"), exports);
|
|
54
|
+
__exportStar(require("./database"), exports);
|
|
50
55
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAQA,0CAyBC;AAhCD,qCAAiD;AACjD,+BAA2C;AAC3C,qCAAiD;AACjD,2CAAgD;AAChD,+BAA2C;AAC3C,yCAAqD;AAE9C,KAAK,UAAU,eAAe,CAAC,OAA+B;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,MAAM,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,KAAK;YACR,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,WAAW;YACd,MAAM,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,KAAK;YACR,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,KAAK,UAAU;YACb,MAAM,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;YACvC,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B;AAC5B,wCAAsB;AACtB,6CAA2B"}
|
package/dist/generators/utils.js
CHANGED
|
@@ -394,7 +394,8 @@ async function promptForProjectType() {
|
|
|
394
394
|
{ name: 'React Native App', value: 'native' },
|
|
395
395
|
{ name: 'React Web App', value: 'web' },
|
|
396
396
|
{ name: 'Shared Library', value: 'shared' },
|
|
397
|
-
{ name: 'API Server (tRPC +
|
|
397
|
+
{ name: 'API Server (tRPC + Express)', value: 'api' },
|
|
398
|
+
{ name: 'Database (Prisma + Zod)', value: 'database' }
|
|
398
399
|
],
|
|
399
400
|
default: 'native'
|
|
400
401
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/generators/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/generators/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -49,7 +49,7 @@ program
|
|
|
49
49
|
program
|
|
50
50
|
.command('create [project-name]')
|
|
51
51
|
.description('Create a new Idealyst project')
|
|
52
|
-
.option('-t, --type <type>', 'Project type: native, web, shared, or
|
|
52
|
+
.option('-t, --type <type>', 'Project type: native, web, shared, api, or database')
|
|
53
53
|
.option('-d, --directory <directory>', 'Output directory', '.')
|
|
54
54
|
.option('-a, --app-name <app-name>', 'Display name for native apps (e.g., "My Awesome App")')
|
|
55
55
|
.option('--with-trpc', 'Include tRPC boilerplate and setup (for web/native projects)')
|
|
@@ -75,7 +75,7 @@ program
|
|
|
75
75
|
if (!projectType) {
|
|
76
76
|
projectType = await (0, utils_1.promptForProjectType)();
|
|
77
77
|
}
|
|
78
|
-
const validTypes = ['native', 'web', 'shared', 'api'];
|
|
78
|
+
const validTypes = ['native', 'web', 'shared', 'api', 'database'];
|
|
79
79
|
if (!validTypes.includes(projectType)) {
|
|
80
80
|
console.error(chalk_1.default.red(`Invalid project type: ${projectType}`));
|
|
81
81
|
console.error(chalk_1.default.yellow(`Valid types are: ${validTypes.join(', ')}`));
|
|
@@ -115,8 +115,15 @@ program
|
|
|
115
115
|
console.log(chalk_1.default.yellow('\n🚀 Next steps for API Server:'));
|
|
116
116
|
console.log(chalk_1.default.white(' cd packages/' + projectName));
|
|
117
117
|
console.log(chalk_1.default.white(' yarn dev # Start development server'));
|
|
118
|
+
console.log(chalk_1.default.white(' yarn build # Build for production'));
|
|
119
|
+
}
|
|
120
|
+
else if (projectType === 'database') {
|
|
121
|
+
console.log(chalk_1.default.yellow('\n🗄️ Next steps for Database:'));
|
|
122
|
+
console.log(chalk_1.default.white(' cd packages/' + projectName));
|
|
123
|
+
console.log(chalk_1.default.white(' yarn db:generate # Generate Prisma client'));
|
|
118
124
|
console.log(chalk_1.default.white(' yarn db:push # Push database schema'));
|
|
119
125
|
console.log(chalk_1.default.white(' yarn db:studio # Open Prisma Studio'));
|
|
126
|
+
console.log(chalk_1.default.white(' yarn build # Build for export to other packages'));
|
|
120
127
|
}
|
|
121
128
|
else {
|
|
122
129
|
console.log(chalk_1.default.yellow('\n📦 Next steps for Shared Library:'));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAqD;AAErD,8CAA4H;AAE5H,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
This API project is built with:
|
|
6
6
|
- **tRPC** - End-to-end typesafe APIs
|
|
7
|
-
- **Prisma** - Modern database toolkit
|
|
8
7
|
- **Zod** - TypeScript-first schema validation
|
|
9
8
|
- **Express.js** - Web framework for Node.js
|
|
10
9
|
- **TypeScript** - Type-safe JavaScript
|
|
@@ -13,7 +12,7 @@ This API project is built with:
|
|
|
13
12
|
|
|
14
13
|
1. **Setup environment variables:**
|
|
15
14
|
```bash
|
|
16
|
-
cp env.example .env
|
|
15
|
+
cp .env.example .env
|
|
17
16
|
```
|
|
18
17
|
|
|
19
18
|
2. **Install dependencies:**
|
|
@@ -21,19 +20,7 @@ This API project is built with:
|
|
|
21
20
|
yarn install
|
|
22
21
|
```
|
|
23
22
|
|
|
24
|
-
3. **
|
|
25
|
-
```bash
|
|
26
|
-
# Generate Prisma client
|
|
27
|
-
yarn db:generate
|
|
28
|
-
|
|
29
|
-
# Push schema to database (for development)
|
|
30
|
-
yarn db:push
|
|
31
|
-
|
|
32
|
-
# Or run migrations (for production)
|
|
33
|
-
yarn db:migrate
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
4. **Start development server:**
|
|
23
|
+
3. **Start development server:**
|
|
37
24
|
```bash
|
|
38
25
|
yarn dev
|
|
39
26
|
```
|
|
@@ -45,11 +32,6 @@ The API will be available at `http://localhost:3000`
|
|
|
45
32
|
- `yarn dev` - Start development server with hot reload
|
|
46
33
|
- `yarn build` - Build for production
|
|
47
34
|
- `yarn start` - Start production server
|
|
48
|
-
- `yarn db:generate` - Generate Prisma client
|
|
49
|
-
- `yarn db:push` - Push schema changes to database
|
|
50
|
-
- `yarn db:studio` - Open Prisma Studio (database GUI)
|
|
51
|
-
- `yarn db:migrate` - Run database migrations
|
|
52
|
-
- `yarn db:reset` - Reset database and run all migrations
|
|
53
35
|
- `yarn lint` - Run ESLint
|
|
54
36
|
- `yarn type-check` - Run TypeScript type checking
|
|
55
37
|
|
|
@@ -67,13 +49,21 @@ All tRPC routes are available at `/trpc/[procedure]`
|
|
|
67
49
|
- `GET /` - API information
|
|
68
50
|
- `GET /health` - Health check
|
|
69
51
|
|
|
70
|
-
## Database
|
|
52
|
+
## Connecting to a Database
|
|
71
53
|
|
|
72
|
-
|
|
54
|
+
For database functionality, create a separate database package using:
|
|
55
|
+
```bash
|
|
56
|
+
idealyst create my-database --type database
|
|
57
|
+
```
|
|
73
58
|
|
|
74
|
-
|
|
59
|
+
Then import and use it in your API:
|
|
60
|
+
```typescript
|
|
61
|
+
// In your API context or controllers
|
|
62
|
+
import { db } from '@your-org/my-database';
|
|
75
63
|
|
|
76
|
-
|
|
64
|
+
// Use the database client
|
|
65
|
+
const users = await db.user.findMany();
|
|
66
|
+
```
|
|
77
67
|
|
|
78
68
|
## Development
|
|
79
69
|
|
|
@@ -107,9 +97,11 @@ export class PostController extends BaseController {
|
|
|
107
97
|
getAll = this.createQuery(
|
|
108
98
|
z.object({ published: z.boolean().optional() }),
|
|
109
99
|
async (input, ctx) => {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
100
|
+
// Mock data - replace with your database calls
|
|
101
|
+
return [
|
|
102
|
+
{ id: '1', title: 'Post 1', content: 'Content 1', published: true },
|
|
103
|
+
{ id: '2', title: 'Post 2', content: 'Content 2', published: false },
|
|
104
|
+
];
|
|
113
105
|
}
|
|
114
106
|
);
|
|
115
107
|
|
|
@@ -118,7 +110,8 @@ export class PostController extends BaseController {
|
|
|
118
110
|
createPostSchema,
|
|
119
111
|
[logger, rateLimit(5, 60000), requireAuth],
|
|
120
112
|
async (input, ctx) => {
|
|
121
|
-
|
|
113
|
+
// Mock creation - replace with your database calls
|
|
114
|
+
return { id: '3', ...input, published: false };
|
|
122
115
|
}
|
|
123
116
|
);
|
|
124
117
|
|
|
@@ -127,7 +120,8 @@ export class PostController extends BaseController {
|
|
|
127
120
|
z.object({ id: z.string() }),
|
|
128
121
|
[requireAuth, requireAdmin],
|
|
129
122
|
async (input, ctx) => {
|
|
130
|
-
|
|
123
|
+
// Mock deletion - replace with your database calls
|
|
124
|
+
return { success: true, deletedId: input.id };
|
|
131
125
|
}
|
|
132
126
|
);
|
|
133
127
|
}
|
|
@@ -185,9 +179,8 @@ const healthStatus = await client.health.query();
|
|
|
185
179
|
|
|
186
180
|
## Environment Variables
|
|
187
181
|
|
|
188
|
-
Copy
|
|
182
|
+
Copy `.env.example` to `.env` and configure:
|
|
189
183
|
|
|
190
|
-
- `DATABASE_URL` - Database connection string
|
|
191
184
|
- `PORT` - Server port (default: 3000)
|
|
192
185
|
- `NODE_ENV` - Environment (development/production)
|
|
193
186
|
- `CORS_ORIGIN` - CORS origin for client requests
|
|
@@ -195,13 +188,10 @@ Copy `env.example` to `.env` and configure:
|
|
|
195
188
|
## Deployment
|
|
196
189
|
|
|
197
190
|
1. Build the project: `yarn build`
|
|
198
|
-
2.
|
|
199
|
-
3. Run migrations: `yarn db:migrate`
|
|
200
|
-
4. Start the server: `yarn start`
|
|
191
|
+
2. Start the server: `yarn start`
|
|
201
192
|
|
|
202
193
|
## Learn More
|
|
203
194
|
|
|
204
195
|
- [tRPC Documentation](https://trpc.io/)
|
|
205
|
-
- [Prisma Documentation](https://www.prisma.io/docs/)
|
|
206
196
|
- [Zod Documentation](https://zod.dev/)
|
|
207
197
|
- [Express.js Documentation](https://expressjs.com/)
|
|
@@ -18,17 +18,11 @@
|
|
|
18
18
|
"test": "jest",
|
|
19
19
|
"test:watch": "jest --watch",
|
|
20
20
|
"test:coverage": "jest --coverage",
|
|
21
|
-
"db:generate": "prisma generate",
|
|
22
|
-
"db:push": "prisma db push",
|
|
23
|
-
"db:studio": "prisma studio",
|
|
24
|
-
"db:migrate": "prisma migrate dev",
|
|
25
|
-
"db:reset": "prisma migrate reset",
|
|
26
21
|
"lint": "eslint src --ext .ts,.tsx",
|
|
27
22
|
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
28
23
|
"type-check": "tsc --noEmit"
|
|
29
24
|
},
|
|
30
25
|
"dependencies": {
|
|
31
|
-
"@prisma/client": "^5.7.1",
|
|
32
26
|
"@trpc/server": "^10.44.1",
|
|
33
27
|
"cors": "^2.8.5",
|
|
34
28
|
"dotenv": "^16.3.1",
|
|
@@ -44,7 +38,6 @@
|
|
|
44
38
|
"@typescript-eslint/parser": "^6.13.1",
|
|
45
39
|
"eslint": "^8.54.0",
|
|
46
40
|
"jest": "^29.7.0",
|
|
47
|
-
"prisma": "^5.7.1",
|
|
48
41
|
"ts-jest": "^29.1.2",
|
|
49
42
|
"tsx": "^4.6.2",
|
|
50
43
|
"typescript": "^5.3.3"
|
|
@@ -52,7 +45,6 @@
|
|
|
52
45
|
"keywords": [
|
|
53
46
|
"api",
|
|
54
47
|
"trpc",
|
|
55
|
-
"prisma",
|
|
56
48
|
"zod",
|
|
57
49
|
"typescript",
|
|
58
50
|
"express"
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import { PrismaClient } from '@prisma/client';
|
|
2
1
|
import type { CreateExpressContextOptions } from '@trpc/server/adapters/express';
|
|
3
2
|
|
|
4
|
-
// Create Prisma client
|
|
5
|
-
const prisma = new PrismaClient({
|
|
6
|
-
log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
|
|
7
|
-
});
|
|
8
|
-
|
|
9
3
|
export interface Context {
|
|
10
|
-
prisma: PrismaClient;
|
|
11
4
|
req: CreateExpressContextOptions['req'];
|
|
12
5
|
res: CreateExpressContextOptions['res'];
|
|
6
|
+
// Add your dependencies here (e.g., database client, external services)
|
|
7
|
+
// Example: db: PrismaClient;
|
|
13
8
|
}
|
|
14
9
|
|
|
15
10
|
export const createContext = ({ req, res }: CreateExpressContextOptions): Context => {
|
|
16
11
|
return {
|
|
17
|
-
prisma,
|
|
18
12
|
req,
|
|
19
13
|
res,
|
|
14
|
+
// Initialize your dependencies here
|
|
15
|
+
// Example: db: prisma,
|
|
20
16
|
};
|
|
21
17
|
};
|
|
22
18
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
A database layer built with Prisma and TypeScript, designed to be shared across multiple applications in your monorepo.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🗄️ **Prisma ORM** - Type-safe database access
|
|
10
|
+
- 📝 **Zod Schemas** - Runtime validation matching your database models
|
|
11
|
+
- 📦 **Exportable Client** - Share database access across packages
|
|
12
|
+
- 🔒 **TypeScript** - Full type safety
|
|
13
|
+
- 🧪 **Testing Setup** - Jest configuration for database testing
|
|
14
|
+
- 🔄 **Migration Scripts** - Database versioning and seeding
|
|
15
|
+
|
|
16
|
+
## Getting Started
|
|
17
|
+
|
|
18
|
+
1. **Environment Setup**
|
|
19
|
+
```bash
|
|
20
|
+
cp .env.example .env
|
|
21
|
+
# Edit .env with your database URL
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **Generate Prisma Client**
|
|
25
|
+
```bash
|
|
26
|
+
yarn db:generate
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. **Push Schema to Database**
|
|
30
|
+
```bash
|
|
31
|
+
yarn db:push
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
4. **Open Prisma Studio** (Optional)
|
|
35
|
+
```bash
|
|
36
|
+
yarn db:studio
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
### In Other Packages
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
import { db, schemas } from '@your-org/{{projectName}}';
|
|
45
|
+
|
|
46
|
+
// Use the database client
|
|
47
|
+
const users = await db.user.findMany();
|
|
48
|
+
|
|
49
|
+
// Use Zod schemas for validation
|
|
50
|
+
const userData = schemas.createUser.parse(input);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Adding Models
|
|
54
|
+
|
|
55
|
+
1. Update `prisma/schema.prisma` with your models
|
|
56
|
+
2. Update `src/schemas.ts` with corresponding Zod schemas
|
|
57
|
+
3. Run `yarn db:generate` to update the client
|
|
58
|
+
4. Run `yarn db:push` to update the database
|
|
59
|
+
|
|
60
|
+
## Scripts
|
|
61
|
+
|
|
62
|
+
- `yarn build` - Build the package for distribution
|
|
63
|
+
- `yarn dev` - Run in development mode with file watching
|
|
64
|
+
- `yarn test` - Run tests
|
|
65
|
+
- `yarn test:watch` - Run tests in watch mode
|
|
66
|
+
- `yarn db:generate` - Generate Prisma client
|
|
67
|
+
- `yarn db:push` - Push schema changes to database
|
|
68
|
+
- `yarn db:studio` - Open Prisma Studio
|
|
69
|
+
- `yarn db:migrate` - Create and apply migrations
|
|
70
|
+
- `yarn db:reset` - Reset database and apply migrations
|
|
71
|
+
- `yarn db:seed` - Seed the database
|
|
72
|
+
|
|
73
|
+
## Project Structure
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
src/
|
|
77
|
+
├── index.ts # Main exports
|
|
78
|
+
├── client.ts # Prisma client setup
|
|
79
|
+
└── schemas.ts # Zod validation schemas
|
|
80
|
+
prisma/
|
|
81
|
+
├── schema.prisma # Database schema
|
|
82
|
+
└── migrations/ # Database migrations
|
|
83
|
+
__tests__/
|
|
84
|
+
└── database.test.ts # Database tests
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Best Practices
|
|
88
|
+
|
|
89
|
+
- Always update Zod schemas when changing Prisma models
|
|
90
|
+
- Use meaningful migration names
|
|
91
|
+
- Test database operations
|
|
92
|
+
- Export only what's needed from the main index
|
|
93
|
+
- Keep the client singleton pattern for performance
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { describe, it, expect } from '@jest/globals';
|
|
2
|
+
import { db } from '../src';
|
|
3
|
+
|
|
4
|
+
describe('Database', () => {
|
|
5
|
+
it('should export database client', () => {
|
|
6
|
+
expect(db).toBeDefined();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it('should connect to database', async () => {
|
|
10
|
+
// This is a basic connection test
|
|
11
|
+
// Add your own model-specific tests here
|
|
12
|
+
expect(db.$connect).toBeDefined();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
collectCoverageFrom: [
|
|
5
|
+
'src/**/*.{ts,tsx}',
|
|
6
|
+
'!src/**/*.d.ts',
|
|
7
|
+
],
|
|
8
|
+
testMatch: [
|
|
9
|
+
'**/__tests__/**/*.test.{ts,tsx}',
|
|
10
|
+
],
|
|
11
|
+
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
|
|
12
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
|
|
13
|
+
transform: {
|
|
14
|
+
'^.+\\.(ts|tsx)$': 'ts-jest',
|
|
15
|
+
},
|
|
16
|
+
moduleNameMapping: {
|
|
17
|
+
'^@/(.*)$': '<rootDir>/src/$1',
|
|
18
|
+
},
|
|
19
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Global test setup
|
|
2
|
+
import { beforeEach, afterEach } from '@jest/globals';
|
|
3
|
+
|
|
4
|
+
// Mock environment variables for testing
|
|
5
|
+
process.env.NODE_ENV = 'test';
|
|
6
|
+
process.env.DATABASE_URL = 'file:./test.db';
|
|
7
|
+
|
|
8
|
+
// Clean up after each test
|
|
9
|
+
afterEach(async () => {
|
|
10
|
+
// Add any cleanup logic here
|
|
11
|
+
});
|