@baseplate-dev/fastify-generators 0.5.0 → 0.5.1
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/fastify-packages.d.ts +1 -0
- package/dist/constants/fastify-packages.d.ts.map +1 -1
- package/dist/constants/fastify-packages.js +1 -0
- package/dist/constants/fastify-packages.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/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/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 +26 -0
- package/dist/generators/prisma/_shared/crud-method/primary-key-input.js.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 +77 -63
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +4 -2
- 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/package.json +5 -5
- 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
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
|
@@ -145,11 +145,6 @@ type RelationName<TModelName extends ModelPropName> = keyof Payload<
|
|
|
145
145
|
(typeof prisma)[TModelName]
|
|
146
146
|
>['objects'];
|
|
147
147
|
|
|
148
|
-
interface PrismaFieldData<TModelName extends ModelPropName> {
|
|
149
|
-
create: CreateInput<TModelName>;
|
|
150
|
-
update: UpdateInput<TModelName>;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
148
|
/**
|
|
154
149
|
* Configuration for defining a nested one-to-one relationship field.
|
|
155
150
|
*
|
|
@@ -196,20 +191,29 @@ export interface NestedOneToOneFieldConfig<
|
|
|
196
191
|
) => WhereUniqueInput<TModelName>;
|
|
197
192
|
|
|
198
193
|
/**
|
|
199
|
-
* Transform validated field data into final Prisma structure
|
|
194
|
+
* Transform validated create field data into final Prisma structure
|
|
200
195
|
*/
|
|
201
|
-
|
|
202
|
-
data:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
196
|
+
buildCreateData: (
|
|
197
|
+
data: InferFieldsCreateOutput<TFields> &
|
|
198
|
+
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>,
|
|
199
|
+
parentModel: GetPayload<TParentModelName>,
|
|
200
|
+
ctx: TransactionalOperationContext<
|
|
201
|
+
GetPayload<TModelName>,
|
|
202
|
+
{ hasResult: false }
|
|
203
|
+
>,
|
|
204
|
+
) => CreateInput<TModelName> | Promise<CreateInput<TModelName>>;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Transform validated update field data into final Prisma structure
|
|
208
|
+
*/
|
|
209
|
+
buildUpdateData: (
|
|
210
|
+
data: InferFieldsUpdateOutput<TFields>,
|
|
207
211
|
parentModel: GetPayload<TParentModelName>,
|
|
208
212
|
ctx: TransactionalOperationContext<
|
|
209
213
|
GetPayload<TModelName>,
|
|
210
214
|
{ hasResult: false }
|
|
211
215
|
>,
|
|
212
|
-
) =>
|
|
216
|
+
) => UpdateInput<TModelName> | Promise<UpdateInput<TModelName>>;
|
|
213
217
|
}
|
|
214
218
|
|
|
215
219
|
/**
|
|
@@ -319,9 +323,9 @@ export function nestedOneToOneField<
|
|
|
319
323
|
);
|
|
320
324
|
const prismaDelegate = makeGenericPrismaDelegate(prisma, config.model);
|
|
321
325
|
cachedExisting =
|
|
322
|
-
(await prismaDelegate.findUnique({
|
|
326
|
+
((await prismaDelegate.findUnique({
|
|
323
327
|
where: whereUnique,
|
|
324
|
-
})) ?? undefined;
|
|
328
|
+
})) as GetPayload<TModelName> | null) ?? undefined;
|
|
325
329
|
return cachedExisting;
|
|
326
330
|
}
|
|
327
331
|
|
|
@@ -351,9 +355,14 @@ export function nestedOneToOneField<
|
|
|
351
355
|
const parentWhereUnique = config.parentModel.getWhereUnique(
|
|
352
356
|
ctx.result as GetPayload<TParentModelName>,
|
|
353
357
|
);
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
358
|
+
const sharedCtx = {
|
|
359
|
+
...ctx,
|
|
360
|
+
operation: 'upsert' as const,
|
|
361
|
+
loadExisting,
|
|
362
|
+
};
|
|
363
|
+
const [builtCreate, builtUpdate] = await Promise.all([
|
|
364
|
+
config.buildCreateData(
|
|
365
|
+
{
|
|
357
366
|
...awaitedData.create,
|
|
358
367
|
...({
|
|
359
368
|
[config.relationName]: { connect: parentWhereUnique },
|
|
@@ -362,15 +371,15 @@ export function nestedOneToOneField<
|
|
|
362
371
|
{ connect: WhereUniqueInput<TParentModelName> }
|
|
363
372
|
>),
|
|
364
373
|
},
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
);
|
|
374
|
+
ctx.result as GetPayload<TParentModelName>,
|
|
375
|
+
sharedCtx,
|
|
376
|
+
),
|
|
377
|
+
config.buildUpdateData(
|
|
378
|
+
awaitedData.update,
|
|
379
|
+
ctx.result as GetPayload<TParentModelName>,
|
|
380
|
+
sharedCtx,
|
|
381
|
+
),
|
|
382
|
+
]);
|
|
374
383
|
const prismaDelegate = makeGenericPrismaDelegate(
|
|
375
384
|
ctx.tx,
|
|
376
385
|
config.model,
|
|
@@ -378,8 +387,8 @@ export function nestedOneToOneField<
|
|
|
378
387
|
|
|
379
388
|
newModelResult = await prismaDelegate.upsert({
|
|
380
389
|
where: whereUnique,
|
|
381
|
-
create:
|
|
382
|
-
update:
|
|
390
|
+
create: builtCreate,
|
|
391
|
+
update: builtUpdate,
|
|
383
392
|
});
|
|
384
393
|
|
|
385
394
|
await invokeHooks(hooks.afterExecute, {
|
|
@@ -455,29 +464,30 @@ export interface NestedOneToManyFieldConfig<
|
|
|
455
464
|
) => WhereUniqueInput<TModelName> | undefined;
|
|
456
465
|
|
|
457
466
|
/**
|
|
458
|
-
* Transform validated field data into final Prisma structure for a single item.
|
|
467
|
+
* Transform validated create field data into final Prisma structure for a single item.
|
|
459
468
|
* The returned payload should not include the parent relation field, as it will be added automatically.
|
|
460
469
|
*/
|
|
461
|
-
|
|
462
|
-
data:
|
|
463
|
-
|
|
464
|
-
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>;
|
|
465
|
-
update: InferFieldsUpdateOutput<TFields>;
|
|
466
|
-
},
|
|
470
|
+
buildCreateData: (
|
|
471
|
+
data: InferFieldsCreateOutput<TFields> &
|
|
472
|
+
Record<TRelationName, { connect: WhereUniqueInput<TParentModelName> }>,
|
|
467
473
|
parentModel: GetPayload<TParentModelName>,
|
|
468
474
|
ctx: TransactionalOperationContext<
|
|
469
475
|
GetPayload<TModelName> | undefined,
|
|
470
476
|
{ hasResult: false }
|
|
471
477
|
>,
|
|
472
|
-
) =>
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
478
|
+
) => CreateInput<TModelName> | Promise<CreateInput<TModelName>>;
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Transform validated update field data into final Prisma structure for a single item.
|
|
482
|
+
*/
|
|
483
|
+
buildUpdateData: (
|
|
484
|
+
data: InferFieldsUpdateOutput<TFields>,
|
|
485
|
+
parentModel: GetPayload<TParentModelName>,
|
|
486
|
+
ctx: TransactionalOperationContext<
|
|
487
|
+
GetPayload<TModelName> | undefined,
|
|
488
|
+
{ hasResult: false }
|
|
489
|
+
>,
|
|
490
|
+
) => UpdateInput<TModelName> | Promise<UpdateInput<TModelName>>;
|
|
481
491
|
}
|
|
482
492
|
|
|
483
493
|
/**
|
|
@@ -640,9 +650,9 @@ export function nestedOneToManyField<
|
|
|
640
650
|
if (cachedExisting) return cachedExisting;
|
|
641
651
|
if (!whereUnique) return undefined;
|
|
642
652
|
cachedExisting =
|
|
643
|
-
(await delegate.findUnique({
|
|
653
|
+
((await delegate.findUnique({
|
|
644
654
|
where: { ...whereUnique, ...whereFromOriginalModel },
|
|
645
|
-
})) ?? undefined;
|
|
655
|
+
})) as GetPayload<TModelName> | null) ?? undefined;
|
|
646
656
|
return cachedExisting;
|
|
647
657
|
};
|
|
648
658
|
});
|
|
@@ -728,9 +738,18 @@ export function nestedOneToManyField<
|
|
|
728
738
|
ctx.result,
|
|
729
739
|
);
|
|
730
740
|
|
|
731
|
-
const
|
|
732
|
-
|
|
733
|
-
|
|
741
|
+
const sharedCtx: TransactionalOperationContext<
|
|
742
|
+
GetPayload<TModelName> | undefined,
|
|
743
|
+
{ hasResult: false }
|
|
744
|
+
> = {
|
|
745
|
+
...ctx,
|
|
746
|
+
operation: item.whereUnique ? 'update' : 'create',
|
|
747
|
+
loadExisting: cachedLoadExisting[idx],
|
|
748
|
+
result: undefined,
|
|
749
|
+
};
|
|
750
|
+
const [builtCreate, builtUpdate] = await Promise.all([
|
|
751
|
+
config.buildCreateData(
|
|
752
|
+
{
|
|
734
753
|
...awaitedData.create,
|
|
735
754
|
...({
|
|
736
755
|
[config.relationName]: { connect: parentWhereUnique },
|
|
@@ -739,25 +758,20 @@ export function nestedOneToManyField<
|
|
|
739
758
|
{ connect: WhereUniqueInput<TParentModelName> }
|
|
740
759
|
>),
|
|
741
760
|
},
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
operation: item.whereUnique ? 'update' : 'create',
|
|
748
|
-
loadExisting: cachedLoadExisting[idx],
|
|
749
|
-
result: undefined,
|
|
750
|
-
},
|
|
751
|
-
);
|
|
761
|
+
ctx.result,
|
|
762
|
+
sharedCtx,
|
|
763
|
+
),
|
|
764
|
+
config.buildUpdateData(awaitedData.update, ctx.result, sharedCtx),
|
|
765
|
+
]);
|
|
752
766
|
|
|
753
767
|
results[idx] = item.whereUnique
|
|
754
768
|
? await prismaDelegate.upsert({
|
|
755
769
|
where: item.whereUnique,
|
|
756
|
-
create:
|
|
757
|
-
update:
|
|
770
|
+
create: builtCreate,
|
|
771
|
+
update: builtUpdate,
|
|
758
772
|
})
|
|
759
773
|
: await prismaDelegate.create({
|
|
760
|
-
data:
|
|
774
|
+
data: builtCreate,
|
|
761
775
|
});
|
|
762
776
|
|
|
763
777
|
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>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-data-create.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prisma-data-create.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"AAqCA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsGpC,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { serviceFileProvider } from '#src/generators/core/index.js';
|
|
|
6
6
|
import { contextKind, prismaQueryKind, skipValidationKind, } from '#src/types/service-dto-kinds.js';
|
|
7
7
|
import { createServiceOutputDtoInjectedArg, prismaToServiceOutputDto, } from '#src/types/service-output.js';
|
|
8
8
|
import { generateCreateCallback } from '../_shared/build-data-helpers/index.js';
|
|
9
|
+
import { generateGetWhereUniqueFragment } from '../_shared/crud-method/primary-key-input.js';
|
|
9
10
|
import { dataUtilsImportsProvider } from '../data-utils/index.js';
|
|
10
11
|
import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
|
|
11
12
|
import { prismaOutputProvider } from '../prisma/prisma.generator.js';
|
|
@@ -43,16 +44,20 @@ export const prismaDataCreateGenerator = createGenerator({
|
|
|
43
44
|
tsImportBuilder(['pick']).from('es-toolkit'),
|
|
44
45
|
]) `pick(${prismaDataService.getFieldsVariableName()}, [${fields.map((field) => quot(field)).join(', ')}] as const)`;
|
|
45
46
|
// Generate create callback that transforms FK fields into relations
|
|
47
|
+
const prismaModel = prismaOutput.getPrismaModel(modelName);
|
|
46
48
|
const { createCallbackFragment } = generateCreateCallback({
|
|
47
|
-
prismaModel
|
|
49
|
+
prismaModel,
|
|
48
50
|
inputFieldNames: fields,
|
|
49
51
|
dataUtilsImports,
|
|
50
52
|
modelVariableName: lowercaseFirstChar(modelName),
|
|
51
53
|
});
|
|
54
|
+
// Generate getWhereUnique based on primary key structure
|
|
55
|
+
const getWhereUniqueFragment = generateGetWhereUniqueFragment(prismaModel);
|
|
52
56
|
const createOperation = tsTemplate `
|
|
53
57
|
export const ${name} = ${dataUtilsImports.defineCreateOperation.fragment()}({
|
|
54
58
|
model: ${quot(lowercaseFirstChar(modelName))},
|
|
55
59
|
fields: ${fieldsFragment},
|
|
60
|
+
getWhereUnique: ${getWhereUniqueFragment},
|
|
56
61
|
create: ${createCallbackFragment},
|
|
57
62
|
})
|
|
58
63
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-data-create.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prisma-data-create.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-create/prisma-data-create.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-field-writer.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAcrE,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIvE,UAAU,+BAA+B;IACvC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,0FAA0F;IAC1F,yBAAyB,CAAC,EAAE,cAAc,CAAC;IAC3C,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,gBAAgB,EAAE,wBAAwB,CAAC;CAC5C;AA+KD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"nested-field-writer.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAcrE,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAIvE,UAAU,+BAA+B;IACvC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,0FAA0F;IAC1F,yBAAyB,CAAC,EAAE,cAAc,CAAC;IAC3C,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,gBAAgB,EAAE,wBAAwB,CAAC;CAC5C;AA+KD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,0BAA0B,CAsF5B"}
|
|
@@ -139,18 +139,19 @@ export function writePrismaDataNestedField(input) {
|
|
|
139
139
|
const getWhereUniqueFragment = relation.isList
|
|
140
140
|
? createOneToManyWhereUniqueFunction(nestedModel, reverseRelation, nestedFieldNames)
|
|
141
141
|
: createOneToOneWhereUniqueFunction(reverseRelation, nestedModel);
|
|
142
|
+
const buildDataResult = generateRelationBuildData({
|
|
143
|
+
prismaModel: nestedModel,
|
|
144
|
+
inputFieldNames: nestedFieldNames,
|
|
145
|
+
dataUtilsImports,
|
|
146
|
+
});
|
|
142
147
|
const fieldOptions = TsCodeUtils.mergeFragmentsAsObject({
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
relationName: quot(reverseRelation.name),
|
|
148
|
+
buildCreateData: buildDataResult.buildCreateDataFragment,
|
|
149
|
+
buildUpdateData: buildDataResult.buildUpdateDataFragment,
|
|
146
150
|
fields: pickedFieldsFragment,
|
|
147
151
|
getWhereUnique: getWhereUniqueFragment,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
operationType: 'upsert',
|
|
152
|
-
dataUtilsImports,
|
|
153
|
-
}).buildDataFunctionFragment,
|
|
152
|
+
model: quot(lowercaseFirstChar(nestedModel.name)),
|
|
153
|
+
parentModel: 'parentModel',
|
|
154
|
+
relationName: quot(reverseRelation.name),
|
|
154
155
|
});
|
|
155
156
|
const fragment = tsTemplateWithImports([], {
|
|
156
157
|
hoistedFragments: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-field-writer.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"nested-field-writer.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-nested-field/nested-field-writer.ts"],"names":[],"mappings":"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"}
|