@baseplate-dev/fastify-generators 0.5.3 → 0.6.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/CHANGELOG.md +70 -0
- package/dist/constants/fastify-packages.d.ts +14 -14
- package/dist/constants/fastify-packages.js +14 -14
- package/dist/constants/fastify-packages.js.map +1 -1
- package/dist/generators/auth/auth-context/templates/module/types/auth-context.types.ts +1 -0
- package/dist/generators/auth/auth-context/templates/module/utils/auth-context.utils.ts +3 -1
- package/dist/generators/core/fastify/fastify.generator.d.ts.map +1 -1
- package/dist/generators/core/fastify/fastify.generator.js +3 -1
- package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
- package/dist/generators/pothos/index.d.ts +1 -0
- package/dist/generators/pothos/index.d.ts.map +1 -1
- package/dist/generators/pothos/index.js +1 -0
- package/dist/generators/pothos/index.js.map +1 -1
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts +5 -0
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js +8 -0
- package/dist/generators/pothos/pothos-auth/pothos-auth.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts +2 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.d.ts.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.js +2 -0
- package/dist/generators/pothos/pothos-prisma-count-query/index.js.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts +16 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.d.ts.map +1 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js +104 -0
- package/dist/generators/pothos/pothos-prisma-count-query/pothos-prisma-count-query.generator.js.map +1 -0
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js +2 -5
- package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts +4 -0
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js +52 -10
- package/dist/generators/pothos/pothos-prisma-find-query/pothos-prisma-find-query.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts +4 -0
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js +39 -3
- package/dist/generators/pothos/pothos-prisma-list-query/pothos-prisma-list-query.generator.js.map +1 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts +7 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js +73 -13
- package/dist/generators/pothos/pothos-prisma-object/pothos-prisma-object.generator.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +20 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +28 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +48 -55
- 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 +130 -67
- 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 +2 -0
- 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 +3 -3
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.js +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +1 -1
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +25 -6
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/index.d.ts +78 -23
- package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +3 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.js +3 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +75 -18
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +26 -8
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +106 -34
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.js +61 -14
- package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +366 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +131 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +26 -30
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +201 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +24 -20
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +14 -6
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/relation-helpers.ts +21 -26
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +374 -25
- package/dist/generators/prisma/index.d.ts +2 -0
- package/dist/generators/prisma/index.d.ts.map +1 -1
- package/dist/generators/prisma/index.js +2 -0
- package/dist/generators/prisma/index.js.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +50 -12
- 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 +25 -6
- 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 +50 -12
- 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 +25 -6
- 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 +26 -6
- 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 +53 -25
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +31 -6
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +52 -15
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +25 -6
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +25 -6
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +31 -6
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +65 -23
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts +2 -0
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js +86 -53
- package/dist/generators/prisma/prisma-model-authorizer/prisma-model-authorizer.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-model-query-filter/index.d.ts +2 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.js +2 -0
- package/dist/generators/prisma/prisma-model-query-filter/index.js.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts +60 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js +124 -0
- package/dist/generators/prisma/prisma-model-query-filter/prisma-model-query-filter.generator.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +364 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js +13 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts +13 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js +25 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-paths.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +131 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js +49 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts +66 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js +40 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/ts-import-providers.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +411 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js +46 -0
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts +4 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.js +3 -0
- package/dist/generators/prisma/prisma-query-filter-utils/index.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +156 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js +32 -0
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.js.map +1 -0
- package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-filters.ts +209 -0
- package/dist/generators/prisma/prisma-query-filter-utils/templates/src/utils/query-helpers.ts +70 -0
- package/dist/generators/vitest/prisma-vitest/generated/index.d.ts +0 -6
- package/dist/generators/vitest/prisma-vitest/generated/index.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js +0 -1
- package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts +0 -6
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js +1 -4
- package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js.map +1 -1
- package/dist/generators/vitest/prisma-vitest/templates/src/tests/helpers/prisma.test-helper.ts +2 -10
- package/dist/types/service-dto-kinds.d.ts +0 -6
- package/dist/types/service-dto-kinds.d.ts.map +1 -1
- package/dist/types/service-dto-kinds.js +0 -6
- package/dist/types/service-dto-kinds.js.map +1 -1
- package/dist/writers/pothos/helpers.d.ts +1 -0
- package/dist/writers/pothos/helpers.d.ts.map +1 -1
- package/dist/writers/pothos/helpers.js +1 -0
- package/dist/writers/pothos/helpers.js.map +1 -1
- package/dist/writers/pothos/scalar-fields.d.ts +3 -1
- package/dist/writers/pothos/scalar-fields.d.ts.map +1 -1
- package/dist/writers/pothos/scalar-fields.js +1 -0
- package/dist/writers/pothos/scalar-fields.js.map +1 -1
- package/dist/writers/prisma-schema/fields.d.ts +1 -1
- package/dist/writers/prisma-schema/fields.js +2 -2
- package/dist/writers/prisma-schema/fields.js.map +1 -1
- package/package.json +8 -8
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts +0 -1134
|
@@ -2,9 +2,9 @@ import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
|
2
2
|
import type { PrismaOutputModel } from '#src/types/prisma-output.js';
|
|
3
3
|
import type { DataUtilsImportsProvider } from '../../data-utils/index.js';
|
|
4
4
|
/**
|
|
5
|
-
* Configuration for generating create
|
|
5
|
+
* Configuration for generating create/update execute callbacks
|
|
6
6
|
*/
|
|
7
|
-
interface
|
|
7
|
+
interface GenerateExecuteCallbackConfig {
|
|
8
8
|
/** Prisma model to analyze for relations */
|
|
9
9
|
prismaModel: PrismaOutputModel;
|
|
10
10
|
/** Field names that are included in the input */
|
|
@@ -15,33 +15,33 @@ interface GenerateCreateCallbackConfig {
|
|
|
15
15
|
modelVariableName: string;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Result of generating create
|
|
18
|
+
* Result of generating create execute callback
|
|
19
19
|
*/
|
|
20
|
-
interface
|
|
21
|
-
/**
|
|
22
|
-
|
|
20
|
+
interface GenerateCreateExecuteCallbackResult {
|
|
21
|
+
/** Execute callback fragment: async ({ tx, data, query }) => tx.model.create({ data, ...query }) */
|
|
22
|
+
executeCallbackFragment: TsCodeFragment;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Generates a create
|
|
25
|
+
* Generates a create execute callback that transforms foreign key fields into Prisma relation objects.
|
|
26
26
|
*
|
|
27
27
|
* @param config - Configuration including Prisma model, input fields, and model name
|
|
28
|
-
* @returns Result containing the
|
|
28
|
+
* @returns Result containing the execute callback function fragment
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
|
-
* // No relations
|
|
32
|
-
*
|
|
33
|
-
* // Returns: async ({ tx, data
|
|
34
|
-
* // const item = await tx.user.create({ data
|
|
31
|
+
* // No relations (query is omitted since the model has no include support)
|
|
32
|
+
* generateCreateExecuteCallback({...})
|
|
33
|
+
* // Returns: async ({ tx, data }) => {
|
|
34
|
+
* // const item = await tx.user.create({ data });
|
|
35
35
|
* // return item;
|
|
36
36
|
* // }
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
39
|
* // With relations
|
|
40
|
-
*
|
|
41
|
-
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...
|
|
40
|
+
* generateCreateExecuteCallback({...})
|
|
41
|
+
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
|
|
42
42
|
* // const item = await tx.todoItem.create({
|
|
43
43
|
* // data: {
|
|
44
|
-
* // ...
|
|
44
|
+
* // ...rest,
|
|
45
45
|
* // assignee: relationHelpers.connectCreate({ id: assigneeId }),
|
|
46
46
|
* // todoList: relationHelpers.connectCreate({ id: todoListId }),
|
|
47
47
|
* // },
|
|
@@ -50,49 +50,39 @@ interface GenerateCreateCallbackResult {
|
|
|
50
50
|
* // return item;
|
|
51
51
|
* // }
|
|
52
52
|
*/
|
|
53
|
-
export declare function
|
|
53
|
+
export declare function generateCreateExecuteCallback(config: GenerateExecuteCallbackConfig): GenerateCreateExecuteCallbackResult;
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* Result of generating update execute callback
|
|
56
56
|
*/
|
|
57
|
-
interface
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
/** Field names that are included in the input */
|
|
61
|
-
inputFieldNames: string[];
|
|
62
|
-
/** Data utils imports provider for accessing relationHelpers fragments */
|
|
63
|
-
dataUtilsImports: DataUtilsImportsProvider;
|
|
64
|
-
/** Prisma model variable name in camelCase (e.g., 'todoItem', 'user') */
|
|
65
|
-
modelVariableName: string;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Result of generating update operation callback
|
|
69
|
-
*/
|
|
70
|
-
interface GenerateUpdateCallbackResult {
|
|
71
|
-
/** Complete update callback fragment: async ({ tx, where, data, query }) => { const item = await tx.model.update({...}); return item; } */
|
|
72
|
-
updateCallbackFragment: TsCodeFragment;
|
|
57
|
+
interface GenerateUpdateExecuteCallbackResult {
|
|
58
|
+
/** Execute callback fragment: async ({ tx, data, query }) => tx.model.update({ where, data, ...query }) */
|
|
59
|
+
executeCallbackFragment: TsCodeFragment;
|
|
73
60
|
}
|
|
74
61
|
/**
|
|
75
|
-
* Generates an update
|
|
62
|
+
* Generates an update execute callback that transforms foreign key fields into Prisma relation objects.
|
|
63
|
+
*
|
|
64
|
+
* The `where` clause is captured from the enclosing function scope rather than
|
|
65
|
+
* passed as a callback argument.
|
|
76
66
|
*
|
|
77
67
|
* @param config - Configuration including Prisma model, input fields, and model name
|
|
78
|
-
* @returns Result containing the
|
|
68
|
+
* @returns Result containing the execute callback function fragment
|
|
79
69
|
*
|
|
80
70
|
* @example
|
|
81
|
-
* // No relations
|
|
82
|
-
*
|
|
83
|
-
* // Returns: async ({ tx,
|
|
84
|
-
* // const item = await tx.user.update({ where, data
|
|
71
|
+
* // No relations (query is omitted since the model has no include support)
|
|
72
|
+
* generateUpdateExecuteCallback({...})
|
|
73
|
+
* // Returns: async ({ tx, data }) => {
|
|
74
|
+
* // const item = await tx.user.update({ where, data });
|
|
85
75
|
* // return item;
|
|
86
76
|
* // }
|
|
87
77
|
*
|
|
88
78
|
* @example
|
|
89
79
|
* // With relations
|
|
90
|
-
*
|
|
91
|
-
* // Returns: async ({ tx,
|
|
80
|
+
* generateUpdateExecuteCallback({...})
|
|
81
|
+
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
|
|
92
82
|
* // const item = await tx.todoItem.update({
|
|
93
83
|
* // where,
|
|
94
84
|
* // data: {
|
|
95
|
-
* // ...
|
|
85
|
+
* // ...rest,
|
|
96
86
|
* // assignee: relationHelpers.connectUpdate({ id: assigneeId }),
|
|
97
87
|
* // todoList: relationHelpers.connectUpdate({ id: todoListId }),
|
|
98
88
|
* // },
|
|
@@ -101,37 +91,40 @@ interface GenerateUpdateCallbackResult {
|
|
|
101
91
|
* // return item;
|
|
102
92
|
* // }
|
|
103
93
|
*/
|
|
104
|
-
export declare function
|
|
94
|
+
export declare function generateUpdateExecuteCallback(config: GenerateExecuteCallbackConfig): GenerateUpdateExecuteCallbackResult;
|
|
105
95
|
/**
|
|
106
|
-
* Configuration for generating delete
|
|
96
|
+
* Configuration for generating delete execute callback
|
|
107
97
|
*/
|
|
108
|
-
interface
|
|
98
|
+
interface GenerateDeleteExecuteCallbackConfig {
|
|
99
|
+
/** Prisma model to check for relations */
|
|
100
|
+
prismaModel: PrismaOutputModel;
|
|
109
101
|
/** Prisma model variable name in camelCase (e.g., 'todoItem', 'user') */
|
|
110
102
|
modelVariableName: string;
|
|
111
103
|
}
|
|
112
104
|
/**
|
|
113
|
-
* Result of generating delete
|
|
105
|
+
* Result of generating delete execute callback
|
|
114
106
|
*/
|
|
115
|
-
interface
|
|
116
|
-
/**
|
|
117
|
-
|
|
107
|
+
interface GenerateDeleteExecuteCallbackResult {
|
|
108
|
+
/** Execute callback fragment: async ({ tx, query }) => { const item = await tx.model.delete({ where, ...query }); return item; } */
|
|
109
|
+
executeCallbackFragment: TsCodeFragment;
|
|
118
110
|
}
|
|
119
111
|
/**
|
|
120
|
-
* Generates a delete
|
|
112
|
+
* Generates a delete execute callback.
|
|
121
113
|
*
|
|
122
114
|
* Delete operations don't need data transformation, so this simply generates
|
|
123
|
-
* a callback that
|
|
115
|
+
* a callback that deletes the record. The `where` clause is captured from the
|
|
116
|
+
* enclosing function scope rather than passed as a callback argument.
|
|
124
117
|
*
|
|
125
118
|
* @param config - Configuration with model name
|
|
126
|
-
* @returns Result containing the
|
|
119
|
+
* @returns Result containing the execute callback function fragment
|
|
127
120
|
*
|
|
128
121
|
* @example
|
|
129
|
-
*
|
|
130
|
-
* // Returns: async ({ tx,
|
|
122
|
+
* generateDeleteExecuteCallback({ modelVariableName: 'todoItem' })
|
|
123
|
+
* // Returns: async ({ tx, query }) => {
|
|
131
124
|
* // const item = await tx.todoItem.delete({ where, ...query });
|
|
132
125
|
* // return item;
|
|
133
126
|
* // }
|
|
134
127
|
*/
|
|
135
|
-
export declare function
|
|
128
|
+
export declare function generateDeleteExecuteCallback(config: GenerateDeleteExecuteCallbackConfig): GenerateDeleteExecuteCallbackResult;
|
|
136
129
|
export {};
|
|
137
130
|
//# sourceMappingURL=generate-operation-callbacks.d.ts.map
|
package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation-callbacks.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E;;GAEG;AACH,UAAU,
|
|
1
|
+
{"version":3,"file":"generate-operation-callbacks.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI1E;;GAEG;AACH,UAAU,6BAA6B;IACrC,4CAA4C;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,iDAAiD;IACjD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAUD;;GAEG;AACH,UAAU,mCAAmC;IAC3C,oGAAoG;IACpG,uBAAuB,EAAE,cAAc,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,6BAA6B,GACpC,mCAAmC,CA4DrC;AAED;;GAEG;AACH,UAAU,mCAAmC;IAC3C,2GAA2G;IAC3G,uBAAuB,EAAE,cAAc,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,6BAA6B,GACpC,mCAAmC,CAgErC;AAED;;GAEG;AACH,UAAU,mCAAmC;IAC3C,0CAA0C;IAC1C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,mCAAmC;IAC3C,oIAAoI;IACpI,uBAAuB,EAAE,cAAc,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mCAAmC,GAC1C,mCAAmC,CAwBrC"}
|
|
@@ -1,26 +1,33 @@
|
|
|
1
1
|
import { tsTemplate } from '@baseplate-dev/core-generators';
|
|
2
2
|
import { generateRelationBuildData } from './generate-relation-build-data.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Check if a Prisma model has any relation fields.
|
|
5
|
+
* Models without relations don't have `include` in their Prisma args.
|
|
6
|
+
*/
|
|
7
|
+
function modelHasRelations(prismaModel) {
|
|
8
|
+
return prismaModel.fields.some((field) => field.type === 'relation');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Generates a create execute callback that transforms foreign key fields into Prisma relation objects.
|
|
5
12
|
*
|
|
6
13
|
* @param config - Configuration including Prisma model, input fields, and model name
|
|
7
|
-
* @returns Result containing the
|
|
14
|
+
* @returns Result containing the execute callback function fragment
|
|
8
15
|
*
|
|
9
16
|
* @example
|
|
10
|
-
* // No relations
|
|
11
|
-
*
|
|
12
|
-
* // Returns: async ({ tx, data
|
|
13
|
-
* // const item = await tx.user.create({ data
|
|
17
|
+
* // No relations (query is omitted since the model has no include support)
|
|
18
|
+
* generateCreateExecuteCallback({...})
|
|
19
|
+
* // Returns: async ({ tx, data }) => {
|
|
20
|
+
* // const item = await tx.user.create({ data });
|
|
14
21
|
* // return item;
|
|
15
22
|
* // }
|
|
16
23
|
*
|
|
17
24
|
* @example
|
|
18
25
|
* // With relations
|
|
19
|
-
*
|
|
20
|
-
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...
|
|
26
|
+
* generateCreateExecuteCallback({...})
|
|
27
|
+
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
|
|
21
28
|
* // const item = await tx.todoItem.create({
|
|
22
29
|
* // data: {
|
|
23
|
-
* // ...
|
|
30
|
+
* // ...rest,
|
|
24
31
|
* // assignee: relationHelpers.connectCreate({ id: assigneeId }),
|
|
25
32
|
* // todoList: relationHelpers.connectCreate({ id: todoListId }),
|
|
26
33
|
* // },
|
|
@@ -29,60 +36,83 @@ import { generateRelationBuildData } from './generate-relation-build-data.js';
|
|
|
29
36
|
* // return item;
|
|
30
37
|
* // }
|
|
31
38
|
*/
|
|
32
|
-
export function
|
|
39
|
+
export function generateCreateExecuteCallback(config) {
|
|
33
40
|
const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
|
|
34
41
|
const { createArgumentFragment: argumentFragment, createReturnFragment: returnFragment, passthrough, } = generateRelationBuildData({
|
|
35
42
|
prismaModel,
|
|
36
43
|
inputFieldNames,
|
|
37
44
|
dataUtilsImports,
|
|
45
|
+
dataName: 'rest',
|
|
38
46
|
});
|
|
47
|
+
const hasRelations = modelHasRelations(prismaModel);
|
|
39
48
|
if (passthrough) {
|
|
40
49
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
executeCallbackFragment: hasRelations
|
|
51
|
+
? tsTemplate `
|
|
52
|
+
async ({ tx, data, query }) => {
|
|
53
|
+
const item = await tx.${modelVariableName}.create({
|
|
54
|
+
data,
|
|
55
|
+
...query,
|
|
56
|
+
});
|
|
57
|
+
return item;
|
|
58
|
+
}
|
|
59
|
+
`
|
|
60
|
+
: tsTemplate `
|
|
61
|
+
async ({ tx, data }) => {
|
|
62
|
+
const item = await tx.${modelVariableName}.create({
|
|
63
|
+
data,
|
|
64
|
+
});
|
|
65
|
+
return item;
|
|
66
|
+
}
|
|
67
|
+
`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
executeCallbackFragment: hasRelations
|
|
72
|
+
? tsTemplate `
|
|
73
|
+
async ({ tx, data: ${argumentFragment}, query }) => {
|
|
43
74
|
const item = await tx.${modelVariableName}.create({
|
|
44
|
-
data,
|
|
75
|
+
data: ${returnFragment},
|
|
45
76
|
...query,
|
|
46
77
|
});
|
|
47
78
|
return item;
|
|
48
79
|
}
|
|
80
|
+
`
|
|
81
|
+
: tsTemplate `
|
|
82
|
+
async ({ tx, data: ${argumentFragment} }) => {
|
|
83
|
+
const item = await tx.${modelVariableName}.create({
|
|
84
|
+
data: ${returnFragment},
|
|
85
|
+
});
|
|
86
|
+
return item;
|
|
87
|
+
}
|
|
49
88
|
`,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
createCallbackFragment: tsTemplate `
|
|
54
|
-
async ({ tx, data: ${argumentFragment}, query }) => {
|
|
55
|
-
const item = await tx.${modelVariableName}.create({
|
|
56
|
-
data: ${returnFragment},
|
|
57
|
-
...query,
|
|
58
|
-
});
|
|
59
|
-
return item;
|
|
60
|
-
}
|
|
61
|
-
`,
|
|
62
89
|
};
|
|
63
90
|
}
|
|
64
91
|
/**
|
|
65
|
-
* Generates an update
|
|
92
|
+
* Generates an update execute callback that transforms foreign key fields into Prisma relation objects.
|
|
93
|
+
*
|
|
94
|
+
* The `where` clause is captured from the enclosing function scope rather than
|
|
95
|
+
* passed as a callback argument.
|
|
66
96
|
*
|
|
67
97
|
* @param config - Configuration including Prisma model, input fields, and model name
|
|
68
|
-
* @returns Result containing the
|
|
98
|
+
* @returns Result containing the execute callback function fragment
|
|
69
99
|
*
|
|
70
100
|
* @example
|
|
71
|
-
* // No relations
|
|
72
|
-
*
|
|
73
|
-
* // Returns: async ({ tx,
|
|
74
|
-
* // const item = await tx.user.update({ where, data
|
|
101
|
+
* // No relations (query is omitted since the model has no include support)
|
|
102
|
+
* generateUpdateExecuteCallback({...})
|
|
103
|
+
* // Returns: async ({ tx, data }) => {
|
|
104
|
+
* // const item = await tx.user.update({ where, data });
|
|
75
105
|
* // return item;
|
|
76
106
|
* // }
|
|
77
107
|
*
|
|
78
108
|
* @example
|
|
79
109
|
* // With relations
|
|
80
|
-
*
|
|
81
|
-
* // Returns: async ({ tx,
|
|
110
|
+
* generateUpdateExecuteCallback({...})
|
|
111
|
+
* // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
|
|
82
112
|
* // const item = await tx.todoItem.update({
|
|
83
113
|
* // where,
|
|
84
114
|
* // data: {
|
|
85
|
-
* // ...
|
|
115
|
+
* // ...rest,
|
|
86
116
|
* // assignee: relationHelpers.connectUpdate({ id: assigneeId }),
|
|
87
117
|
* // todoList: relationHelpers.connectUpdate({ id: todoListId }),
|
|
88
118
|
* // },
|
|
@@ -91,68 +121,101 @@ export function generateCreateCallback(config) {
|
|
|
91
121
|
* // return item;
|
|
92
122
|
* // }
|
|
93
123
|
*/
|
|
94
|
-
export function
|
|
124
|
+
export function generateUpdateExecuteCallback(config) {
|
|
95
125
|
const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
|
|
96
126
|
const { updateArgumentFragment: argumentFragment, updateReturnFragment: returnFragment, passthrough, } = generateRelationBuildData({
|
|
97
127
|
prismaModel,
|
|
98
128
|
inputFieldNames,
|
|
99
129
|
dataUtilsImports,
|
|
130
|
+
dataName: 'rest',
|
|
100
131
|
});
|
|
132
|
+
const hasRelations = modelHasRelations(prismaModel);
|
|
101
133
|
if (passthrough) {
|
|
102
134
|
return {
|
|
103
|
-
|
|
104
|
-
|
|
135
|
+
executeCallbackFragment: hasRelations
|
|
136
|
+
? tsTemplate `
|
|
137
|
+
async ({ tx, data, query }) => {
|
|
138
|
+
const item = await tx.${modelVariableName}.update({
|
|
139
|
+
where,
|
|
140
|
+
data,
|
|
141
|
+
...query,
|
|
142
|
+
});
|
|
143
|
+
return item;
|
|
144
|
+
}
|
|
145
|
+
`
|
|
146
|
+
: tsTemplate `
|
|
147
|
+
async ({ tx, data }) => {
|
|
148
|
+
const item = await tx.${modelVariableName}.update({
|
|
149
|
+
where,
|
|
150
|
+
data,
|
|
151
|
+
});
|
|
152
|
+
return item;
|
|
153
|
+
}
|
|
154
|
+
`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
executeCallbackFragment: hasRelations
|
|
159
|
+
? tsTemplate `
|
|
160
|
+
async ({ tx, data: ${argumentFragment}, query }) => {
|
|
105
161
|
const item = await tx.${modelVariableName}.update({
|
|
106
162
|
where,
|
|
107
|
-
data,
|
|
163
|
+
data: ${returnFragment},
|
|
108
164
|
...query,
|
|
109
165
|
});
|
|
110
166
|
return item;
|
|
111
167
|
}
|
|
168
|
+
`
|
|
169
|
+
: tsTemplate `
|
|
170
|
+
async ({ tx, data: ${argumentFragment} }) => {
|
|
171
|
+
const item = await tx.${modelVariableName}.update({
|
|
172
|
+
where,
|
|
173
|
+
data: ${returnFragment},
|
|
174
|
+
});
|
|
175
|
+
return item;
|
|
176
|
+
}
|
|
112
177
|
`,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
updateCallbackFragment: tsTemplate `
|
|
117
|
-
async ({ tx, where, data: ${argumentFragment}, query }) => {
|
|
118
|
-
const item = await tx.${modelVariableName}.update({
|
|
119
|
-
where,
|
|
120
|
-
data: ${returnFragment},
|
|
121
|
-
...query,
|
|
122
|
-
});
|
|
123
|
-
return item;
|
|
124
|
-
}
|
|
125
|
-
`,
|
|
126
178
|
};
|
|
127
179
|
}
|
|
128
180
|
/**
|
|
129
|
-
* Generates a delete
|
|
181
|
+
* Generates a delete execute callback.
|
|
130
182
|
*
|
|
131
183
|
* Delete operations don't need data transformation, so this simply generates
|
|
132
|
-
* a callback that
|
|
184
|
+
* a callback that deletes the record. The `where` clause is captured from the
|
|
185
|
+
* enclosing function scope rather than passed as a callback argument.
|
|
133
186
|
*
|
|
134
187
|
* @param config - Configuration with model name
|
|
135
|
-
* @returns Result containing the
|
|
188
|
+
* @returns Result containing the execute callback function fragment
|
|
136
189
|
*
|
|
137
190
|
* @example
|
|
138
|
-
*
|
|
139
|
-
* // Returns: async ({ tx,
|
|
191
|
+
* generateDeleteExecuteCallback({ modelVariableName: 'todoItem' })
|
|
192
|
+
* // Returns: async ({ tx, query }) => {
|
|
140
193
|
* // const item = await tx.todoItem.delete({ where, ...query });
|
|
141
194
|
* // return item;
|
|
142
195
|
* // }
|
|
143
196
|
*/
|
|
144
|
-
export function
|
|
145
|
-
const { modelVariableName } = config;
|
|
197
|
+
export function generateDeleteExecuteCallback(config) {
|
|
198
|
+
const { prismaModel, modelVariableName } = config;
|
|
199
|
+
const hasRelations = modelHasRelations(prismaModel);
|
|
146
200
|
return {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
201
|
+
executeCallbackFragment: hasRelations
|
|
202
|
+
? tsTemplate `
|
|
203
|
+
async ({ tx, query }) => {
|
|
204
|
+
const item = await tx.${modelVariableName}.delete({
|
|
205
|
+
where,
|
|
206
|
+
...query,
|
|
207
|
+
});
|
|
208
|
+
return item;
|
|
209
|
+
}
|
|
210
|
+
`
|
|
211
|
+
: tsTemplate `
|
|
212
|
+
async ({ tx }) => {
|
|
213
|
+
const item = await tx.${modelVariableName}.delete({
|
|
214
|
+
where,
|
|
215
|
+
});
|
|
216
|
+
return item;
|
|
217
|
+
}
|
|
218
|
+
`,
|
|
156
219
|
};
|
|
157
220
|
}
|
|
158
221
|
//# sourceMappingURL=generate-operation-callbacks.js.map
|
package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation-callbacks.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAM5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-operation-callbacks.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAM5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAgB9E;;;GAGG;AACH,SAAS,iBAAiB,CAAC,WAA8B;IACvD,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AACvE,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GACzE,MAAM,CAAC;IAET,MAAM,EACJ,sBAAsB,EAAE,gBAAgB,EACxC,oBAAoB,EAAE,cAAc,EACpC,WAAW,GACZ,GAAG,yBAAyB,CAAC;QAC5B,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEpD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,uBAAuB,EAAE,YAAY;gBACnC,CAAC,CAAC,UAAU,CAAA;;oCAEgB,iBAAiB;;;;;;SAM5C;gBACD,CAAC,CAAC,UAAU,CAAA;;oCAEgB,iBAAiB;;;;;SAK5C;SACJ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,uBAAuB,EAAE,YAAY;YACnC,CAAC,CAAC,UAAU,CAAA;6BACW,gBAAgB;kCACX,iBAAiB;oBAC/B,cAAc;;;;;OAK3B;YACD,CAAC,CAAC,UAAU,CAAA;6BACW,gBAAgB;kCACX,iBAAiB;oBAC/B,cAAc;;;;OAI3B;KACJ,CAAC;AACJ,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAqC;IAErC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GACzE,MAAM,CAAC;IAET,MAAM,EACJ,sBAAsB,EAAE,gBAAgB,EACxC,oBAAoB,EAAE,cAAc,EACpC,WAAW,GACZ,GAAG,yBAAyB,CAAC;QAC5B,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEpD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,uBAAuB,EAAE,YAAY;gBACnC,CAAC,CAAC,UAAU,CAAA;;oCAEgB,iBAAiB;;;;;;;SAO5C;gBACD,CAAC,CAAC,UAAU,CAAA;;oCAEgB,iBAAiB;;;;;;SAM5C;SACJ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,uBAAuB,EAAE,YAAY;YACnC,CAAC,CAAC,UAAU,CAAA;6BACW,gBAAgB;kCACX,iBAAiB;;oBAE/B,cAAc;;;;;OAK3B;YACD,CAAC,CAAC,UAAU,CAAA;6BACW,gBAAgB;kCACX,iBAAiB;;oBAE/B,cAAc;;;;OAI3B;KACJ,CAAC;AACJ,CAAC;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAA2C;IAE3C,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAClD,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,uBAAuB,EAAE,YAAY;YACnC,CAAC,CAAC,UAAU,CAAA;;kCAEgB,iBAAiB;;;;;;OAM5C;YACD,CAAC,CAAC,UAAU,CAAA;;kCAEgB,iBAAiB;;;;;OAK5C;KACJ,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,8 @@ interface GenerateRelationBuildDataConfig {
|
|
|
11
11
|
inputFieldNames: string[];
|
|
12
12
|
/** Data utils imports provider for accessing relationHelpers fragments */
|
|
13
13
|
dataUtilsImports: DataUtilsImportsProvider;
|
|
14
|
+
/** Name for the spread rest variable in destructuring (default: 'data') */
|
|
15
|
+
dataName?: string;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Result of generating relation buildData functions
|
package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-relation-build-data.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E;;GAEG;AACH,UAAU,+BAA+B;IACvC,4CAA4C;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-relation-build-data.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E;;GAEG;AACH,UAAU,+BAA+B;IACvC,4CAA4C;IAC5C,WAAW,EAAE,iBAAiB,CAAC;IAC/B,2FAA2F;IAC3F,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,+BAA+B;IACvC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,wEAAwE;IACxE,sBAAsB,EAAE,cAAc,CAAC;IACvC,sGAAsG;IACtG,oBAAoB,EAAE,cAAc,CAAC;IACrC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,iIAAiI;IACjI,uBAAuB,EAAE,cAAc,CAAC;IACxC,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;CACtB;AAiMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,+BAA+B,GACtC,+BAA+B,CAuCjC"}
|
|
@@ -158,14 +158,14 @@ function generateBuildDataBody(foreignKeyFields, operationType, dataUtilsImports
|
|
|
158
158
|
* // buildUpdateDataFragment: (data) => data
|
|
159
159
|
*/
|
|
160
160
|
export function generateRelationBuildData(config) {
|
|
161
|
-
const { prismaModel, inputFieldNames, dataUtilsImports } = config;
|
|
161
|
+
const { prismaModel, inputFieldNames, dataUtilsImports, dataName } = config;
|
|
162
162
|
// Find all relations that have at least one FK field in the input
|
|
163
163
|
const relevantRelations = findRelevantRelations(prismaModel, inputFieldNames);
|
|
164
164
|
// Extract all foreign key field names
|
|
165
165
|
const foreignKeyFieldNames = extractForeignKeyFields(relevantRelations);
|
|
166
166
|
// Generate both create and update buildData functions
|
|
167
|
-
const createBody = generateBuildDataBody(foreignKeyFieldNames, 'create', dataUtilsImports, relevantRelations, inputFieldNames);
|
|
168
|
-
const updateBody = generateBuildDataBody(foreignKeyFieldNames, 'update', dataUtilsImports, relevantRelations, inputFieldNames);
|
|
167
|
+
const createBody = generateBuildDataBody(foreignKeyFieldNames, 'create', dataUtilsImports, relevantRelations, inputFieldNames, dataName);
|
|
168
|
+
const updateBody = generateBuildDataBody(foreignKeyFieldNames, 'update', dataUtilsImports, relevantRelations, inputFieldNames, dataName);
|
|
169
169
|
// Both should have the same passthrough status since they use the same relations
|
|
170
170
|
const passthrough = createBody.passthrough && updateBody.passthrough;
|
|
171
171
|
return {
|
package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-relation-build-data.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-relation-build-data.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC"}
|
|
@@ -59,13 +59,24 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
|
|
|
59
59
|
AnyOperationHooks: {
|
|
60
60
|
isTypeOnly: true;
|
|
61
61
|
};
|
|
62
|
+
commitCreate: {};
|
|
63
|
+
commitDelete: {};
|
|
64
|
+
commitUpdate: {};
|
|
65
|
+
composeCreate: {};
|
|
66
|
+
composeUpdate: {};
|
|
62
67
|
createParentModelConfig: {};
|
|
68
|
+
DataCreateInput: {
|
|
69
|
+
isTypeOnly: true;
|
|
70
|
+
};
|
|
71
|
+
DataDeleteInput: {
|
|
72
|
+
isTypeOnly: true;
|
|
73
|
+
};
|
|
63
74
|
DataOperationType: {
|
|
64
75
|
isTypeOnly: true;
|
|
65
76
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
77
|
+
DataUpdateInput: {
|
|
78
|
+
isTypeOnly: true;
|
|
79
|
+
};
|
|
69
80
|
FieldContext: {
|
|
70
81
|
isTypeOnly: true;
|
|
71
82
|
};
|
|
@@ -78,6 +89,8 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
|
|
|
78
89
|
FieldTransformResult: {
|
|
79
90
|
isTypeOnly: true;
|
|
80
91
|
};
|
|
92
|
+
generateCreateSchema: {};
|
|
93
|
+
generateUpdateSchema: {};
|
|
81
94
|
GetPayload: {
|
|
82
95
|
isTypeOnly: true;
|
|
83
96
|
};
|
|
@@ -87,6 +100,9 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
|
|
|
87
100
|
InferInput: {
|
|
88
101
|
isTypeOnly: true;
|
|
89
102
|
};
|
|
103
|
+
ModelInclude: {
|
|
104
|
+
isTypeOnly: true;
|
|
105
|
+
};
|
|
90
106
|
ModelPropName: {
|
|
91
107
|
isTypeOnly: true;
|
|
92
108
|
};
|
|
@@ -107,14 +123,17 @@ export declare const dataUtilsGenerator: import("@baseplate-dev/sync").Generator
|
|
|
107
123
|
ParentModelConfig: {
|
|
108
124
|
isTypeOnly: true;
|
|
109
125
|
};
|
|
110
|
-
PrismaTransaction: {
|
|
111
|
-
isTypeOnly: true;
|
|
112
|
-
};
|
|
113
126
|
relationHelpers: {};
|
|
114
127
|
scalarField: {};
|
|
115
128
|
TransactionalOperationContext: {
|
|
116
129
|
isTypeOnly: true;
|
|
117
130
|
};
|
|
131
|
+
WhereInput: {
|
|
132
|
+
isTypeOnly: true;
|
|
133
|
+
};
|
|
134
|
+
WhereUniqueInput: {
|
|
135
|
+
isTypeOnly: true;
|
|
136
|
+
};
|
|
118
137
|
}>>;
|
|
119
138
|
}, {
|
|
120
139
|
paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").PrismaDataUtilsPaths>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/data-utils/data-utils.generator.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"data-utils.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/data-utils/data-utils.generator.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB7B,CAAC"}
|