@idealyst/cli 1.2.32 → 1.2.34
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/constants.js +5 -1
- package/dist/constants.js.map +1 -1
- package/dist/generators/core/shared.js +382 -3
- package/dist/generators/core/shared.js.map +1 -1
- package/dist/generators/extensions/graphql.js +112 -26
- package/dist/generators/extensions/graphql.js.map +1 -1
- package/dist/generators/extensions/prisma.js +105 -16
- package/dist/generators/extensions/prisma.js.map +1 -1
- package/dist/generators/extensions/trpc.js +137 -41
- package/dist/generators/extensions/trpc.js.map +1 -1
- package/dist/templates/core/api/src-graphql/builder.ts +25 -0
- package/dist/templates/core/api/src-graphql/schema.ts +217 -0
- package/dist/templates/core/api/src-trpc/context.ts +15 -0
- package/dist/templates/core/api/src-trpc/index.ts +6 -0
- package/dist/templates/core/api/src-trpc/lib/database.ts +4 -0
- package/dist/templates/core/api/src-trpc/router/index.ts +187 -0
- package/dist/templates/core/api/src-trpc/server.ts +63 -0
- package/dist/templates/core/api/src-trpc/trpc.ts +20 -0
- package/dist/templates/core/database/schema.prisma +22 -0
- package/dist/templates/core/shared/src-components/App.tsx +51 -0
- package/dist/templates/core/shared/src-graphql/client.ts +70 -0
- package/dist/templates/core/shared/{src/navigation → src-navigation}/AppRouter.tsx +34 -0
- package/dist/templates/core/shared/src-screens-graphql/GraphQLDemoScreen.tsx +354 -0
- package/dist/templates/core/shared/src-screens-trpc/TRPCDemoScreen.tsx +432 -0
- package/dist/templates/core/shared/src-trpc/client.ts +44 -0
- package/dist/types/constants.d.ts +9 -5
- package/package.json +1 -1
- package/dist/templates/core/shared/src/components/App.tsx +0 -13
- package/dist/templates/core/shared/src/screens/index.ts +0 -4
- /package/dist/templates/core/shared/{src/components → src-components}/index.ts +0 -0
- /package/dist/templates/core/shared/{src/layouts → src-layouts}/AppLayout.tsx +0 -0
- /package/dist/templates/core/shared/{src/navigation → src-navigation}/index.ts +0 -0
- /package/dist/templates/core/shared/{src/screens → src-screens}/ExploreScreen.tsx +0 -0
- /package/dist/templates/core/shared/{src/screens → src-screens}/HomeScreen.tsx +0 -0
- /package/dist/templates/core/shared/{src/screens → src-screens}/ProfileScreen.tsx +0 -0
- /package/dist/templates/core/shared/{src/screens → src-screens}/SettingsScreen.tsx +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/generators/extensions/graphql.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;AAYH,sDAgBC;AA1BD,wDAA0B;AAC1B,gDAAwB;AAExB,mDAAyD;AACzD,+CAA+C;AAC/C,+CAA4C;AAE5C;;GAEG;AACI,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,IAAkB;IAElB,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,6BAA6B;IAC7B,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEzC,oCAAoC;IACpC,MAAM,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEzC,uCAAuC;IACvC,MAAM,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAkB;IACpE,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvD,mBAAmB;IACnB,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAClC,mBAAmB,CAAC,IAAI,CAAC,CAC1B,CAAC;IAEF,4CAA4C;IAC5C,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EACnC,mBAAmB,CAAC,IAAI,CAAC,CAC1B,CAAC;IAEF,4BAA4B;IAC5B,MAAM,kBAAE,CAAC,SAAS,CAChB,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAC9C,sBAAsB,CAAC,IAAI,CAAC,CAC7B,CAAC;IAEF,mBAAmB;IACnB,MAAM,IAAA,wBAAe,EACnB,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EACjC,wBAAY,CAAC,aAAa,CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/generators/extensions/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Prisma extension generator
|
|
4
4
|
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
5
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
40
|
};
|
|
@@ -46,32 +79,85 @@ async function generatePrismaFiles(dbDir, data) {
|
|
|
46
79
|
// Create directory structure
|
|
47
80
|
await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'prisma'));
|
|
48
81
|
await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'src'));
|
|
82
|
+
// Determine database provider based on devcontainer setting
|
|
83
|
+
const usePostgres = data.hasDevcontainer;
|
|
84
|
+
const dbProvider = usePostgres ? 'postgresql' : 'sqlite';
|
|
49
85
|
// Create package.json
|
|
50
86
|
await fs_extra_1.default.writeJson(path_1.default.join(dbDir, 'package.json'), createPrismaPackageJson(data), { spaces: 2 });
|
|
51
87
|
// Create tsconfig.json
|
|
52
88
|
await fs_extra_1.default.writeJson(path_1.default.join(dbDir, 'tsconfig.json'), createPrismaTsConfig(), { spaces: 2 });
|
|
53
|
-
//
|
|
54
|
-
|
|
89
|
+
// Try to use template schema.prisma, or generate programmatically
|
|
90
|
+
const templateSchemaPath = (0, copier_1.getTemplatePath)('core', 'database', 'schema.prisma');
|
|
91
|
+
if (await fs_extra_1.default.pathExists(templateSchemaPath)) {
|
|
92
|
+
// Read template schema and adjust provider
|
|
93
|
+
let schemaContent = await fs_extra_1.default.readFile(templateSchemaPath, 'utf8');
|
|
94
|
+
// Replace provider based on devcontainer setting
|
|
95
|
+
if (usePostgres) {
|
|
96
|
+
schemaContent = schemaContent.replace(/provider\s*=\s*"sqlite"/g, 'provider = "postgresql"');
|
|
97
|
+
}
|
|
98
|
+
// Add pothos generator if GraphQL is enabled
|
|
99
|
+
if (data.hasGraphql) {
|
|
100
|
+
// Insert pothos generator after the client generator
|
|
101
|
+
const pothosGenerator = `
|
|
102
|
+
generator pothos {
|
|
103
|
+
provider = "prisma-pothos-types"
|
|
104
|
+
output = "./generated/pothos.ts"
|
|
105
|
+
clientOutput = "./client"
|
|
106
|
+
}
|
|
107
|
+
`;
|
|
108
|
+
schemaContent = schemaContent.replace(/(generator client \{[^}]+\})/, `$1\n${pothosGenerator}`);
|
|
109
|
+
}
|
|
110
|
+
// Process template variables
|
|
111
|
+
const { processTemplateContent } = await Promise.resolve().then(() => __importStar(require('../../templates/processor')));
|
|
112
|
+
schemaContent = processTemplateContent(schemaContent, data);
|
|
113
|
+
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'schema.prisma'), schemaContent);
|
|
114
|
+
logger_1.logger.dim(`Using showcase schema with ${dbProvider} provider`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// Generate schema programmatically
|
|
118
|
+
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'schema.prisma'), createPrismaSchema(dbProvider, data.hasGraphql));
|
|
119
|
+
}
|
|
55
120
|
// Create src/index.ts
|
|
56
121
|
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'src', 'index.ts'), createPrismaIndex());
|
|
57
122
|
// Create src/schemas.ts
|
|
58
123
|
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'src', 'schemas.ts'), createZodSchemas());
|
|
59
|
-
// Create .env.example
|
|
60
|
-
|
|
124
|
+
// Create .env.example with appropriate DATABASE_URL
|
|
125
|
+
const envExample = usePostgres
|
|
126
|
+
? 'DATABASE_URL="postgresql://postgres:postgres@localhost:5432/app"\n'
|
|
127
|
+
: 'DATABASE_URL="file:./dev.db"\n';
|
|
128
|
+
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, '.env.example'), envExample);
|
|
129
|
+
// Create .env with default value for local development
|
|
130
|
+
const envContent = usePostgres
|
|
131
|
+
? 'DATABASE_URL="postgresql://postgres:postgres@db:5432/app"\n'
|
|
132
|
+
: 'DATABASE_URL="file:./dev.db"\n';
|
|
133
|
+
await fs_extra_1.default.writeFile(path_1.default.join(dbDir, '.env'), envContent);
|
|
61
134
|
}
|
|
62
135
|
/**
|
|
63
136
|
* Create Prisma package.json
|
|
64
137
|
*/
|
|
65
138
|
function createPrismaPackageJson(data) {
|
|
139
|
+
const devDeps = {
|
|
140
|
+
...constants_1.DEPENDENCIES.prismaDev,
|
|
141
|
+
'tsx': '^4.7.0',
|
|
142
|
+
'typescript': '^5.0.0',
|
|
143
|
+
};
|
|
144
|
+
// Add @pothos/plugin-prisma for the prisma-pothos-types generator
|
|
145
|
+
// This is needed so `prisma generate` can find the generator
|
|
146
|
+
if (data.hasGraphql) {
|
|
147
|
+
devDeps['@pothos/plugin-prisma'] = constants_1.DEPENDENCIES.graphqlServerPrisma['@pothos/plugin-prisma'];
|
|
148
|
+
}
|
|
66
149
|
return {
|
|
67
150
|
name: `@${data.workspaceScope}/database`,
|
|
68
151
|
version: data.version,
|
|
152
|
+
type: 'module',
|
|
69
153
|
main: 'src/index.ts',
|
|
70
154
|
types: 'src/index.ts',
|
|
71
155
|
exports: {
|
|
72
156
|
'.': './src/index.ts',
|
|
73
157
|
'./client': './src/index.ts',
|
|
74
158
|
'./schemas': './src/schemas.ts',
|
|
159
|
+
// Export pothos types when GraphQL is enabled
|
|
160
|
+
...(data.hasGraphql ? { './pothos': './generated/pothos.ts' } : {}),
|
|
75
161
|
},
|
|
76
162
|
scripts: {
|
|
77
163
|
'build': 'tsc',
|
|
@@ -85,11 +171,7 @@ function createPrismaPackageJson(data) {
|
|
|
85
171
|
...constants_1.DEPENDENCIES.prisma,
|
|
86
172
|
'zod': '^3.22.0',
|
|
87
173
|
},
|
|
88
|
-
devDependencies:
|
|
89
|
-
...constants_1.DEPENDENCIES.prismaDev,
|
|
90
|
-
'tsx': '^4.7.0',
|
|
91
|
-
'typescript': '^5.0.0',
|
|
92
|
-
},
|
|
174
|
+
devDependencies: devDeps,
|
|
93
175
|
};
|
|
94
176
|
}
|
|
95
177
|
/**
|
|
@@ -105,26 +187,33 @@ function createPrismaTsConfig() {
|
|
|
105
187
|
strict: true,
|
|
106
188
|
skipLibCheck: true,
|
|
107
189
|
outDir: './dist',
|
|
108
|
-
rootDir: './src',
|
|
109
190
|
declaration: true,
|
|
110
191
|
},
|
|
111
|
-
include: ['src/**/*'],
|
|
192
|
+
include: ['src/**/*', 'generated/**/*'],
|
|
112
193
|
exclude: ['node_modules', 'dist'],
|
|
113
194
|
};
|
|
114
195
|
}
|
|
115
196
|
/**
|
|
116
197
|
* Create Prisma schema
|
|
117
198
|
*/
|
|
118
|
-
function createPrismaSchema() {
|
|
199
|
+
function createPrismaSchema(provider = 'sqlite', hasGraphql = false) {
|
|
200
|
+
const pothosGenerator = hasGraphql ? `
|
|
201
|
+
generator pothos {
|
|
202
|
+
provider = "prisma-pothos-types"
|
|
203
|
+
output = "./generated/pothos.ts"
|
|
204
|
+
clientOutput = "./client"
|
|
205
|
+
}
|
|
206
|
+
` : '';
|
|
119
207
|
return `// This is your Prisma schema file
|
|
120
208
|
// Learn more: https://pris.ly/d/prisma-schema
|
|
121
209
|
|
|
122
210
|
generator client {
|
|
123
211
|
provider = "prisma-client-js"
|
|
212
|
+
output = "./generated/client"
|
|
124
213
|
}
|
|
125
|
-
|
|
214
|
+
${pothosGenerator}
|
|
126
215
|
datasource db {
|
|
127
|
-
provider = "
|
|
216
|
+
provider = "${provider}"
|
|
128
217
|
url = env("DATABASE_URL")
|
|
129
218
|
}
|
|
130
219
|
|
|
@@ -179,7 +268,7 @@ function createPrismaIndex() {
|
|
|
179
268
|
* Database package exports
|
|
180
269
|
*/
|
|
181
270
|
|
|
182
|
-
import { PrismaClient } from '
|
|
271
|
+
import { PrismaClient } from '../generated/client/index.js';
|
|
183
272
|
|
|
184
273
|
// Prevent multiple instances of Prisma Client in development
|
|
185
274
|
declare global {
|
|
@@ -193,7 +282,7 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
193
282
|
}
|
|
194
283
|
|
|
195
284
|
export { PrismaClient };
|
|
196
|
-
export * from '
|
|
285
|
+
export * from '../generated/client/index.js';
|
|
197
286
|
`;
|
|
198
287
|
}
|
|
199
288
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/generators/extensions/prisma.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/generators/extensions/prisma.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,10 +76,16 @@ async function addTrpcToShared(projectPath, data) {
|
|
|
76
76
|
const sharedDir = path_1.default.join(projectPath, 'packages', 'shared');
|
|
77
77
|
const trpcDir = path_1.default.join(sharedDir, 'src', 'trpc');
|
|
78
78
|
await fs_extra_1.default.ensureDir(trpcDir);
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
// Only create client.ts if it doesn't exist (templates may have a better version)
|
|
80
|
+
const clientPath = path_1.default.join(trpcDir, 'client.ts');
|
|
81
|
+
if (!await fs_extra_1.default.pathExists(clientPath)) {
|
|
82
|
+
await fs_extra_1.default.writeFile(clientPath, createSharedTrpcClient(data));
|
|
83
|
+
}
|
|
84
|
+
// Only create index.ts if it doesn't exist
|
|
85
|
+
const indexPath = path_1.default.join(trpcDir, 'index.ts');
|
|
86
|
+
if (!await fs_extra_1.default.pathExists(indexPath)) {
|
|
87
|
+
await fs_extra_1.default.writeFile(indexPath, `export * from './client';\n`);
|
|
88
|
+
}
|
|
83
89
|
// Add dependencies
|
|
84
90
|
await (0, merger_1.addDependencies)(path_1.default.join(sharedDir, 'package.json'), constants_1.DEPENDENCIES.trpc);
|
|
85
91
|
}
|
|
@@ -87,6 +93,36 @@ async function addTrpcToShared(projectPath, data) {
|
|
|
87
93
|
* Create tRPC initialization (server-side)
|
|
88
94
|
*/
|
|
89
95
|
function createTrpcInit(data) {
|
|
96
|
+
// When Prisma is enabled, we need to define Context type explicitly to avoid
|
|
97
|
+
// TypeScript inference issues with Prisma's runtime types
|
|
98
|
+
const prismaImports = data.hasPrisma
|
|
99
|
+
? `import { prisma, PrismaClient } from '@${data.workspaceScope}/database';`
|
|
100
|
+
: '';
|
|
101
|
+
const contextType = data.hasPrisma
|
|
102
|
+
? `
|
|
103
|
+
/**
|
|
104
|
+
* Context type - explicitly defined to avoid Prisma runtime type inference issues
|
|
105
|
+
*/
|
|
106
|
+
export interface Context {
|
|
107
|
+
req: CreateExpressContextOptions['req'];
|
|
108
|
+
res: CreateExpressContextOptions['res'];
|
|
109
|
+
prisma: PrismaClient;
|
|
110
|
+
}`
|
|
111
|
+
: `
|
|
112
|
+
export type Context = {
|
|
113
|
+
req: CreateExpressContextOptions['req'];
|
|
114
|
+
res: CreateExpressContextOptions['res'];
|
|
115
|
+
};`;
|
|
116
|
+
const contextReturn = data.hasPrisma
|
|
117
|
+
? ` return {
|
|
118
|
+
req,
|
|
119
|
+
res,
|
|
120
|
+
prisma,
|
|
121
|
+
};`
|
|
122
|
+
: ` return {
|
|
123
|
+
req,
|
|
124
|
+
res,
|
|
125
|
+
};`;
|
|
90
126
|
return `/**
|
|
91
127
|
* tRPC initialization
|
|
92
128
|
*/
|
|
@@ -94,20 +130,15 @@ function createTrpcInit(data) {
|
|
|
94
130
|
import { initTRPC } from '@trpc/server';
|
|
95
131
|
import { ZodError } from 'zod';
|
|
96
132
|
import type { CreateExpressContextOptions } from '@trpc/server/adapters/express';
|
|
97
|
-
${
|
|
133
|
+
${prismaImports}
|
|
134
|
+
${contextType}
|
|
98
135
|
|
|
99
136
|
/**
|
|
100
137
|
* Create context for each request
|
|
101
138
|
*/
|
|
102
|
-
export
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
res,
|
|
106
|
-
${data.hasPrisma ? ' prisma,' : ''}
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
export type Context = Awaited<ReturnType<typeof createContext>>;
|
|
139
|
+
export function createContext({ req, res }: CreateExpressContextOptions): Context {
|
|
140
|
+
${contextReturn}
|
|
141
|
+
}
|
|
111
142
|
|
|
112
143
|
/**
|
|
113
144
|
* Initialize tRPC
|
|
@@ -143,51 +174,116 @@ export const middleware = t.middleware;
|
|
|
143
174
|
*/
|
|
144
175
|
function createTrpcRouter(data) {
|
|
145
176
|
return `/**
|
|
146
|
-
* tRPC router
|
|
177
|
+
* tRPC router - re-exports from routers/index.ts
|
|
147
178
|
*/
|
|
148
179
|
|
|
149
|
-
import {
|
|
150
|
-
import { exampleRouter } from './routers';
|
|
151
|
-
|
|
152
|
-
export const appRouter = router({
|
|
153
|
-
// Health check
|
|
154
|
-
health: publicProcedure.query(() => ({
|
|
155
|
-
status: 'ok',
|
|
156
|
-
timestamp: new Date().toISOString(),
|
|
157
|
-
})),
|
|
158
|
-
|
|
159
|
-
// Example router
|
|
160
|
-
example: exampleRouter,
|
|
161
|
-
|
|
162
|
-
// Add more routers here
|
|
163
|
-
});
|
|
180
|
+
import { appRouter, createContext } from './routers';
|
|
164
181
|
|
|
182
|
+
export { appRouter, createContext };
|
|
165
183
|
export type AppRouter = typeof appRouter;
|
|
166
|
-
export { createContext };
|
|
167
184
|
`;
|
|
168
185
|
}
|
|
169
186
|
/**
|
|
170
|
-
* Create example router
|
|
187
|
+
* Create example router with base routes (and database routes if Prisma enabled)
|
|
171
188
|
*/
|
|
172
189
|
function createExampleRouter(data) {
|
|
173
|
-
|
|
174
|
-
* Example router
|
|
175
|
-
*/
|
|
176
|
-
|
|
177
|
-
import { z } from 'zod';
|
|
178
|
-
import { router, publicProcedure } from '../trpc';
|
|
179
|
-
|
|
180
|
-
export const exampleRouter = router({
|
|
190
|
+
const baseRoutes = ` // Hello endpoint
|
|
181
191
|
hello: publicProcedure
|
|
182
192
|
.input(z.object({ name: z.string().optional() }))
|
|
183
193
|
.query(({ input }) => {
|
|
184
194
|
return {
|
|
185
195
|
greeting: \`Hello, \${input.name || 'World'}!\`,
|
|
196
|
+
timestamp: new Date().toISOString(),
|
|
186
197
|
};
|
|
187
198
|
}),
|
|
188
199
|
|
|
189
|
-
//
|
|
200
|
+
// Echo endpoint
|
|
201
|
+
echo: publicProcedure
|
|
202
|
+
.input(z.object({ message: z.string() }))
|
|
203
|
+
.query(({ input }) => {
|
|
204
|
+
return {
|
|
205
|
+
original: input.message,
|
|
206
|
+
reversed: input.message.split('').reverse().join(''),
|
|
207
|
+
length: input.message.length,
|
|
208
|
+
timestamp: new Date().toISOString(),
|
|
209
|
+
};
|
|
210
|
+
}),
|
|
211
|
+
|
|
212
|
+
// In-memory counter
|
|
213
|
+
counter: router({
|
|
214
|
+
get: publicProcedure.query(() => ({ value: counterState.value })),
|
|
215
|
+
increment: publicProcedure.mutation(() => {
|
|
216
|
+
counterState.value += 1;
|
|
217
|
+
return { value: counterState.value };
|
|
218
|
+
}),
|
|
219
|
+
decrement: publicProcedure.mutation(() => {
|
|
220
|
+
counterState.value -= 1;
|
|
221
|
+
return { value: counterState.value };
|
|
222
|
+
}),
|
|
223
|
+
reset: publicProcedure.mutation(() => {
|
|
224
|
+
counterState.value = 0;
|
|
225
|
+
return { value: counterState.value };
|
|
226
|
+
}),
|
|
227
|
+
}),`;
|
|
228
|
+
const databaseRoutes = data.hasPrisma ? `
|
|
229
|
+
|
|
230
|
+
// Items CRUD (requires database)
|
|
231
|
+
items: router({
|
|
232
|
+
list: publicProcedure.query(async ({ ctx }) => {
|
|
233
|
+
return await ctx.prisma.item.findMany({ orderBy: { createdAt: 'desc' } });
|
|
234
|
+
}),
|
|
235
|
+
create: publicProcedure
|
|
236
|
+
.input(z.object({ title: z.string(), description: z.string().optional() }))
|
|
237
|
+
.mutation(async ({ ctx, input }) => {
|
|
238
|
+
return await ctx.prisma.item.create({ data: input });
|
|
239
|
+
}),
|
|
240
|
+
toggle: publicProcedure
|
|
241
|
+
.input(z.object({ id: z.string() }))
|
|
242
|
+
.mutation(async ({ ctx, input }) => {
|
|
243
|
+
const item = await ctx.prisma.item.findUnique({ where: { id: input.id } });
|
|
244
|
+
if (!item) throw new Error('Item not found');
|
|
245
|
+
return await ctx.prisma.item.update({
|
|
246
|
+
where: { id: input.id },
|
|
247
|
+
data: { completed: !item.completed },
|
|
248
|
+
});
|
|
249
|
+
}),
|
|
250
|
+
delete: publicProcedure
|
|
251
|
+
.input(z.object({ id: z.string() }))
|
|
252
|
+
.mutation(async ({ ctx, input }) => {
|
|
253
|
+
return await ctx.prisma.item.delete({ where: { id: input.id } });
|
|
254
|
+
}),
|
|
255
|
+
stats: publicProcedure.query(async ({ ctx }) => {
|
|
256
|
+
const items = await ctx.prisma.item.findMany();
|
|
257
|
+
return {
|
|
258
|
+
total: items.length,
|
|
259
|
+
completed: items.filter((i: { completed: boolean }) => i.completed).length,
|
|
260
|
+
pending: items.filter((i: { completed: boolean }) => !i.completed).length,
|
|
261
|
+
};
|
|
262
|
+
}),
|
|
263
|
+
}),` : '';
|
|
264
|
+
return `/**
|
|
265
|
+
* Main app router
|
|
266
|
+
*/
|
|
267
|
+
|
|
268
|
+
import { z } from 'zod';
|
|
269
|
+
import { router, publicProcedure, createContext } from '../trpc';
|
|
270
|
+
|
|
271
|
+
// In-memory state for counter demo
|
|
272
|
+
const counterState = { value: 0 };
|
|
273
|
+
|
|
274
|
+
export const appRouter = router({
|
|
275
|
+
// Health check
|
|
276
|
+
health: publicProcedure.query(() => ({
|
|
277
|
+
status: 'OK',
|
|
278
|
+
timestamp: new Date().toISOString(),
|
|
279
|
+
version: '1.0.0',
|
|
280
|
+
})),
|
|
281
|
+
|
|
282
|
+
${baseRoutes}${databaseRoutes}
|
|
190
283
|
});
|
|
284
|
+
|
|
285
|
+
export { createContext };
|
|
286
|
+
export type AppRouter = typeof appRouter;
|
|
191
287
|
`;
|
|
192
288
|
}
|
|
193
289
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/generators/extensions/trpc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/generators/extensions/trpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pothos GraphQL Schema Builder
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import SchemaBuilder from '@pothos/core';
|
|
6
|
+
|
|
7
|
+
// Create the schema builder
|
|
8
|
+
export const builder = new SchemaBuilder<{
|
|
9
|
+
Scalars: {
|
|
10
|
+
DateTime: {
|
|
11
|
+
Input: Date;
|
|
12
|
+
Output: Date;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}>({});
|
|
16
|
+
|
|
17
|
+
// Add DateTime scalar for handling timestamps
|
|
18
|
+
builder.scalarType('DateTime', {
|
|
19
|
+
serialize: (value) => value.toISOString(),
|
|
20
|
+
parseValue: (value) => new Date(value as string),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// Initialize Query and Mutation types
|
|
24
|
+
builder.queryType({});
|
|
25
|
+
builder.mutationType({});
|