@baseplate-dev/fastify-generators 0.5.0 → 0.5.2
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/CHANGELOG.md +578 -0
- package/dist/constants/fastify-packages.d.ts +6 -5
- package/dist/constants/fastify-packages.d.ts.map +1 -1
- package/dist/constants/fastify-packages.js +6 -5
- package/dist/constants/fastify-packages.js.map +1 -1
- package/dist/generators/auth/auth-context/auth-context.generator.d.ts +1 -0
- package/dist/generators/auth/auth-context/auth-context.generator.d.ts.map +1 -1
- package/dist/generators/auth/auth-context/generated/index.d.ts +3 -0
- package/dist/generators/auth/auth-context/generated/index.d.ts.map +1 -1
- package/dist/generators/auth/auth-context/generated/template-renderers.d.ts +1 -0
- package/dist/generators/auth/auth-context/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/auth/auth-context/generated/typed-templates.d.ts +4 -0
- package/dist/generators/auth/auth-context/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/auth/auth-context/templates/module/utils/auth-context.utils.ts +1 -1
- package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.d.ts +1 -0
- package/dist/generators/auth/authorizer-utils-stub/authorizer-utils-stub.generator.d.ts.map +1 -1
- package/dist/generators/auth/authorizer-utils-stub/generated/index.d.ts +2 -0
- package/dist/generators/auth/authorizer-utils-stub/generated/index.d.ts.map +1 -1
- package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.d.ts +1 -0
- package/dist/generators/auth/authorizer-utils-stub/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.d.ts +2 -0
- package/dist/generators/auth/authorizer-utils-stub/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/core/app-module/app-module.generator.d.ts.map +1 -1
- package/dist/generators/core/app-module/app-module.generator.js.map +1 -1
- package/dist/generators/core/app-module-setup/app-module-setup.generator.js +2 -2
- package/dist/generators/core/app-module-setup/app-module-setup.generator.js.map +1 -1
- package/dist/generators/core/axios/axios.generator.d.ts.map +1 -1
- package/dist/generators/core/axios/axios.generator.js +6 -1
- package/dist/generators/core/axios/axios.generator.js.map +1 -1
- package/dist/generators/core/error-handler-service/error-handler-service.generator.d.ts +2 -0
- package/dist/generators/core/error-handler-service/error-handler-service.generator.d.ts.map +1 -1
- package/dist/generators/core/error-handler-service/generated/index.d.ts +1 -0
- package/dist/generators/core/error-handler-service/generated/index.d.ts.map +1 -1
- package/dist/generators/core/error-handler-service/generated/ts-import-providers.d.ts +3 -0
- package/dist/generators/core/error-handler-service/generated/ts-import-providers.d.ts.map +1 -1
- package/dist/generators/core/error-handler-service/generated/ts-import-providers.js +2 -0
- package/dist/generators/core/error-handler-service/generated/ts-import-providers.js.map +1 -1
- package/dist/generators/core/error-handler-service/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/core/error-handler-service/generated/typed-templates.js +1 -0
- package/dist/generators/core/error-handler-service/generated/typed-templates.js.map +1 -1
- package/dist/generators/core/error-handler-service/templates/src/plugins/error-handler.ts +5 -0
- package/dist/generators/core/error-handler-service/templates/src/utils/http-errors.ts +16 -0
- package/dist/generators/core/fastify/fastify.generator.js +2 -1
- package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
- package/dist/generators/core/fastify-cookie-context/fastify-cookie-context.generator.js +1 -1
- package/dist/generators/core/fastify-cookie-context/fastify-cookie-context.generator.js.map +1 -1
- package/dist/generators/core/fastify-graceful-shutdown/fastify-graceful-shutdown.generator.d.ts +1 -0
- package/dist/generators/core/fastify-graceful-shutdown/fastify-graceful-shutdown.generator.d.ts.map +1 -1
- package/dist/generators/core/fastify-graceful-shutdown/generated/index.d.ts +2 -0
- package/dist/generators/core/fastify-graceful-shutdown/generated/index.d.ts.map +1 -1
- package/dist/generators/core/fastify-graceful-shutdown/generated/template-renderers.d.ts +1 -0
- package/dist/generators/core/fastify-graceful-shutdown/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/core/fastify-graceful-shutdown/generated/typed-templates.d.ts +1 -0
- package/dist/generators/core/fastify-graceful-shutdown/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.d.ts +1 -0
- package/dist/generators/core/fastify-sentry/fastify-sentry.generator.d.ts.map +1 -1
- package/dist/generators/core/fastify-sentry/generated/index.d.ts +2 -0
- package/dist/generators/core/fastify-sentry/generated/index.d.ts.map +1 -1
- package/dist/generators/core/fastify-sentry/generated/template-renderers.d.ts +1 -0
- package/dist/generators/core/fastify-sentry/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/core/fastify-sentry/generated/typed-templates.d.ts +1 -0
- package/dist/generators/core/fastify-sentry/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/core/logger-service/logger-service.generator.js +4 -3
- package/dist/generators/core/logger-service/logger-service.generator.js.map +1 -1
- package/dist/generators/core/service-file/service-file.generator.js +2 -2
- package/dist/generators/core/service-file/service-file.generator.js.map +1 -1
- package/dist/generators/index.d.ts +0 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +0 -1
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +2 -4
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +27 -39
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +28 -62
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
- package/dist/generators/prisma/_shared/crud-method/primary-key-input.d.ts +10 -0
- package/dist/generators/prisma/_shared/crud-method/primary-key-input.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/crud-method/primary-key-input.js +28 -2
- package/dist/generators/prisma/_shared/crud-method/primary-key-input.js.map +1 -1
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +1 -0
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/index.d.ts +2 -0
- package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +1 -0
- package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +2 -0
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts +139 -75
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +86 -104
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +4 -2
- package/dist/generators/prisma/index.d.ts +1 -0
- package/dist/generators/prisma/index.d.ts.map +1 -1
- package/dist/generators/prisma/index.js +1 -0
- package/dist/generators/prisma/index.js.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +2 -0
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +1 -0
- package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +2 -0
- package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +1 -0
- package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +6 -1
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js +10 -9
- package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js.map +1 -1
- package/dist/generators/prisma/prisma-model-authorizer/index.d.ts +2 -0
- package/dist/generators/prisma/prisma-model-authorizer/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-authorizer/index.js +2 -0
- package/dist/generators/prisma/prisma-model-authorizer/index.js.map +1 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts +54 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js +96 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js.map +1 -0
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.d.ts +1 -0
- package/dist/generators/stripe/fastify-stripe/fastify-stripe.generator.d.ts.map +1 -1
- package/dist/generators/stripe/fastify-stripe/generated/index.d.ts +2 -0
- package/dist/generators/stripe/fastify-stripe/generated/index.d.ts.map +1 -1
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.d.ts +1 -0
- package/dist/generators/stripe/fastify-stripe/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.d.ts +2 -0
- package/dist/generators/stripe/fastify-stripe/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/generated/index.d.ts +4 -0
- package/dist/generators/yoga/yoga-plugin/generated/index.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/generated/template-renderers.d.ts +1 -0
- package/dist/generators/yoga/yoga-plugin/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/generated/typed-templates.d.ts +4 -0
- package/dist/generators/yoga/yoga-plugin/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.d.ts +2 -0
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.d.ts.map +1 -1
- package/dist/generators/yoga/yoga-plugin/yoga-plugin.generator.js.map +1 -1
- package/dist/types/service-output.d.ts.map +1 -1
- package/dist/types/service-output.js.map +1 -1
- package/dist/writers/pothos/scalars.d.ts.map +1 -1
- package/dist/writers/pothos/scalars.js.map +1 -1
- package/dist/writers/prisma-schema/model-writer.js +2 -2
- package/dist/writers/prisma-schema/model-writer.js.map +1 -1
- package/package.json +10 -10
- package/dist/generators/email/fastify-postmark/fastify-postmark.generator.d.ts +0 -25
- package/dist/generators/email/fastify-postmark/fastify-postmark.generator.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/fastify-postmark.generator.js +0 -66
- package/dist/generators/email/fastify-postmark/fastify-postmark.generator.js.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/index.d.ts +0 -33
- package/dist/generators/email/fastify-postmark/generated/index.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/index.js +0 -9
- package/dist/generators/email/fastify-postmark/generated/index.js.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/template-paths.d.ts +0 -12
- package/dist/generators/email/fastify-postmark/generated/template-paths.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/template-paths.js +0 -22
- package/dist/generators/email/fastify-postmark/generated/template-paths.js.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/template-renderers.d.ts +0 -21
- package/dist/generators/email/fastify-postmark/generated/template-renderers.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/template-renderers.js +0 -39
- package/dist/generators/email/fastify-postmark/generated/template-renderers.js.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/typed-templates.d.ts +0 -11
- package/dist/generators/email/fastify-postmark/generated/typed-templates.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/generated/typed-templates.js +0 -14
- package/dist/generators/email/fastify-postmark/generated/typed-templates.js.map +0 -1
- package/dist/generators/email/fastify-postmark/index.d.ts +0 -2
- package/dist/generators/email/fastify-postmark/index.d.ts.map +0 -1
- package/dist/generators/email/fastify-postmark/index.js +0 -2
- package/dist/generators/email/fastify-postmark/index.js.map +0 -1
- package/dist/generators/email/fastify-postmark/templates/src/services/postmark.ts +0 -60
- package/dist/generators/email/index.d.ts +0 -2
- package/dist/generators/email/index.d.ts.map +0 -1
- package/dist/generators/email/index.js +0 -2
- package/dist/generators/email/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAC"}
|
|
@@ -29,6 +29,7 @@ export declare const PRISMA_DATA_UTILS_RENDERERS: {
|
|
|
29
29
|
InternalServerError: {};
|
|
30
30
|
logError: {};
|
|
31
31
|
NotFoundError: {};
|
|
32
|
+
TooManyRequestsError: {};
|
|
32
33
|
UnauthorizedError: {};
|
|
33
34
|
}>>;
|
|
34
35
|
paths: import("@baseplate-dev/sync").ProviderType<import("./template-paths.js").PrismaDataUtilsPaths>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-renderers.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/template-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE;QACnB,MAAM,EAAE,CACN,OAAO,EAAE,IAAI,CACX,gCAAgC,CAC9B,OAAO,2BAA2B,CAAC,mBAAmB,CACvD,EACD,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAC5D,KACE,aAAa,CAAC;KACpB,CAAC;CACH;AAmDD,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"template-renderers.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/template-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE;QACnB,MAAM,EAAE,CACN,OAAO,EAAE,IAAI,CACX,gCAAgC,CAC9B,OAAO,2BAA2B,CAAC,mBAAmB,CACvD,EACD,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAC5D,KACE,aAAa,CAAC;KACpB,CAAC;CACH;AAmDD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGvC,CAAC"}
|
|
@@ -18,6 +18,7 @@ export declare const dataOperationsGroup: {
|
|
|
18
18
|
InternalServerError: {};
|
|
19
19
|
logError: {};
|
|
20
20
|
NotFoundError: {};
|
|
21
|
+
TooManyRequestsError: {};
|
|
21
22
|
UnauthorizedError: {};
|
|
22
23
|
}>>;
|
|
23
24
|
prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
@@ -106,6 +107,7 @@ export declare const PRISMA_DATA_UTILS_TEMPLATES: {
|
|
|
106
107
|
InternalServerError: {};
|
|
107
108
|
logError: {};
|
|
108
109
|
NotFoundError: {};
|
|
110
|
+
TooManyRequestsError: {};
|
|
109
111
|
UnauthorizedError: {};
|
|
110
112
|
}>>;
|
|
111
113
|
prismaGeneratedImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-templates.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/typed-templates.ts"],"names":[],"mappings":"AAmJA,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"typed-templates.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/data-utils/generated/typed-templates.ts"],"names":[],"mappings":"AAmJA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO/B,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA0B,CAAC"}
|
package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts
CHANGED
|
@@ -66,6 +66,20 @@ export async function invokeHooks<TContext>(
|
|
|
66
66
|
await Promise.all(hooks.map((hook) => hook(context)));
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
/**
|
|
70
|
+
* Checks if any hooks are present that could modify data after the initial operation.
|
|
71
|
+
* Used to determine if a re-fetch is needed after operation completes.
|
|
72
|
+
*
|
|
73
|
+
* @param hooks - The hooks object to check
|
|
74
|
+
* @returns true if afterExecute or afterCommit hooks exist
|
|
75
|
+
*/
|
|
76
|
+
function hasPostExecuteHooks(hooks: AnyOperationHooks): boolean {
|
|
77
|
+
return (
|
|
78
|
+
(hooks.afterExecute?.length ?? 0) > 0 ||
|
|
79
|
+
(hooks.afterCommit?.length ?? 0) > 0
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
69
83
|
type FieldDataOrFunction<TField extends AnyFieldDefinition> =
|
|
70
84
|
| InferFieldOutput<TField>
|
|
71
85
|
| ((tx: PrismaTransaction) => Promise<InferFieldOutput<TField>>);
|
|
@@ -333,6 +347,19 @@ export interface CreateOperationConfig<
|
|
|
333
347
|
* Optional hooks for the operation
|
|
334
348
|
*/
|
|
335
349
|
hooks?: OperationHooks<GetPayload<TModelName>>;
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Function to extract unique identifier from the created result.
|
|
353
|
+
* Required for re-fetching fresh data after hooks modify related records.
|
|
354
|
+
*
|
|
355
|
+
* @example
|
|
356
|
+
* ```typescript
|
|
357
|
+
* getWhereUnique: (result) => ({ id: result.id })
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
getWhereUnique: (
|
|
361
|
+
result: GetPayload<TModelName>,
|
|
362
|
+
) => WhereUniqueInput<TModelName>;
|
|
336
363
|
}
|
|
337
364
|
|
|
338
365
|
/**
|
|
@@ -488,49 +515,69 @@ export function defineCreateOperation<
|
|
|
488
515
|
],
|
|
489
516
|
};
|
|
490
517
|
|
|
491
|
-
//
|
|
492
|
-
|
|
493
|
-
.$transaction(async (tx) => {
|
|
494
|
-
const txContext: TransactionalOperationContext<
|
|
495
|
-
GetPayload<TModelName>,
|
|
496
|
-
{ hasResult: false }
|
|
497
|
-
> = {
|
|
498
|
-
...baseOperationContext,
|
|
499
|
-
tx,
|
|
500
|
-
};
|
|
518
|
+
// Check if we need to re-fetch after hooks (hooks may modify related records)
|
|
519
|
+
const needsRefetch = hasPostExecuteHooks(allHooks);
|
|
501
520
|
|
|
502
|
-
|
|
503
|
-
|
|
521
|
+
// Execute in transaction
|
|
522
|
+
const transactionResult = await prisma.$transaction(async (tx) => {
|
|
523
|
+
const txContext: TransactionalOperationContext<
|
|
524
|
+
GetPayload<TModelName>,
|
|
525
|
+
{ hasResult: false }
|
|
526
|
+
> = {
|
|
527
|
+
...baseOperationContext,
|
|
528
|
+
tx,
|
|
529
|
+
};
|
|
530
|
+
|
|
531
|
+
// Run beforeExecute hooks
|
|
532
|
+
await invokeHooks(allHooks.beforeExecute, txContext);
|
|
533
|
+
|
|
534
|
+
// Run all async create data transformations
|
|
535
|
+
const awaitedFieldsData =
|
|
536
|
+
typeof fieldsData === 'function' ? await fieldsData(tx) : fieldsData;
|
|
537
|
+
|
|
538
|
+
// If re-fetching, don't include relations in initial create
|
|
539
|
+
const createQuery = needsRefetch
|
|
540
|
+
? ({} as { include: NonNullable<TQueryArgs['include']> })
|
|
541
|
+
: ((query ?? {}) as { include: NonNullable<TQueryArgs['include']> });
|
|
542
|
+
|
|
543
|
+
const result = await config.create({
|
|
544
|
+
tx,
|
|
545
|
+
data: { ...awaitedFieldsData.create, ...preparedData },
|
|
546
|
+
query: createQuery,
|
|
547
|
+
serviceContext: context,
|
|
548
|
+
});
|
|
504
549
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
550
|
+
// Run afterExecute hooks
|
|
551
|
+
await invokeHooks(allHooks.afterExecute, {
|
|
552
|
+
...txContext,
|
|
553
|
+
result,
|
|
554
|
+
});
|
|
508
555
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
data: { ...awaitedFieldsData.create, ...preparedData },
|
|
512
|
-
query: (query ?? {}) as {
|
|
513
|
-
include: NonNullable<TQueryArgs['include']>;
|
|
514
|
-
},
|
|
515
|
-
serviceContext: context,
|
|
516
|
-
});
|
|
556
|
+
return result;
|
|
557
|
+
});
|
|
517
558
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
559
|
+
// Run afterCommit hooks (outside transaction)
|
|
560
|
+
await invokeHooks(allHooks.afterCommit, {
|
|
561
|
+
...baseOperationContext,
|
|
562
|
+
result: transactionResult,
|
|
563
|
+
});
|
|
523
564
|
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
return result as GetPayload<TModelName, TQueryArgs>;
|
|
565
|
+
// Re-fetch if hooks existed and query includes relations
|
|
566
|
+
if (needsRefetch && query?.include) {
|
|
567
|
+
const delegate = makeGenericPrismaDelegate(prisma, config.model);
|
|
568
|
+
const freshResult = await delegate.findUnique<TQueryArgs>({
|
|
569
|
+
where: config.getWhereUnique(
|
|
570
|
+
transactionResult as unknown as GetPayload<TModelName>,
|
|
571
|
+
),
|
|
572
|
+
include: query.include,
|
|
533
573
|
});
|
|
574
|
+
if (!freshResult) {
|
|
575
|
+
throw new NotFoundError(`${config.model} not found after create`);
|
|
576
|
+
}
|
|
577
|
+
return freshResult as GetPayload<TModelName, TQueryArgs>;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
return transactionResult as GetPayload<TModelName, TQueryArgs>;
|
|
534
581
|
};
|
|
535
582
|
createOperation.$dataSchema = dataSchema;
|
|
536
583
|
return createOperation;
|
|
@@ -809,50 +856,67 @@ export function defineUpdateOperation<
|
|
|
809
856
|
],
|
|
810
857
|
};
|
|
811
858
|
|
|
812
|
-
//
|
|
813
|
-
|
|
814
|
-
.$transaction(async (tx) => {
|
|
815
|
-
const txContext: TransactionalOperationContext<
|
|
816
|
-
GetPayload<TModelName>,
|
|
817
|
-
{ hasResult: false }
|
|
818
|
-
> = {
|
|
819
|
-
...baseOperationContext,
|
|
820
|
-
tx,
|
|
821
|
-
};
|
|
859
|
+
// Check if we need to re-fetch after hooks (hooks may modify related records)
|
|
860
|
+
const needsRefetch = hasPostExecuteHooks(allHooks);
|
|
822
861
|
|
|
823
|
-
|
|
824
|
-
|
|
862
|
+
// Execute in transaction
|
|
863
|
+
const transactionResult = await prisma.$transaction(async (tx) => {
|
|
864
|
+
const txContext: TransactionalOperationContext<
|
|
865
|
+
GetPayload<TModelName>,
|
|
866
|
+
{ hasResult: false }
|
|
867
|
+
> = {
|
|
868
|
+
...baseOperationContext,
|
|
869
|
+
tx,
|
|
870
|
+
};
|
|
871
|
+
|
|
872
|
+
// Run beforeExecute hooks
|
|
873
|
+
await invokeHooks(allHooks.beforeExecute, txContext);
|
|
874
|
+
|
|
875
|
+
// Run all async update data transformations
|
|
876
|
+
const awaitedFieldsData =
|
|
877
|
+
typeof fieldsData === 'function' ? await fieldsData(tx) : fieldsData;
|
|
878
|
+
|
|
879
|
+
// If re-fetching, don't bother including relations in initial update
|
|
880
|
+
const updateQuery = needsRefetch
|
|
881
|
+
? ({} as { include: NonNullable<TQueryArgs['include']> })
|
|
882
|
+
: ((query ?? {}) as { include: NonNullable<TQueryArgs['include']> });
|
|
883
|
+
|
|
884
|
+
const result = await config.update({
|
|
885
|
+
tx,
|
|
886
|
+
where,
|
|
887
|
+
data: { ...awaitedFieldsData.update, ...preparedData },
|
|
888
|
+
query: updateQuery,
|
|
889
|
+
serviceContext: context,
|
|
890
|
+
});
|
|
825
891
|
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
892
|
+
// Run afterExecute hooks
|
|
893
|
+
await invokeHooks(allHooks.afterExecute, {
|
|
894
|
+
...txContext,
|
|
895
|
+
result,
|
|
896
|
+
});
|
|
829
897
|
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
where,
|
|
833
|
-
data: { ...awaitedFieldsData.update, ...preparedData },
|
|
834
|
-
query: (query ?? {}) as {
|
|
835
|
-
include: NonNullable<TQueryArgs['include']>;
|
|
836
|
-
},
|
|
837
|
-
serviceContext: context,
|
|
838
|
-
});
|
|
898
|
+
return result;
|
|
899
|
+
});
|
|
839
900
|
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
901
|
+
// Run afterCommit hooks (outside transaction)
|
|
902
|
+
await invokeHooks(allHooks.afterCommit, {
|
|
903
|
+
...baseOperationContext,
|
|
904
|
+
result: transactionResult,
|
|
905
|
+
});
|
|
845
906
|
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
...baseOperationContext,
|
|
852
|
-
result,
|
|
853
|
-
});
|
|
854
|
-
return result as GetPayload<TModelName, TQueryArgs>;
|
|
907
|
+
// Re-fetch if hooks existed and query includes relations
|
|
908
|
+
if (needsRefetch && query?.include) {
|
|
909
|
+
const freshResult = await delegate.findUnique<TQueryArgs>({
|
|
910
|
+
where,
|
|
911
|
+
include: query.include,
|
|
855
912
|
});
|
|
913
|
+
if (!freshResult) {
|
|
914
|
+
throw new NotFoundError(`${config.model} not found after update`);
|
|
915
|
+
}
|
|
916
|
+
return freshResult as GetPayload<TModelName, TQueryArgs>;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
return transactionResult as GetPayload<TModelName, TQueryArgs>;
|
|
856
920
|
};
|
|
857
921
|
updateOperation.$dataSchema = generateCreateSchema(config.fields).partial();
|
|
858
922
|
return updateOperation;
|
package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts
CHANGED
|
@@ -30,64 +30,32 @@ import { makeGenericPrismaDelegate } from '$prismaUtils';
|
|
|
30
30
|
import { prisma } from '%prismaImports';
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* Create a simple scalar field with validation
|
|
33
|
+
* Create a simple scalar field with validation
|
|
34
34
|
*
|
|
35
35
|
* This helper creates a field definition that validates input using a Zod schema.
|
|
36
|
-
*
|
|
37
|
-
* into a different type for Prisma operations.
|
|
38
|
-
*
|
|
39
|
-
* For relation fields (e.g., `userId`), use this helper to validate the ID,
|
|
40
|
-
* then use relation helpers in the transform step to create Prisma connect/disconnect objects.
|
|
36
|
+
* The validated value is used directly for both create and update operations.
|
|
41
37
|
*
|
|
42
38
|
* @template TSchema - The Zod schema type for validation
|
|
43
|
-
* @template TTransformed - The output type after transformation (defaults to schema output)
|
|
44
39
|
* @param schema - Zod schema for validation
|
|
45
|
-
* @param options - Optional configuration
|
|
46
|
-
* @param options.transform - Function to transform the validated value
|
|
47
40
|
* @returns Field definition
|
|
48
41
|
*
|
|
49
42
|
* @example
|
|
50
43
|
* ```typescript
|
|
51
|
-
* // Simple validation
|
|
52
44
|
* const fields = {
|
|
53
45
|
* title: scalarField(z.string()),
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* // With transformation
|
|
58
|
-
* const fields = {
|
|
59
|
-
* email: scalarField(
|
|
60
|
-
* z.email(),
|
|
61
|
-
* { transform: (email) => email.toLowerCase() }
|
|
62
|
-
* ),
|
|
63
|
-
* createdAt: scalarField(
|
|
64
|
-
* z.string().datetime(),
|
|
65
|
-
* { transform: (dateStr) => new Date(dateStr) }
|
|
66
|
-
* ),
|
|
46
|
+
* email: scalarField(z.string().email()),
|
|
47
|
+
* age: scalarField(z.number().int().positive()),
|
|
67
48
|
* };
|
|
68
49
|
* ```
|
|
69
50
|
*/
|
|
70
|
-
export function scalarField<
|
|
71
|
-
TSchema extends z.ZodType,
|
|
72
|
-
TTransformed = z.output<TSchema>,
|
|
73
|
-
>(
|
|
51
|
+
export function scalarField<TSchema extends z.ZodType>(
|
|
74
52
|
schema: TSchema,
|
|
75
|
-
|
|
76
|
-
transform?: (value: z.output<TSchema>) => TTransformed;
|
|
77
|
-
},
|
|
78
|
-
): FieldDefinition<TSchema, TTransformed, TTransformed> {
|
|
53
|
+
): FieldDefinition<TSchema, z.output<TSchema>, z.output<TSchema>> {
|
|
79
54
|
return {
|
|
80
55
|
schema,
|
|
81
|
-
processInput: (value) => {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
? options.transform(value)
|
|
85
|
-
: (value as TTransformed);
|
|
86
|
-
|
|
87
|
-
return {
|
|
88
|
-
data: { create: transformed, update: transformed },
|
|
89
|
-
};
|
|
90
|
-
},
|
|
56
|
+
processInput: (value) => ({
|
|
57
|
+
data: { create: value, update: value },
|
|
58
|
+
}),
|
|
91
59
|
};
|
|
92
60
|
}
|
|
93
61
|
|
|
@@ -145,11 +113,6 @@ type RelationName<TModelName extends ModelPropName> = keyof Payload<
|
|
|
145
113
|
(typeof prisma)[TModelName]
|
|
146
114
|
>['objects'];
|
|
147
115
|
|
|
148
|
-
interface PrismaFieldData<TModelName extends ModelPropName> {
|
|
149
|
-
create: CreateInput<TModelName>;
|
|
150
|
-
update: UpdateInput<TModelName>;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
116
|
/**
|
|
154
117
|
* Configuration for defining a nested one-to-one relationship field.
|
|
155
118
|
*
|
|
@@ -196,20 +159,29 @@ export interface NestedOneToOneFieldConfig<
|
|
|
196
159
|
) => WhereUniqueInput<TModelName>;
|
|
197
160
|
|
|
198
161
|
/**
|
|
199
|
-
* Transform validated field data into final Prisma structure
|
|
162
|
+
* Transform validated create field data into final Prisma structure
|
|
200
163
|
*/
|
|
201
|
-
|
|
202
|
-
data:
|
|
203
|
-
|
|
204
|
-
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>;
|
|
205
|
-
update: InferFieldsUpdateOutput<TFields>;
|
|
206
|
-
},
|
|
164
|
+
buildCreateData: (
|
|
165
|
+
data: InferFieldsCreateOutput<TFields> &
|
|
166
|
+
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>,
|
|
207
167
|
parentModel: GetPayload<TParentModelName>,
|
|
208
168
|
ctx: TransactionalOperationContext<
|
|
209
169
|
GetPayload<TModelName>,
|
|
210
170
|
{ hasResult: false }
|
|
211
171
|
>,
|
|
212
|
-
) =>
|
|
172
|
+
) => CreateInput<TModelName> | Promise<CreateInput<TModelName>>;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Transform validated update field data into final Prisma structure
|
|
176
|
+
*/
|
|
177
|
+
buildUpdateData: (
|
|
178
|
+
data: InferFieldsUpdateOutput<TFields>,
|
|
179
|
+
parentModel: GetPayload<TParentModelName>,
|
|
180
|
+
ctx: TransactionalOperationContext<
|
|
181
|
+
GetPayload<TModelName>,
|
|
182
|
+
{ hasResult: false }
|
|
183
|
+
>,
|
|
184
|
+
) => UpdateInput<TModelName> | Promise<UpdateInput<TModelName>>;
|
|
213
185
|
}
|
|
214
186
|
|
|
215
187
|
/**
|
|
@@ -319,9 +291,9 @@ export function nestedOneToOneField<
|
|
|
319
291
|
);
|
|
320
292
|
const prismaDelegate = makeGenericPrismaDelegate(prisma, config.model);
|
|
321
293
|
cachedExisting =
|
|
322
|
-
(await prismaDelegate.findUnique({
|
|
294
|
+
((await prismaDelegate.findUnique({
|
|
323
295
|
where: whereUnique,
|
|
324
|
-
})) ?? undefined;
|
|
296
|
+
})) as GetPayload<TModelName> | null) ?? undefined;
|
|
325
297
|
return cachedExisting;
|
|
326
298
|
}
|
|
327
299
|
|
|
@@ -351,9 +323,14 @@ export function nestedOneToOneField<
|
|
|
351
323
|
const parentWhereUnique = config.parentModel.getWhereUnique(
|
|
352
324
|
ctx.result as GetPayload<TParentModelName>,
|
|
353
325
|
);
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
326
|
+
const sharedCtx = {
|
|
327
|
+
...ctx,
|
|
328
|
+
operation: 'upsert' as const,
|
|
329
|
+
loadExisting,
|
|
330
|
+
};
|
|
331
|
+
const [builtCreate, builtUpdate] = await Promise.all([
|
|
332
|
+
config.buildCreateData(
|
|
333
|
+
{
|
|
357
334
|
...awaitedData.create,
|
|
358
335
|
...({
|
|
359
336
|
[config.relationName]: { connect: parentWhereUnique },
|
|
@@ -362,15 +339,15 @@ export function nestedOneToOneField<
|
|
|
362
339
|
{ connect: WhereUniqueInput<TParentModelName> }
|
|
363
340
|
>),
|
|
364
341
|
},
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
);
|
|
342
|
+
ctx.result as GetPayload<TParentModelName>,
|
|
343
|
+
sharedCtx,
|
|
344
|
+
),
|
|
345
|
+
config.buildUpdateData(
|
|
346
|
+
awaitedData.update,
|
|
347
|
+
ctx.result as GetPayload<TParentModelName>,
|
|
348
|
+
sharedCtx,
|
|
349
|
+
),
|
|
350
|
+
]);
|
|
374
351
|
const prismaDelegate = makeGenericPrismaDelegate(
|
|
375
352
|
ctx.tx,
|
|
376
353
|
config.model,
|
|
@@ -378,8 +355,8 @@ export function nestedOneToOneField<
|
|
|
378
355
|
|
|
379
356
|
newModelResult = await prismaDelegate.upsert({
|
|
380
357
|
where: whereUnique,
|
|
381
|
-
create:
|
|
382
|
-
update:
|
|
358
|
+
create: builtCreate,
|
|
359
|
+
update: builtUpdate,
|
|
383
360
|
});
|
|
384
361
|
|
|
385
362
|
await invokeHooks(hooks.afterExecute, {
|
|
@@ -455,29 +432,30 @@ export interface NestedOneToManyFieldConfig<
|
|
|
455
432
|
) => WhereUniqueInput<TModelName> | undefined;
|
|
456
433
|
|
|
457
434
|
/**
|
|
458
|
-
* Transform validated field data into final Prisma structure for a single item.
|
|
435
|
+
* Transform validated create field data into final Prisma structure for a single item.
|
|
459
436
|
* The returned payload should not include the parent relation field, as it will be added automatically.
|
|
460
437
|
*/
|
|
461
|
-
|
|
462
|
-
data:
|
|
463
|
-
|
|
464
|
-
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>;
|
|
465
|
-
update: InferFieldsUpdateOutput<TFields>;
|
|
466
|
-
},
|
|
438
|
+
buildCreateData: (
|
|
439
|
+
data: InferFieldsCreateOutput<TFields> &
|
|
440
|
+
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>,
|
|
467
441
|
parentModel: GetPayload<TParentModelName>,
|
|
468
442
|
ctx: TransactionalOperationContext<
|
|
469
443
|
GetPayload<TModelName> | undefined,
|
|
470
444
|
{ hasResult: false }
|
|
471
445
|
>,
|
|
472
|
-
) =>
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
446
|
+
) => CreateInput<TModelName> | Promise<CreateInput<TModelName>>;
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Transform validated update field data into final Prisma structure for a single item.
|
|
450
|
+
*/
|
|
451
|
+
buildUpdateData: (
|
|
452
|
+
data: InferFieldsUpdateOutput<TFields>,
|
|
453
|
+
parentModel: GetPayload<TParentModelName>,
|
|
454
|
+
ctx: TransactionalOperationContext<
|
|
455
|
+
GetPayload<TModelName> | undefined,
|
|
456
|
+
{ hasResult: false }
|
|
457
|
+
>,
|
|
458
|
+
) => UpdateInput<TModelName> | Promise<UpdateInput<TModelName>>;
|
|
481
459
|
}
|
|
482
460
|
|
|
483
461
|
/**
|
|
@@ -640,9 +618,9 @@ export function nestedOneToManyField<
|
|
|
640
618
|
if (cachedExisting) return cachedExisting;
|
|
641
619
|
if (!whereUnique) return undefined;
|
|
642
620
|
cachedExisting =
|
|
643
|
-
(await delegate.findUnique({
|
|
621
|
+
((await delegate.findUnique({
|
|
644
622
|
where: { ...whereUnique, ...whereFromOriginalModel },
|
|
645
|
-
})) ?? undefined;
|
|
623
|
+
})) as GetPayload<TModelName> | null) ?? undefined;
|
|
646
624
|
return cachedExisting;
|
|
647
625
|
};
|
|
648
626
|
});
|
|
@@ -728,9 +706,18 @@ export function nestedOneToManyField<
|
|
|
728
706
|
ctx.result,
|
|
729
707
|
);
|
|
730
708
|
|
|
731
|
-
const
|
|
732
|
-
|
|
733
|
-
|
|
709
|
+
const sharedCtx: TransactionalOperationContext<
|
|
710
|
+
GetPayload<TModelName> | undefined,
|
|
711
|
+
{ hasResult: false }
|
|
712
|
+
> = {
|
|
713
|
+
...ctx,
|
|
714
|
+
operation: item.whereUnique ? 'update' : 'create',
|
|
715
|
+
loadExisting: cachedLoadExisting[idx],
|
|
716
|
+
result: undefined,
|
|
717
|
+
};
|
|
718
|
+
const [builtCreate, builtUpdate] = await Promise.all([
|
|
719
|
+
config.buildCreateData(
|
|
720
|
+
{
|
|
734
721
|
...awaitedData.create,
|
|
735
722
|
...({
|
|
736
723
|
[config.relationName]: { connect: parentWhereUnique },
|
|
@@ -739,25 +726,20 @@ export function nestedOneToManyField<
|
|
|
739
726
|
{ connect: WhereUniqueInput<TParentModelName> }
|
|
740
727
|
>),
|
|
741
728
|
},
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
operation: item.whereUnique ? 'update' : 'create',
|
|
748
|
-
loadExisting: cachedLoadExisting[idx],
|
|
749
|
-
result: undefined,
|
|
750
|
-
},
|
|
751
|
-
);
|
|
729
|
+
ctx.result,
|
|
730
|
+
sharedCtx,
|
|
731
|
+
),
|
|
732
|
+
config.buildUpdateData(awaitedData.update, ctx.result, sharedCtx),
|
|
733
|
+
]);
|
|
752
734
|
|
|
753
735
|
results[idx] = item.whereUnique
|
|
754
736
|
? await prismaDelegate.upsert({
|
|
755
737
|
where: item.whereUnique,
|
|
756
|
-
create:
|
|
757
|
-
update:
|
|
738
|
+
create: builtCreate,
|
|
739
|
+
update: builtUpdate,
|
|
758
740
|
})
|
|
759
741
|
: await prismaDelegate.create({
|
|
760
|
-
data:
|
|
742
|
+
data: builtCreate,
|
|
761
743
|
});
|
|
762
744
|
|
|
763
745
|
await invokeHooks(item.hooks.afterExecute, {
|
package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
CreateInput,
|
|
5
5
|
GetPayload,
|
|
6
6
|
ModelPropName,
|
|
7
|
+
ModelQuery,
|
|
7
8
|
UpdateInput,
|
|
8
9
|
WhereInput,
|
|
9
10
|
WhereUniqueInput,
|
|
@@ -22,9 +23,10 @@ import type { PrismaTransaction } from '$types';
|
|
|
22
23
|
* @internal This interface is used internally by the data operations system
|
|
23
24
|
*/
|
|
24
25
|
interface GenericPrismaDelegate<TModelName extends ModelPropName> {
|
|
25
|
-
findUnique: (args: {
|
|
26
|
+
findUnique: <TQueryArgs extends ModelQuery<TModelName> = object>(args: {
|
|
26
27
|
where: WhereUniqueInput<TModelName>;
|
|
27
|
-
|
|
28
|
+
include?: NonNullable<ModelQuery<TModelName>['include']>;
|
|
29
|
+
}) => Promise<GetPayload<TModelName, TQueryArgs> | null>;
|
|
28
30
|
findMany: (args: {
|
|
29
31
|
where: WhereInput<TModelName>;
|
|
30
32
|
}) => Promise<GetPayload<TModelName>[]>;
|
|
@@ -8,6 +8,7 @@ export * from './prisma-data-service/index.js';
|
|
|
8
8
|
export * from './prisma-data-update/index.js';
|
|
9
9
|
export * from './prisma-enum/index.js';
|
|
10
10
|
export * from './prisma-field/index.js';
|
|
11
|
+
export * from './prisma-model-authorizer/index.js';
|
|
11
12
|
export * from './prisma-model-id/index.js';
|
|
12
13
|
export * from './prisma-model-index/index.js';
|
|
13
14
|
export * from './prisma-model-unique/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|
|
@@ -8,6 +8,7 @@ export * from './prisma-data-service/index.js';
|
|
|
8
8
|
export * from './prisma-data-update/index.js';
|
|
9
9
|
export * from './prisma-enum/index.js';
|
|
10
10
|
export * from './prisma-field/index.js';
|
|
11
|
+
export * from './prisma-model-authorizer/index.js';
|
|
11
12
|
export * from './prisma-model-id/index.js';
|
|
12
13
|
export * from './prisma-model-index/index.js';
|
|
13
14
|
export * from './prisma-model-unique/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC"}
|