prisma-generator-express 1.67.0 → 1.69.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 +223 -28
- package/dist/copy/operationDefinitions.d.ts +4 -1
- package/dist/copy/operationDefinitions.js +64 -3
- package/dist/copy/operationDefinitions.js.map +1 -1
- package/dist/generators/generateFastifyHandler.js +55 -9
- package/dist/generators/generateFastifyHandler.js.map +1 -1
- package/dist/generators/generateHonoHandler.js +44 -4
- 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/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 +9 -5
- package/dist/generators/generateModelMetadata.js.map +1 -1
- package/dist/generators/generateRouter.js +62 -56
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.js +56 -64
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.js +43 -411
- 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/generateUnifiedHandler.js +36 -20
- package/dist/generators/generateUnifiedHandler.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +101 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/copyFiles.d.ts +1 -1
- package/dist/utils/copyFiles.js +20 -1
- package/dist/utils/copyFiles.js.map +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/writeFileSafely.js +6 -0
- package/dist/utils/writeFileSafely.js.map +1 -1
- package/package.json +18 -3
- package/src/copy/buildModelOpenApi.ts +76 -126
- package/src/copy/docsRenderer.ts +14 -15
- package/src/copy/mcpRuntime.ts +1017 -0
- package/src/copy/operationDefinitions.ts +78 -4
- package/src/copy/operationPipeline.ts +267 -0
- package/src/copy/operationRuntime.ts +24 -14
- package/src/copy/operationSchemas.ts +2773 -0
- package/src/copy/pagination.ts +10 -2
- package/src/copy/routeConfig.hono.ts +34 -5
- package/src/copy/routeConfig.ts +1 -1
- package/src/copy/routerParts.ts +524 -0
- package/src/generators/generateFastifyHandler.ts +55 -9
- package/src/generators/generateHonoHandler.ts +44 -4
- package/src/generators/generateHonoOpenApi.ts +93 -0
- package/src/generators/generateMcpApp.ts +133 -0
- package/src/generators/generateModelMcp.ts +208 -0
- package/src/generators/generateModelMetadata.ts +16 -10
- package/src/generators/generateRouter.ts +62 -56
- package/src/generators/generateRouterFastify.ts +56 -64
- package/src/generators/generateRouterHono.ts +49 -459
- package/src/generators/generateRouterPartsHono.ts +220 -0
- package/src/generators/generateUnifiedHandler.ts +36 -21
- package/src/index.ts +116 -3
- package/src/utils/copyFiles.ts +36 -0
- package/src/utils/mcpGate.ts +157 -0
- package/src/utils/writeFileSafely.ts +6 -0
package/src/copy/docsRenderer.ts
CHANGED
|
@@ -127,7 +127,7 @@ function exampleValue(ctx: DocsModelContext, fieldName: string): unknown {
|
|
|
127
127
|
|
|
128
128
|
function compoundWhereExample(
|
|
129
129
|
ctx: DocsModelContext,
|
|
130
|
-
): Record<string,
|
|
130
|
+
): Record<string, unknown> | null {
|
|
131
131
|
if (ctx.compoundId) {
|
|
132
132
|
const keyName = ctx.compoundId.fields.join('_')
|
|
133
133
|
const val: Record<string, unknown> = {}
|
|
@@ -426,7 +426,7 @@ export function renderDocs(
|
|
|
426
426
|
const singleRelations = relationFields.filter((f) => !f.isList)
|
|
427
427
|
|
|
428
428
|
const getOps = OPERATION_METADATA.filter((meta) =>
|
|
429
|
-
isOperationEnabled(config
|
|
429
|
+
isOperationEnabled(config, meta),
|
|
430
430
|
)
|
|
431
431
|
.filter((meta) => !isOpHiddenByStrategy(meta.name, writeStrategy))
|
|
432
432
|
.map((meta) => {
|
|
@@ -453,9 +453,7 @@ export function renderDocs(
|
|
|
453
453
|
|
|
454
454
|
const postReadOps = postReadsEnabled
|
|
455
455
|
? OPERATION_METADATA.filter((meta) => READ_OPERATION_NAMES.has(meta.name))
|
|
456
|
-
.filter((meta) =>
|
|
457
|
-
isOperationEnabled(config as Record<string, any>, meta),
|
|
458
|
-
)
|
|
456
|
+
.filter((meta) => isOperationEnabled(config, meta))
|
|
459
457
|
.map((meta) => {
|
|
460
458
|
const detail = detailForOp(meta.name)
|
|
461
459
|
const postPath =
|
|
@@ -499,8 +497,8 @@ export function renderDocs(
|
|
|
499
497
|
const firstStringField = scalarFields.find((f) => f.type === 'String')
|
|
500
498
|
const firstBooleanField = scalarFields.find((f) => f.type === 'Boolean')
|
|
501
499
|
|
|
502
|
-
const whereExample: Record<string,
|
|
503
|
-
const andClauses: Record<string,
|
|
500
|
+
const whereExample: Record<string, unknown> = {}
|
|
501
|
+
const andClauses: Record<string, unknown>[] = []
|
|
504
502
|
if (firstFilterFieldName) {
|
|
505
503
|
andClauses.push({
|
|
506
504
|
[firstFilterFieldName]: {
|
|
@@ -517,19 +515,19 @@ export function renderDocs(
|
|
|
517
515
|
if (firstBooleanField)
|
|
518
516
|
whereExample.OR = [{ [firstBooleanField.name]: { equals: true } }]
|
|
519
517
|
|
|
520
|
-
const selectExample:
|
|
518
|
+
const selectExample: Record<string, unknown> = {}
|
|
521
519
|
for (const f of scalarFields.slice(0, 10)) selectExample[f.name] = true
|
|
522
520
|
|
|
523
|
-
const includeExample:
|
|
521
|
+
const includeExample: Record<string, unknown> = {}
|
|
524
522
|
for (const f of relationFields.slice(0, 6)) includeExample[f.name] = true
|
|
525
523
|
|
|
526
|
-
const omitExample:
|
|
524
|
+
const omitExample: Record<string, unknown> = {}
|
|
527
525
|
const omitCandidates = scalarFields.filter((f) => !f.isId && !f.isUnique)
|
|
528
526
|
for (const f of omitCandidates.slice(0, 3)) omitExample[f.name] = true
|
|
529
527
|
|
|
530
528
|
const orderByField = firstUnique ? firstUnique.name : firstFilterFieldName
|
|
531
529
|
|
|
532
|
-
const findManyQueryArgs:
|
|
530
|
+
const findManyQueryArgs: Record<string, unknown> = {
|
|
533
531
|
where: whereExample,
|
|
534
532
|
select: selectExample,
|
|
535
533
|
orderBy: orderByField ? { [orderByField]: 'asc' } : undefined,
|
|
@@ -575,7 +573,7 @@ export function renderDocs(
|
|
|
575
573
|
'const data = await res.json()'
|
|
576
574
|
: null
|
|
577
575
|
|
|
578
|
-
const createBodyExample:
|
|
576
|
+
const createBodyExample: { data: Record<string, unknown> } = { data: {} }
|
|
579
577
|
for (const f of requiredCreateFields.slice(0, 5)) {
|
|
580
578
|
createBodyExample.data[f.name] = exampleValue(ctx, f.name)
|
|
581
579
|
}
|
|
@@ -592,9 +590,10 @@ export function renderDocs(
|
|
|
592
590
|
'})\n' +
|
|
593
591
|
'const created = await res.json()'
|
|
594
592
|
|
|
595
|
-
const updateBodyExample:
|
|
596
|
-
|
|
597
|
-
:
|
|
593
|
+
const updateBodyExample: {
|
|
594
|
+
where: Record<string, unknown>
|
|
595
|
+
data: Record<string, unknown>
|
|
596
|
+
} | null = uniqueWhereExample ? { where: uniqueWhereExample, data: {} } : null
|
|
598
597
|
if (updateBodyExample) {
|
|
599
598
|
const firstEditableString = scalarFields.find(
|
|
600
599
|
(sf) => sf.type === 'String' && !sf.isId,
|