prisma-generator-express 1.62.3 → 1.63.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 +234 -95
- package/dist/generators/generateRouteConfigType.js +26 -6
- package/dist/generators/generateRouteConfigType.js.map +1 -1
- package/dist/generators/generateRouter.js +245 -44
- package/dist/generators/generateRouter.js.map +1 -1
- package/dist/generators/generateRouterFastify.js +100 -28
- package/dist/generators/generateRouterFastify.js.map +1 -1
- package/dist/generators/generateRouterHono.js +104 -36
- package/dist/generators/generateRouterHono.js.map +1 -1
- package/dist/utils/copyFiles.js +2 -0
- package/dist/utils/copyFiles.js.map +1 -1
- package/package.json +1 -1
- package/src/copy/docsRenderer.ts +1 -0
- package/src/copy/guardVariantError.ts +28 -0
- package/src/copy/guardVariantRouting.ts +109 -0
- package/src/copy/projectionDefaults.ts +5 -6
- package/src/copy/routeConfig.hono.ts +15 -5
- package/src/copy/routeConfig.ts +220 -27
- package/src/generators/generateRouteConfigType.ts +37 -6
- package/src/generators/generateRouter.ts +246 -44
- package/src/generators/generateRouterFastify.ts +100 -28
- package/src/generators/generateRouterHono.ts +104 -36
- package/src/utils/copyFiles.ts +2 -0
|
@@ -11,21 +11,77 @@ function pathExpr(basePath, suffix) {
|
|
|
11
11
|
return `'${suffix}'`;
|
|
12
12
|
return `\`\${basePath}${suffix}\``;
|
|
13
13
|
}
|
|
14
|
+
function opKindFor(opName) {
|
|
15
|
+
switch (opName) {
|
|
16
|
+
case 'findUnique':
|
|
17
|
+
case 'findUniqueOrThrow':
|
|
18
|
+
return 'readUnique';
|
|
19
|
+
case 'findMany':
|
|
20
|
+
case 'findFirst':
|
|
21
|
+
case 'findFirstOrThrow':
|
|
22
|
+
case 'findManyPaginated':
|
|
23
|
+
case 'count':
|
|
24
|
+
case 'aggregate':
|
|
25
|
+
case 'groupBy':
|
|
26
|
+
return 'read';
|
|
27
|
+
case 'create':
|
|
28
|
+
return 'create';
|
|
29
|
+
case 'createMany':
|
|
30
|
+
case 'createManyAndReturn':
|
|
31
|
+
return 'createMany';
|
|
32
|
+
case 'update':
|
|
33
|
+
return 'update';
|
|
34
|
+
case 'updateMany':
|
|
35
|
+
case 'updateManyAndReturn':
|
|
36
|
+
return 'updateMany';
|
|
37
|
+
case 'upsert':
|
|
38
|
+
return 'upsert';
|
|
39
|
+
case 'delete':
|
|
40
|
+
return 'delete';
|
|
41
|
+
case 'deleteMany':
|
|
42
|
+
return 'deleteMany';
|
|
43
|
+
default:
|
|
44
|
+
return 'noop';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
14
47
|
function emitReadOp(meta, modelName) {
|
|
15
48
|
const c = meta.name.charAt(0).toUpperCase() + meta.name.slice(1);
|
|
16
49
|
const handlerName = `${modelName}${c}`;
|
|
17
50
|
const pathValue = pathExpr('basePath', meta.pathSuffix);
|
|
51
|
+
const opKind = opKindFor(meta.name);
|
|
18
52
|
const postReadBlock = meta.supportsPostRead
|
|
19
53
|
? ` if (postReadsEnabled) {
|
|
20
54
|
const postPath = ${meta.name === 'findMany' ? "basePath ? `${basePath}/read` : '/read'" : `path`}
|
|
21
|
-
router.post(
|
|
55
|
+
router.post(
|
|
56
|
+
postPath,
|
|
57
|
+
parseBodyAsQuery,
|
|
58
|
+
setShape(opConfig, '${opKind}'),
|
|
59
|
+
...opConfig.operationBefore,
|
|
60
|
+
requireVariantKey(),
|
|
61
|
+
variantBeforeDispatcher(opConfig),
|
|
62
|
+
${handlerName} as RequestHandler,
|
|
63
|
+
variantAfterDispatcher(opConfig),
|
|
64
|
+
...opConfig.operationAfter,
|
|
65
|
+
respond,
|
|
66
|
+
)
|
|
22
67
|
}`
|
|
23
68
|
: '';
|
|
24
69
|
return ` if (isEnabled(config.${meta.configKey})) {
|
|
25
|
-
const opConfig
|
|
26
|
-
const { before = [], after = [] } = opConfig
|
|
70
|
+
const opConfig = opFor('${meta.configKey}')
|
|
27
71
|
const path = ${pathValue}
|
|
28
|
-
router.get(
|
|
72
|
+
router.get(
|
|
73
|
+
path,
|
|
74
|
+
parseQuery,
|
|
75
|
+
setShape(opConfig, '${opKind}'),
|
|
76
|
+
...opConfig.operationBefore,
|
|
77
|
+
requireVariantKey(),
|
|
78
|
+
variantBeforeDispatcher(opConfig),
|
|
79
|
+
maybeProgressiveSSE(opConfig, core.${meta.coreName}, '${meta.name}'),
|
|
80
|
+
${handlerName} as RequestHandler,
|
|
81
|
+
variantAfterDispatcher(opConfig),
|
|
82
|
+
...opConfig.operationAfter,
|
|
83
|
+
respond,
|
|
84
|
+
)
|
|
29
85
|
${postReadBlock}
|
|
30
86
|
}`;
|
|
31
87
|
}
|
|
@@ -34,11 +90,21 @@ function emitWriteOp(meta, modelName) {
|
|
|
34
90
|
const handlerName = `${modelName}${c}`;
|
|
35
91
|
const pathValue = pathExpr('basePath', meta.pathSuffix);
|
|
36
92
|
const respondFn = meta.successStatus === 201 ? 'respondCreated' : 'respond';
|
|
93
|
+
const opKind = opKindFor(meta.name);
|
|
37
94
|
return ` if (isEnabled(config.${meta.configKey})) {
|
|
38
|
-
const opConfig
|
|
39
|
-
const { before = [], after = [] } = opConfig
|
|
95
|
+
const opConfig = opFor('${meta.configKey}')
|
|
40
96
|
const path = ${pathValue}
|
|
41
|
-
router.${meta.method}(
|
|
97
|
+
router.${meta.method}(
|
|
98
|
+
path,
|
|
99
|
+
setShape(opConfig, '${opKind}'),
|
|
100
|
+
...opConfig.operationBefore,
|
|
101
|
+
requireVariantKey(),
|
|
102
|
+
variantBeforeDispatcher(opConfig),
|
|
103
|
+
${handlerName} as RequestHandler,
|
|
104
|
+
variantAfterDispatcher(opConfig),
|
|
105
|
+
...opConfig.operationAfter,
|
|
106
|
+
${respondFn},
|
|
107
|
+
)
|
|
42
108
|
}`;
|
|
43
109
|
}
|
|
44
110
|
function generateRouterFunction({ model, enums, guardShapesImport, importStyle, writeStrategy, findManyPaginatedMode, dropGuard, }) {
|
|
@@ -72,10 +138,19 @@ import type {
|
|
|
72
138
|
import { parseQueryParams } from '../parseQueryParams${ext}'
|
|
73
139
|
import { sanitizeKeys, normalizePrefix, getEnv, isPlainObject } from '../misc${ext}'
|
|
74
140
|
import { buildModelOpenApi } from '../buildModelOpenApi${ext}'
|
|
75
|
-
import {
|
|
141
|
+
import {
|
|
142
|
+
normalizeOperation,
|
|
143
|
+
resolveOperationVariantKey,
|
|
144
|
+
validateCountSourceWhere,
|
|
145
|
+
validateOperationConfig,
|
|
146
|
+
validateUpdateEachConfig,
|
|
147
|
+
} from '../routeConfig${ext}'
|
|
148
|
+
import type { NormalizedOperationConfig } from '../routeConfig${ext}'
|
|
76
149
|
import type { OperationContext } from '../operationRuntime${ext}'
|
|
77
150
|
import { transformResult } from '../operationRuntime${ext}'
|
|
78
151
|
import { HttpError, mapError } from '../errorMapper${ext}'
|
|
152
|
+
import { formatGuardVariantResolutionError } from '../guardVariantError${ext}'
|
|
153
|
+
import type { GuardVariantResolution } from '../guardVariantRouting${ext}'
|
|
79
154
|
import { mergePaginationConfig } from '../pagination${ext}'
|
|
80
155
|
import {
|
|
81
156
|
acceptsEventStream,
|
|
@@ -86,10 +161,8 @@ import {
|
|
|
86
161
|
} from '../sse${ext}'
|
|
87
162
|
import { relationModels } from '../relationModels${ext}'
|
|
88
163
|
import { runAutoIncludeProgressive } from '../autoIncludeRuntime${ext}'
|
|
89
|
-
import {
|
|
90
|
-
|
|
91
|
-
applyProjectionToTarget,
|
|
92
|
-
} from '../projectionDefaults${ext}'
|
|
164
|
+
import { applyDroppedGuard } from '../projectionDefaults${ext}'
|
|
165
|
+
import type { OpKind } from '../projectionDefaults${ext}'
|
|
93
166
|
import { MODEL_FIELDS, MODEL_ENUMS } from './${modelName}Metadata${ext}'
|
|
94
167
|
|
|
95
168
|
${(0, generateRouteConfigType_1.generateRouteConfigType)(modelName, 'RequestHandler', guardShapesImport, importStyle, 'express')}
|
|
@@ -101,12 +174,25 @@ const DROP_GUARD = ${dropGuard} || _env.E2E === 'true'
|
|
|
101
174
|
type OperationConfigLike = {
|
|
102
175
|
before?: RequestHandler[]
|
|
103
176
|
after?: RequestHandler[]
|
|
104
|
-
shape?:
|
|
177
|
+
shape?: unknown
|
|
178
|
+
variants?: Record<
|
|
179
|
+
string,
|
|
180
|
+
{
|
|
181
|
+
shape?: unknown
|
|
182
|
+
before?: RequestHandler[]
|
|
183
|
+
after?: RequestHandler[]
|
|
184
|
+
}
|
|
185
|
+
>
|
|
105
186
|
pagination?: Partial<PaginationConfig>
|
|
106
187
|
progressive?: Record<string, ProgressiveVariantConfig>
|
|
107
188
|
progressiveStages?: Record<string, ProgressiveStage<unknown>>
|
|
108
189
|
}
|
|
109
190
|
|
|
191
|
+
type NormalizedOp = NormalizedOperationConfig<RequestHandler, RequestHandler> & {
|
|
192
|
+
progressive?: Record<string, ProgressiveVariantConfig>
|
|
193
|
+
progressiveStages?: Record<string, ProgressiveStage<unknown>>
|
|
194
|
+
}
|
|
195
|
+
|
|
110
196
|
type ExtendedRequest = Request & {
|
|
111
197
|
prisma?: unknown
|
|
112
198
|
postgres?: unknown
|
|
@@ -118,13 +204,20 @@ type LocalsBag = {
|
|
|
118
204
|
routeConfig?: { pagination?: PaginationConfig }
|
|
119
205
|
guardShape?: Record<string, unknown>
|
|
120
206
|
guardCaller?: string
|
|
207
|
+
guardVariantKey?: string
|
|
208
|
+
guardVariantFailure?: Extract<GuardVariantResolution, { ok: false }>
|
|
121
209
|
data?: unknown
|
|
122
210
|
}
|
|
123
211
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
212
|
+
function normalizeExpressOperation(
|
|
213
|
+
config: OperationConfigLike | undefined,
|
|
214
|
+
): NormalizedOp {
|
|
215
|
+
return {
|
|
216
|
+
...normalizeOperation<RequestHandler, RequestHandler>(config),
|
|
217
|
+
progressive: config?.progressive,
|
|
218
|
+
progressiveStages: config?.progressiveStages,
|
|
219
|
+
}
|
|
220
|
+
}
|
|
128
221
|
|
|
129
222
|
function isQueryBuilderEnabled(config: { queryBuilder?: QueryBuilderConfig | false }): boolean {
|
|
130
223
|
if (config.queryBuilder === false) return false
|
|
@@ -143,6 +236,87 @@ function readLocals(res: Response): LocalsBag {
|
|
|
143
236
|
return res.locals as LocalsBag
|
|
144
237
|
}
|
|
145
238
|
|
|
239
|
+
function runHandlerSequence(
|
|
240
|
+
handlers: readonly RequestHandler[],
|
|
241
|
+
req: Request,
|
|
242
|
+
res: Response,
|
|
243
|
+
done: (error?: unknown) => void,
|
|
244
|
+
): void {
|
|
245
|
+
let index = 0
|
|
246
|
+
|
|
247
|
+
const dispatch = (error?: unknown): void => {
|
|
248
|
+
if (error !== undefined) {
|
|
249
|
+
done(error)
|
|
250
|
+
return
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (res.writableEnded || res.destroyed) return
|
|
254
|
+
|
|
255
|
+
const handler = handlers[index++]
|
|
256
|
+
if (!handler) {
|
|
257
|
+
done()
|
|
258
|
+
return
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
let settled = false
|
|
262
|
+
const next = (nextError?: unknown): void => {
|
|
263
|
+
if (settled) return
|
|
264
|
+
settled = true
|
|
265
|
+
dispatch(nextError)
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
try {
|
|
269
|
+
const result = handler(req, res, next)
|
|
270
|
+
if (result && typeof (result as Promise<unknown>).then === 'function') {
|
|
271
|
+
void (result as Promise<unknown>).catch((promiseError) => {
|
|
272
|
+
if (settled) return
|
|
273
|
+
settled = true
|
|
274
|
+
dispatch(promiseError)
|
|
275
|
+
})
|
|
276
|
+
}
|
|
277
|
+
} catch (handlerError) {
|
|
278
|
+
if (settled) return
|
|
279
|
+
settled = true
|
|
280
|
+
dispatch(handlerError)
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
dispatch()
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function variantBeforeDispatcher(opConfig: NormalizedOp): RequestHandler {
|
|
288
|
+
return (req, res, next) => {
|
|
289
|
+
const key = readLocals(res).guardVariantKey
|
|
290
|
+
const hooks =
|
|
291
|
+
key !== undefined
|
|
292
|
+
? (opConfig.variantHooks[key]?.before ?? [])
|
|
293
|
+
: []
|
|
294
|
+
runHandlerSequence(hooks, req, res, next)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function variantAfterDispatcher(opConfig: NormalizedOp): RequestHandler {
|
|
299
|
+
return (req, res, next) => {
|
|
300
|
+
const key = readLocals(res).guardVariantKey
|
|
301
|
+
const hooks =
|
|
302
|
+
key !== undefined
|
|
303
|
+
? (opConfig.variantHooks[key]?.after ?? [])
|
|
304
|
+
: []
|
|
305
|
+
runHandlerSequence(hooks, req, res, next)
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
function requireVariantKey(): RequestHandler {
|
|
310
|
+
return (_req, res, next) => {
|
|
311
|
+
const failure = readLocals(res).guardVariantFailure
|
|
312
|
+
if (!failure) {
|
|
313
|
+
next()
|
|
314
|
+
return
|
|
315
|
+
}
|
|
316
|
+
next(new HttpError(400, formatGuardVariantResolutionError(failure)))
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
146
320
|
export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${modelName}RouteConfig<TCtx, TPrisma> = {}) {
|
|
147
321
|
validateCountSourceWhere(config.pagination?.countSource, '${modelName} pagination')
|
|
148
322
|
validateCountSourceWhere(
|
|
@@ -154,6 +328,12 @@ export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${m
|
|
|
154
328
|
|
|
155
329
|
const isEnabled = (value: unknown): boolean => value !== false && !!(config.enableAll || value)
|
|
156
330
|
|
|
331
|
+
const opFor = (key: string): NormalizedOp => {
|
|
332
|
+
const raw = (config as unknown as Record<string, unknown>)[key] as OperationConfigLike | undefined
|
|
333
|
+
validateOperationConfig(raw, '${modelName}.' + key)
|
|
334
|
+
return normalizeExpressOperation(raw)
|
|
335
|
+
}
|
|
336
|
+
|
|
157
337
|
const customPrefix = normalizePrefix(config.customUrlPrefix || '')
|
|
158
338
|
const modelPrefix = config.addModelPrefix !== false ? '/${modelNameLower}' : ''
|
|
159
339
|
const basePath = customPrefix + modelPrefix
|
|
@@ -240,7 +420,7 @@ export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${m
|
|
|
240
420
|
next()
|
|
241
421
|
}
|
|
242
422
|
|
|
243
|
-
const setShape = (opConfig:
|
|
423
|
+
const setShape = (opConfig: NormalizedOp, opKind: OpKind): RequestHandler => {
|
|
244
424
|
return async (req, res, next) => {
|
|
245
425
|
try {
|
|
246
426
|
const locals = readLocals(res)
|
|
@@ -248,35 +428,54 @@ export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${m
|
|
|
248
428
|
if (merged) {
|
|
249
429
|
locals.routeConfig = { pagination: merged }
|
|
250
430
|
}
|
|
431
|
+
|
|
251
432
|
const headerName = config.guard?.variantHeader || 'x-api-variant'
|
|
252
433
|
const headerValue = req.get(headerName)
|
|
253
434
|
const caller = config.guard?.resolveVariant?.(req) ?? headerValue ?? undefined
|
|
254
|
-
if (caller) locals.guardCaller = caller
|
|
255
|
-
|
|
435
|
+
if (typeof caller === 'string') locals.guardCaller = caller
|
|
436
|
+
|
|
437
|
+
const resolution = resolveOperationVariantKey(opConfig.guardRouting, caller)
|
|
438
|
+
if (!resolution.ok) {
|
|
439
|
+
locals.guardVariantFailure = resolution
|
|
440
|
+
next()
|
|
441
|
+
return
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
const resolvedKey =
|
|
445
|
+
opConfig.guardRouting.kind === 'named'
|
|
446
|
+
? resolution.key
|
|
447
|
+
: undefined
|
|
448
|
+
if (resolvedKey !== undefined) locals.guardVariantKey = resolvedKey
|
|
449
|
+
|
|
450
|
+
if (opConfig.guardShape) {
|
|
256
451
|
if (!DROP_GUARD) {
|
|
257
|
-
locals.guardShape = opConfig.
|
|
452
|
+
locals.guardShape = opConfig.guardShape
|
|
258
453
|
} else {
|
|
259
|
-
|
|
260
|
-
opConfig.
|
|
261
|
-
|
|
454
|
+
await applyDroppedGuard(
|
|
455
|
+
opConfig.guardShape,
|
|
456
|
+
resolvedKey,
|
|
262
457
|
buildResolveContext(req),
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
458
|
+
opKind,
|
|
459
|
+
{
|
|
460
|
+
readQuery: locals.parsedQuery,
|
|
461
|
+
writeBody: isPlainObject(req.body)
|
|
462
|
+
? (req.body as Record<string, unknown>)
|
|
463
|
+
: undefined,
|
|
464
|
+
},
|
|
465
|
+
() => {
|
|
266
466
|
if (!locals.parsedQuery) locals.parsedQuery = {}
|
|
267
|
-
|
|
268
|
-
}
|
|
467
|
+
return locals.parsedQuery
|
|
468
|
+
},
|
|
469
|
+
() => {
|
|
269
470
|
if (!isPlainObject(req.body)) {
|
|
270
471
|
req.body = {}
|
|
271
472
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
)
|
|
276
|
-
}
|
|
277
|
-
}
|
|
473
|
+
return req.body as Record<string, unknown>
|
|
474
|
+
},
|
|
475
|
+
)
|
|
278
476
|
}
|
|
279
477
|
}
|
|
478
|
+
|
|
280
479
|
next()
|
|
281
480
|
} catch (err) {
|
|
282
481
|
next(mapError(err))
|
|
@@ -285,7 +484,7 @@ export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${m
|
|
|
285
484
|
}
|
|
286
485
|
|
|
287
486
|
const maybeProgressiveSSE = (
|
|
288
|
-
opConfig:
|
|
487
|
+
opConfig: NormalizedOp,
|
|
289
488
|
coreFn: (ctx: OperationContext) => Promise<unknown>,
|
|
290
489
|
baseOp: string,
|
|
291
490
|
): RequestHandler => {
|
|
@@ -295,8 +494,9 @@ export function ${routerFunctionName}<TCtx = unknown, TPrisma = any>(config: ${m
|
|
|
295
494
|
if (!acceptsEventStream(req.headers.accept)) return next()
|
|
296
495
|
|
|
297
496
|
const locals = readLocals(res)
|
|
298
|
-
const variant = locals.guardCaller
|
|
299
|
-
const progressiveConfig =
|
|
497
|
+
const variant = locals.guardVariantKey ?? locals.guardCaller
|
|
498
|
+
const progressiveConfig =
|
|
499
|
+
variant !== undefined ? opConfig.progressive?.[variant] : undefined
|
|
300
500
|
|
|
301
501
|
try {
|
|
302
502
|
if (!progressiveConfig || progressiveConfig.enabled === false) {
|
|
@@ -424,19 +624,20 @@ ${readOpBlocks}
|
|
|
424
624
|
${writeOpBlocks}
|
|
425
625
|
|
|
426
626
|
if (config.updateEach) {
|
|
427
|
-
const
|
|
428
|
-
|
|
627
|
+
const rawUpdateEach = config.updateEach as unknown as OperationConfigLike
|
|
628
|
+
validateUpdateEachConfig(rawUpdateEach, '${modelName}.updateEach')
|
|
629
|
+
const opConfig = normalizeExpressOperation(rawUpdateEach)
|
|
630
|
+
if (opConfig.operationBefore.length === 0 && _env.NODE_ENV !== 'production') {
|
|
429
631
|
console.warn(
|
|
430
632
|
'[${modelName}Router] updateEach is enabled without a before hook. ' +
|
|
431
633
|
'This endpoint bypasses guard shapes and should be protected by authentication middleware.',
|
|
432
634
|
)
|
|
433
635
|
}
|
|
434
|
-
const { before = [], after = [] } = opConfig
|
|
435
636
|
const path = basePath ? \`\${basePath}/each\` : '/each'
|
|
436
637
|
router.post(
|
|
437
638
|
path,
|
|
438
|
-
setShape(opConfig, '
|
|
439
|
-
...
|
|
639
|
+
setShape(opConfig, 'noop'),
|
|
640
|
+
...opConfig.operationBefore,
|
|
440
641
|
async (req: Request, res: Response, next: NextFunction) => {
|
|
441
642
|
try {
|
|
442
643
|
if (!Array.isArray(req.body)) {
|
|
@@ -449,7 +650,7 @@ ${writeOpBlocks}
|
|
|
449
650
|
next(mapError(err))
|
|
450
651
|
}
|
|
451
652
|
},
|
|
452
|
-
...
|
|
653
|
+
...opConfig.operationAfter,
|
|
453
654
|
respond,
|
|
454
655
|
)
|
|
455
656
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRouter.js","sourceRoot":"","sources":["../../src/generators/generateRouter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateRouter.js","sourceRoot":"","sources":["../../src/generators/generateRouter.ts"],"names":[],"mappings":"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"}
|