prisma-generator-express 1.66.0 → 1.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -3432
- package/dist/client/encodeQueryParams.js +3 -1
- package/dist/client/encodeQueryParams.js.map +1 -1
- package/dist/copy/misc.d.ts +1 -0
- package/dist/copy/misc.js +14 -0
- package/dist/copy/misc.js.map +1 -1
- package/dist/copy/operationDefinitions.d.ts +4 -1
- package/dist/copy/operationDefinitions.js +133 -9
- package/dist/copy/operationDefinitions.js.map +1 -1
- package/dist/generators/generateFastifyHandler.d.ts +2 -2
- package/dist/generators/generateFastifyHandler.js +68 -12
- package/dist/generators/generateFastifyHandler.js.map +1 -1
- package/dist/generators/generateHonoHandler.d.ts +2 -2
- package/dist/generators/generateHonoHandler.js +53 -6
- package/dist/generators/generateHonoHandler.js.map +1 -1
- package/dist/generators/generateHonoOpenApi.d.ts +13 -0
- package/dist/generators/generateHonoOpenApi.js +70 -0
- package/dist/generators/generateHonoOpenApi.js.map +1 -0
- package/dist/generators/generateImportPrismaStatement.d.ts +1 -0
- package/dist/generators/generateImportPrismaStatement.js +6 -0
- package/dist/generators/generateImportPrismaStatement.js.map +1 -1
- package/dist/generators/generateMcpApp.d.ts +10 -0
- package/dist/generators/generateMcpApp.js +113 -0
- package/dist/generators/generateMcpApp.js.map +1 -0
- package/dist/generators/generateModelMcp.d.ts +9 -0
- package/dist/generators/generateModelMcp.js +145 -0
- package/dist/generators/generateModelMcp.js.map +1 -0
- package/dist/generators/generateModelMetadata.js +29 -15
- package/dist/generators/generateModelMetadata.js.map +1 -1
- package/dist/generators/generateOperationCore.d.ts +3 -3
- package/dist/generators/generateOperationCore.js +51 -16
- package/dist/generators/generateOperationCore.js.map +1 -1
- package/dist/generators/generateRelationMeta.js +2 -2
- package/dist/generators/generateRelationMeta.js.map +1 -1
- package/dist/generators/generateRouteConfigType.d.ts +2 -2
- package/dist/generators/generateRouteConfigType.js +29 -11
- package/dist/generators/generateRouteConfigType.js.map +1 -1
- package/dist/generators/generateRouter.d.ts +7 -4
- package/dist/generators/generateRouter.js +164 -65
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.d.ts +7 -4
- package/dist/generators/generateRouterFastify.js +106 -86
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.d.ts +7 -4
- package/dist/generators/generateRouterHono.js +59 -414
- package/dist/generators/generateRouterHono.js.map +1 -1
- package/dist/generators/generateRouterPartsHono.d.ts +14 -0
- package/dist/generators/generateRouterPartsHono.js +180 -0
- package/dist/generators/generateRouterPartsHono.js.map +1 -0
- package/dist/generators/generateUnifiedDocs.d.ts +1 -1
- package/dist/generators/generateUnifiedDocs.js +15 -8
- package/dist/generators/generateUnifiedDocs.js.map +1 -1
- package/dist/generators/generateUnifiedHandler.d.ts +2 -2
- package/dist/generators/generateUnifiedHandler.js +42 -18
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/guardOptions.js +12 -7
- package/dist/guardOptions.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +123 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/copyFiles.d.ts +1 -1
- package/dist/utils/copyFiles.js +42 -7
- package/dist/utils/copyFiles.js.map +1 -1
- package/dist/utils/importExt.d.ts +1 -1
- package/dist/utils/mcpGate.d.ts +10 -0
- package/dist/utils/mcpGate.js +118 -0
- package/dist/utils/mcpGate.js.map +1 -0
- package/dist/utils/pathCasing.d.ts +4 -0
- package/dist/utils/pathCasing.js +40 -0
- package/dist/utils/pathCasing.js.map +1 -0
- package/dist/utils/resolveImportStyle.js +13 -5
- package/dist/utils/resolveImportStyle.js.map +1 -1
- package/dist/utils/writeFileSafely.js +6 -0
- package/dist/utils/writeFileSafely.js.map +1 -1
- package/package.json +22 -5
- package/src/bin.ts +1 -1
- package/src/client/encodeQueryParams.ts +39 -35
- package/src/constants.ts +1 -1
- package/src/copy/autoIncludePlanner.ts +93 -27
- package/src/copy/autoIncludePlannerGuarded.ts +171 -48
- package/src/copy/autoIncludeRuntimeGuarded.ts +25 -7
- package/src/copy/buildModelOpenApi.ts +229 -176
- package/src/copy/concurrency.ts +10 -8
- package/src/copy/docsRenderer.ts +14 -15
- package/src/copy/errorMapper.ts +68 -19
- package/src/copy/guardHelpers.ts +30 -9
- package/src/copy/materializedCount.ts +17 -5
- package/src/copy/mcpRuntime.ts +1017 -0
- package/src/copy/misc.ts +88 -68
- package/src/copy/ndjson.ts +72 -0
- package/src/copy/operationDefinitions.ts +177 -25
- package/src/copy/operationPipeline.ts +267 -0
- package/src/copy/operationRuntime.ts +124 -26
- package/src/copy/operationSchemas.ts +2773 -0
- package/src/copy/pagination.ts +35 -13
- package/src/copy/parseQueryParams.ts +47 -48
- package/src/copy/projectionDefaults.ts +6 -4
- package/src/copy/routeConfig.express.ts +16 -4
- package/src/copy/routeConfig.fastify.ts +16 -2
- package/src/copy/routeConfig.hono.ts +46 -14
- package/src/copy/routeConfig.ts +175 -40
- package/src/copy/routerParts.ts +524 -0
- package/src/copy/scalarTypes.ts +7 -2
- package/src/copy/sse.ts +72 -19
- package/src/generators/generateFastifyHandler.ts +77 -20
- package/src/generators/generateHonoHandler.ts +62 -14
- package/src/generators/generateHonoOpenApi.ts +93 -0
- package/src/generators/generateImportPrismaStatement.ts +93 -81
- package/src/generators/generateMcpApp.ts +133 -0
- package/src/generators/generateModelMcp.ts +208 -0
- package/src/generators/generateModelMetadata.ts +40 -22
- package/src/generators/generateOperationCore.ts +81 -33
- package/src/generators/generateRelationMeta.ts +23 -11
- package/src/generators/generateRouteConfigType.ts +39 -13
- package/src/generators/generateRouter.ts +171 -68
- package/src/generators/generateRouterFastify.ts +117 -89
- package/src/generators/generateRouterHono.ts +84 -464
- package/src/generators/generateRouterPartsHono.ts +220 -0
- package/src/generators/generateUnifiedDocs.ts +29 -8
- package/src/generators/generateUnifiedHandler.ts +47 -24
- package/src/generators/generateUnifiedScalarUI.ts +1 -1
- package/src/guardOptions.ts +105 -92
- package/src/index.ts +161 -6
- package/src/utils/copyFiles.ts +235 -168
- package/src/utils/importExt.ts +2 -2
- package/src/utils/mcpGate.ts +157 -0
- package/src/utils/pathCasing.ts +42 -0
- package/src/utils/resolveImportStyle.ts +37 -15
- package/src/utils/strings.ts +2 -2
- package/src/utils/writeFileSafely.ts +12 -2
|
@@ -39,7 +39,8 @@ function stripJsonComments(input: string): string {
|
|
|
39
39
|
}
|
|
40
40
|
if (c === '/' && next === '*') {
|
|
41
41
|
i += 2
|
|
42
|
-
while (i < input.length && !(input[i] === '*' && input[i + 1] === '/'))
|
|
42
|
+
while (i < input.length && !(input[i] === '*' && input[i + 1] === '/'))
|
|
43
|
+
i++
|
|
43
44
|
i += 2
|
|
44
45
|
continue
|
|
45
46
|
}
|
|
@@ -75,7 +76,10 @@ function findUpwards(startDir: string, filename: string): string | null {
|
|
|
75
76
|
return result
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
function resolveExtendsTarget(
|
|
79
|
+
function resolveExtendsTarget(
|
|
80
|
+
extendsValue: string,
|
|
81
|
+
fromFile: string,
|
|
82
|
+
): string | null {
|
|
79
83
|
const fromDir = path.dirname(fromFile)
|
|
80
84
|
if (extendsValue.startsWith('.') || path.isAbsolute(extendsValue)) {
|
|
81
85
|
const direct = path.resolve(fromDir, extendsValue)
|
|
@@ -90,7 +94,9 @@ function resolveExtendsTarget(extendsValue: string, fromFile: string): string |
|
|
|
90
94
|
return require.resolve(extendsValue, { paths: [fromDir] })
|
|
91
95
|
} catch {
|
|
92
96
|
try {
|
|
93
|
-
return require.resolve(extendsValue + '/tsconfig.json', {
|
|
97
|
+
return require.resolve(extendsValue + '/tsconfig.json', {
|
|
98
|
+
paths: [fromDir],
|
|
99
|
+
})
|
|
94
100
|
} catch {
|
|
95
101
|
return null
|
|
96
102
|
}
|
|
@@ -102,7 +108,10 @@ type TsConfigRaw = {
|
|
|
102
108
|
compilerOptions?: Record<string, unknown>
|
|
103
109
|
}
|
|
104
110
|
|
|
105
|
-
function readTsConfig(
|
|
111
|
+
function readTsConfig(
|
|
112
|
+
filePath: string,
|
|
113
|
+
seen: Set<string> = new Set(),
|
|
114
|
+
): Record<string, unknown> {
|
|
106
115
|
const abs = path.resolve(filePath)
|
|
107
116
|
if (seen.has(abs)) return {}
|
|
108
117
|
seen.add(abs)
|
|
@@ -143,21 +152,25 @@ function readPackageType(startDir: string): string | null {
|
|
|
143
152
|
|
|
144
153
|
export function resolveImportStyle(options: GeneratorOptions): ImportStyle {
|
|
145
154
|
const config = (options.generator.config || {}) as Record<string, string>
|
|
146
|
-
const raw =
|
|
147
|
-
|
|
148
|
-
|
|
155
|
+
const raw =
|
|
156
|
+
typeof config.importStyle === 'string'
|
|
157
|
+
? config.importStyle.toLowerCase()
|
|
158
|
+
: 'auto'
|
|
149
159
|
|
|
150
160
|
if (!VALID_OVERRIDES.has(raw)) {
|
|
151
161
|
console.warn(
|
|
152
|
-
'[prisma-generator-express] Invalid importStyle "' +
|
|
153
|
-
|
|
162
|
+
'[prisma-generator-express] Invalid importStyle "' +
|
|
163
|
+
config.importStyle +
|
|
164
|
+
'". Expected one of: auto, none, js, ts. Falling back to auto.',
|
|
154
165
|
)
|
|
155
166
|
} else if (raw !== 'auto') {
|
|
156
167
|
return raw as ImportStyle
|
|
157
168
|
}
|
|
158
169
|
|
|
159
170
|
const outputPath = options.generator.output?.value
|
|
160
|
-
const schemaDir = options.schemaPath
|
|
171
|
+
const schemaDir = options.schemaPath
|
|
172
|
+
? path.dirname(options.schemaPath)
|
|
173
|
+
: process.cwd()
|
|
161
174
|
const startDir = outputPath ? path.dirname(outputPath) : schemaDir
|
|
162
175
|
|
|
163
176
|
const tsconfigPath =
|
|
@@ -171,12 +184,21 @@ export function resolveImportStyle(options: GeneratorOptions): ImportStyle {
|
|
|
171
184
|
if (compilerOptions.allowImportingTsExtensions === true) return 'ts'
|
|
172
185
|
|
|
173
186
|
const moduleVal = String(compilerOptions.module ?? '').toLowerCase()
|
|
174
|
-
const moduleResolution = String(
|
|
175
|
-
|
|
176
|
-
|
|
187
|
+
const moduleResolution = String(
|
|
188
|
+
compilerOptions.moduleResolution ?? '',
|
|
189
|
+
).toLowerCase()
|
|
190
|
+
|
|
191
|
+
if (
|
|
192
|
+
NODE_MODULE_KEYWORDS.has(moduleVal) ||
|
|
193
|
+
NODE_MODULE_KEYWORDS.has(moduleResolution)
|
|
194
|
+
) {
|
|
177
195
|
return 'js'
|
|
178
196
|
}
|
|
179
|
-
if (
|
|
197
|
+
if (
|
|
198
|
+
moduleResolution === 'bundler' ||
|
|
199
|
+
moduleResolution === 'classic' ||
|
|
200
|
+
moduleResolution === 'node'
|
|
201
|
+
) {
|
|
180
202
|
return 'none'
|
|
181
203
|
}
|
|
182
204
|
|
|
@@ -184,4 +206,4 @@ export function resolveImportStyle(options: GeneratorOptions): ImportStyle {
|
|
|
184
206
|
if (pkgType === 'module') return 'js'
|
|
185
207
|
|
|
186
208
|
return 'none'
|
|
187
|
-
}
|
|
209
|
+
}
|
package/src/utils/strings.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const capitalize = (str: string) =>
|
|
2
|
-
str.charAt(0).toUpperCase() + str.slice(1)
|
|
1
|
+
export const capitalize = (str: string) =>
|
|
2
|
+
str.charAt(0).toUpperCase() + str.slice(1)
|
|
@@ -39,9 +39,19 @@ export async function writeFileSafely({
|
|
|
39
39
|
case 'relationModelsIndex':
|
|
40
40
|
filePath = path.join(outputPath, 'relationModels.ts')
|
|
41
41
|
break
|
|
42
|
+
case 'mcpApp':
|
|
43
|
+
filePath = path.join(outputPath, 'mcp.ts')
|
|
44
|
+
break
|
|
45
|
+
case 'mcpMount':
|
|
46
|
+
filePath = path.join(outputPath, 'mcpMount.ts')
|
|
47
|
+
break
|
|
42
48
|
default:
|
|
43
49
|
if (!model) throw new Error('Model required for operation: ' + operation)
|
|
44
|
-
filePath = path.join(
|
|
50
|
+
filePath = path.join(
|
|
51
|
+
outputPath,
|
|
52
|
+
model.name,
|
|
53
|
+
`${model.name}${operation}.ts`,
|
|
54
|
+
)
|
|
45
55
|
}
|
|
46
56
|
|
|
47
57
|
const dirPath = path.dirname(filePath)
|
|
@@ -54,4 +64,4 @@ export async function writeFileSafely({
|
|
|
54
64
|
})
|
|
55
65
|
|
|
56
66
|
fs.writeFileSync(filePath, formattedContent)
|
|
57
|
-
}
|
|
67
|
+
}
|