@baseplate-dev/fastify-generators 0.6.3 → 0.6.5
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 +30 -0
- package/dist/constants/fastify-packages.d.ts +3 -3
- package/dist/constants/fastify-packages.js +3 -3
- package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts +1 -0
- package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts.map +1 -1
- package/dist/generators/auth/auth-roles/auth-roles.generator.js +5 -1
- package/dist/generators/auth/auth-roles/auth-roles.generator.js.map +1 -1
- package/dist/generators/auth/auth-roles/templates/module/constants/auth-roles.constants.ts +4 -3
- package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts +1 -0
- package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts.map +1 -1
- package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js +11 -2
- package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts +47 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js +56 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts +71 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js +153 -0
- package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts +46 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js +44 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +6 -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 +13 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts +24 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts.map +1 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js +49 -0
- package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js.map +1 -0
- package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts +1 -4
- package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts.map +1 -1
- package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js +10 -2
- package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js.map +1 -1
- package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts +47 -1
- package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +17 -74
- package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/index.d.ts +50 -145
- package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +5 -6
- package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-paths.js +5 -6
- package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +0 -21
- package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/template-renderers.js +1 -7
- package/dist/generators/prisma/data-utils/generated/template-renderers.js.map +1 -1
- package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +51 -159
- 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 +32 -64
- 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 +66 -142
- package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/data-utils/generated/typed-templates.js +47 -98
- package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-transformer.ts +130 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/execute-transform-plan.ts +108 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/nested-transformers.ts +364 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prepare-transformers.ts +73 -0
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +6 -83
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/transformer-types.ts +118 -0
- package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +34 -106
- 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 +17 -53
- 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 +34 -106
- 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 +17 -53
- package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-authorizer-utils/templates/src/utils/authorizers.ts +11 -11
- package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +39 -49
- 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 +82 -45
- 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 +39 -52
- 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 +48 -32
- package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts +16 -2
- 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 +282 -138
- package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +19 -55
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js +18 -4
- package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +37 -92
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js +86 -29
- package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +40 -52
- 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 +102 -49
- package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +51 -159
- package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +17 -53
- package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +68 -212
- package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +17 -53
- package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -1
- package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js +1 -1
- package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js.map +1 -1
- package/dist/writers/prisma-schema/fields.d.ts +5 -1
- package/dist/writers/prisma-schema/fields.d.ts.map +1 -1
- package/dist/writers/prisma-schema/fields.js +8 -2
- package/dist/writers/prisma-schema/fields.js.map +1 -1
- package/package.json +8 -8
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +0 -20
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +0 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +0 -28
- package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +0 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +0 -130
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +0 -1
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +0 -221
- package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +0 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +0 -4
- package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +0 -1
- package/dist/generators/prisma/_shared/build-data-helpers/index.js +0 -4
- package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +0 -1
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +0 -366
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +0 -131
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +0 -777
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +0 -201
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +0 -90
- package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +0 -721
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { TsCodeUtils,
|
|
1
|
+
import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
|
|
2
2
|
import { createGenerator, createGeneratorTask } from '@baseplate-dev/sync';
|
|
3
3
|
import { lowercaseFirstChar, quot, uppercaseFirstChar, } from '@baseplate-dev/utils';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { serviceFileProvider } from '#src/generators/core/index.js';
|
|
6
6
|
import { contextKind, prismaQueryKind } from '#src/types/service-dto-kinds.js';
|
|
7
7
|
import { createServiceOutputDtoInjectedArg, prismaToServiceOutputDto, } from '#src/types/service-output.js';
|
|
8
|
-
import {
|
|
8
|
+
import { authorizerUtilsImportsProvider } from '../../auth/_providers/authorizer-utils-imports.js';
|
|
9
|
+
import { serviceContextImportsProvider } from '../../core/service-context/generated/ts-import-providers.js';
|
|
10
|
+
import { buildTransformOperationParts } from '../_shared/build-data-helpers/build-transform-operation-parts.js';
|
|
11
|
+
import { generateAuthorizationStatements } from '../_shared/build-data-helpers/generate-authorization-statements.js';
|
|
9
12
|
import { dataUtilsImportsProvider } from '../data-utils/index.js';
|
|
10
13
|
import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
|
|
11
|
-
import { prismaOutputProvider } from '../prisma/
|
|
14
|
+
import { prismaImportsProvider, prismaOutputProvider, } from '../prisma/index.js';
|
|
12
15
|
const descriptorSchema = z.object({
|
|
13
16
|
name: z.string().min(1),
|
|
14
17
|
modelName: z.string().min(1),
|
|
@@ -17,6 +20,11 @@ const descriptorSchema = z.object({
|
|
|
17
20
|
});
|
|
18
21
|
/**
|
|
19
22
|
* Generator for prisma/prisma-data-create
|
|
23
|
+
*
|
|
24
|
+
* Generates a create function that:
|
|
25
|
+
* - Checks authorization (global only for creates)
|
|
26
|
+
* - For scalar-only models: calls prisma.model.create directly
|
|
27
|
+
* - For models with transformers: uses prepareTransformers + executeTransformPlan
|
|
20
28
|
*/
|
|
21
29
|
export const prismaDataCreateGenerator = createGenerator({
|
|
22
30
|
name: 'prisma/prisma-data-create',
|
|
@@ -29,8 +37,11 @@ export const prismaDataCreateGenerator = createGenerator({
|
|
|
29
37
|
prismaDataService: prismaDataServiceProvider,
|
|
30
38
|
dataUtilsImports: dataUtilsImportsProvider,
|
|
31
39
|
prismaOutput: prismaOutputProvider,
|
|
40
|
+
prismaImports: prismaImportsProvider,
|
|
41
|
+
authorizerImports: authorizerUtilsImportsProvider,
|
|
42
|
+
serviceContextImports: serviceContextImportsProvider,
|
|
32
43
|
},
|
|
33
|
-
run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput }) {
|
|
44
|
+
run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, authorizerImports, serviceContextImports, }) {
|
|
34
45
|
const serviceFields = prismaDataService.getFields();
|
|
35
46
|
const usedFields = serviceFields.filter((field) => fields.includes(field.name));
|
|
36
47
|
if (usedFields.length !== fields.length) {
|
|
@@ -39,60 +50,86 @@ export const prismaDataCreateGenerator = createGenerator({
|
|
|
39
50
|
return {
|
|
40
51
|
build: () => {
|
|
41
52
|
const modelVar = lowercaseFirstChar(modelName);
|
|
42
|
-
const useAllFields = fields.length === serviceFields.length;
|
|
43
|
-
const fieldsVariableName = useAllFields
|
|
44
|
-
? prismaDataService.getFieldsVariableName()
|
|
45
|
-
: `${modelVar}CreateFields`;
|
|
46
|
-
const fieldsDeclarationFragment = useAllFields
|
|
47
|
-
? ''
|
|
48
|
-
: tsTemplateWithImports([
|
|
49
|
-
tsImportBuilder(['pick']).from('es-toolkit'),
|
|
50
|
-
]) `const ${fieldsVariableName} = pick(${prismaDataService.getFieldsVariableName()}, [${fields.map((field) => quot(field)).join(', ')}] as const);\n`;
|
|
51
|
-
// Generate execute callback that transforms FK fields into relations
|
|
52
53
|
const prismaModel = prismaOutput.getPrismaModel(modelName);
|
|
53
|
-
const
|
|
54
|
+
const hasTransformFields = prismaDataService.hasTransformFields();
|
|
55
|
+
const transformersVarName = prismaDataService.getTransformersVariableName() ?? '';
|
|
56
|
+
// Use shared helper for field categorization, destructure, and data building
|
|
57
|
+
const parts = buildTransformOperationParts({
|
|
58
|
+
fields: usedFields,
|
|
54
59
|
prismaModel,
|
|
55
|
-
inputFieldNames: fields,
|
|
56
60
|
dataUtilsImports,
|
|
57
|
-
|
|
61
|
+
operationType: 'create',
|
|
62
|
+
transformersVarFragment: transformersVarName,
|
|
58
63
|
});
|
|
59
|
-
// Generate
|
|
60
|
-
const
|
|
61
|
-
const authorizeFragment = generateAuthorizeFragment({
|
|
64
|
+
// Generate authorization
|
|
65
|
+
const { fragment: authFragment } = generateAuthorizationStatements({
|
|
62
66
|
modelName,
|
|
63
67
|
methodType: 'Create',
|
|
64
68
|
globalRoles,
|
|
65
69
|
modelAuthorizer: undefined,
|
|
70
|
+
authorizerImports,
|
|
66
71
|
});
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
// Extract transformer entries (guaranteed defined when hasTransformFields is true)
|
|
73
|
+
const transformersObject = parts.transformersObjectFragment ?? tsTemplate `{}`;
|
|
74
|
+
// Use property shorthand when data passes through unchanged
|
|
75
|
+
const prismaDataEntry = parts.prismaDataFragment === 'data'
|
|
76
|
+
? 'data,'
|
|
77
|
+
: tsTemplate `data: ${parts.prismaDataFragment},`;
|
|
78
|
+
const createFunction = hasTransformFields
|
|
79
|
+
? // Transform path: prepareTransformers + executeTransformPlan
|
|
80
|
+
tsTemplate `
|
|
81
|
+
export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
|
|
82
|
+
data,
|
|
83
|
+
query,
|
|
84
|
+
context,
|
|
85
|
+
}: {
|
|
86
|
+
data: z.infer<typeof ${prismaDataService.getCreateSchemaVariableName()}>;
|
|
87
|
+
query?: TQuery;
|
|
88
|
+
context: ${serviceContextImports.ServiceContext.typeFragment()};
|
|
89
|
+
}): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
|
|
90
|
+
${authFragment}
|
|
91
|
+
${parts.inputDestructureFragment}
|
|
69
92
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
query,
|
|
75
|
-
context,
|
|
76
|
-
}: ${dataUtilsImports.DataCreateInput.typeFragment()}<
|
|
77
|
-
${quot(modelVar)},
|
|
78
|
-
typeof ${fieldsVariableName},
|
|
79
|
-
TIncludeArgs
|
|
80
|
-
>): Promise<${dataUtilsImports.GetPayload.typeFragment()}<${quot(modelVar)}, TIncludeArgs>> {
|
|
81
|
-
const plan = await ${dataUtilsImports.composeCreate.fragment()}({
|
|
82
|
-
model: ${quot(modelVar)},
|
|
83
|
-
fields: ${fieldsVariableName},
|
|
84
|
-
input,
|
|
85
|
-
context,${authorizeFragment}
|
|
86
|
-
});
|
|
93
|
+
const plan = await ${dataUtilsImports.prepareTransformers.fragment()}({
|
|
94
|
+
transformers: ${transformersObject},
|
|
95
|
+
serviceContext: context,
|
|
96
|
+
});
|
|
87
97
|
|
|
88
|
-
|
|
98
|
+
const result = await ${dataUtilsImports.executeTransformPlan.fragment()}(plan, {
|
|
99
|
+
execute: async ({ tx, transformed }) =>
|
|
100
|
+
tx.${modelVar}.create({
|
|
101
|
+
${prismaDataEntry}
|
|
102
|
+
}),
|
|
103
|
+
refetch: (item) =>
|
|
104
|
+
${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where: { id: item.id }, ...query }),
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
|
|
108
|
+
}
|
|
109
|
+
`
|
|
110
|
+
: // Scalar-only path: direct Prisma call, no transaction
|
|
111
|
+
tsTemplate `
|
|
112
|
+
export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
|
|
113
|
+
data,
|
|
89
114
|
query,
|
|
90
|
-
|
|
91
|
-
}
|
|
115
|
+
context,
|
|
116
|
+
}: {
|
|
117
|
+
data: z.infer<typeof ${prismaDataService.getCreateSchemaVariableName()}>;
|
|
118
|
+
query?: TQuery;
|
|
119
|
+
context: ${serviceContextImports.ServiceContext.typeFragment()};
|
|
120
|
+
}): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
|
|
121
|
+
${authFragment}
|
|
122
|
+
${parts.inputDestructureFragment}
|
|
92
123
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
124
|
+
const result = await ${prismaImports.prisma.fragment()}.${modelVar}.create({
|
|
125
|
+
${prismaDataEntry}
|
|
126
|
+
...query,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
|
|
130
|
+
}
|
|
131
|
+
`;
|
|
132
|
+
const schemaName = `${modelVar}CreateSchema`;
|
|
96
133
|
const methodFragment = TsCodeUtils.importFragment(name, serviceFile.getServicePath());
|
|
97
134
|
const schemaMethodFragment = TsCodeUtils.importFragment(schemaName, serviceFile.getServicePath());
|
|
98
135
|
prismaDataService.registerMethod({
|
|
@@ -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":"AAAA,OAAO,
|
|
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,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generator for prisma/prisma-data-delete
|
|
3
|
+
*
|
|
4
|
+
* Generates a delete function that:
|
|
5
|
+
* - Checks authorization (global and/or instance)
|
|
6
|
+
* - Calls prisma.model.delete directly (no transaction wrapper)
|
|
7
|
+
* - Returns the deleted record
|
|
3
8
|
*/
|
|
4
9
|
export declare const prismaDataDeleteGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
|
|
5
10
|
name: string;
|
|
@@ -11,92 +16,74 @@ export declare const prismaDataDeleteGenerator: import("@baseplate-dev/sync").Ge
|
|
|
11
16
|
serviceFile: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ServiceFileProvider>;
|
|
12
17
|
prismaDataService: import("@baseplate-dev/sync").ProviderType<import("../prisma-data-service/prisma-data-service.generator.js").PrismaDataServiceProvider>;
|
|
13
18
|
dataUtilsImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
14
|
-
|
|
19
|
+
AfterExecuteHook: {
|
|
15
20
|
isTypeOnly: true;
|
|
16
21
|
};
|
|
17
|
-
|
|
22
|
+
AnyBoundTransformer: {
|
|
18
23
|
isTypeOnly: true;
|
|
19
24
|
};
|
|
20
|
-
|
|
21
|
-
commitDelete: {};
|
|
22
|
-
commitUpdate: {};
|
|
23
|
-
composeCreate: {};
|
|
24
|
-
composeUpdate: {};
|
|
25
|
-
createParentModelConfig: {};
|
|
26
|
-
DataCreateInput: {
|
|
25
|
+
AnyTransformer: {
|
|
27
26
|
isTypeOnly: true;
|
|
28
27
|
};
|
|
29
|
-
|
|
28
|
+
BoundTransformer: {
|
|
30
29
|
isTypeOnly: true;
|
|
31
30
|
};
|
|
32
|
-
|
|
31
|
+
DataQuery: {
|
|
33
32
|
isTypeOnly: true;
|
|
34
33
|
};
|
|
35
|
-
|
|
34
|
+
defineTransformer: {};
|
|
35
|
+
executeTransformPlan: {};
|
|
36
|
+
GetResult: {
|
|
36
37
|
isTypeOnly: true;
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
InferTransformed: {
|
|
39
40
|
isTypeOnly: true;
|
|
40
41
|
};
|
|
41
|
-
|
|
42
|
-
isTypeOnly: true;
|
|
43
|
-
};
|
|
44
|
-
FieldTransformData: {
|
|
45
|
-
isTypeOnly: true;
|
|
46
|
-
};
|
|
47
|
-
FieldTransformResult: {
|
|
48
|
-
isTypeOnly: true;
|
|
49
|
-
};
|
|
50
|
-
generateCreateSchema: {};
|
|
51
|
-
generateUpdateSchema: {};
|
|
52
|
-
GetPayload: {
|
|
53
|
-
isTypeOnly: true;
|
|
54
|
-
};
|
|
55
|
-
InferFieldsOutput: {
|
|
56
|
-
isTypeOnly: true;
|
|
57
|
-
};
|
|
58
|
-
InferInput: {
|
|
59
|
-
isTypeOnly: true;
|
|
60
|
-
};
|
|
61
|
-
ModelInclude: {
|
|
42
|
+
MaybePromise: {
|
|
62
43
|
isTypeOnly: true;
|
|
63
44
|
};
|
|
64
45
|
ModelPropName: {
|
|
65
46
|
isTypeOnly: true;
|
|
66
47
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
NestedOneToOneFieldConfig: {
|
|
48
|
+
oneToManyTransformer: {};
|
|
49
|
+
oneToOneTransformer: {};
|
|
50
|
+
prepareTransformers: {};
|
|
51
|
+
relationHelpers: {};
|
|
52
|
+
Transformer: {
|
|
73
53
|
isTypeOnly: true;
|
|
74
54
|
};
|
|
75
|
-
|
|
55
|
+
TransformerResult: {
|
|
76
56
|
isTypeOnly: true;
|
|
77
57
|
};
|
|
78
|
-
|
|
58
|
+
TransformPlan: {
|
|
79
59
|
isTypeOnly: true;
|
|
80
60
|
};
|
|
81
|
-
|
|
61
|
+
WhereInput: {
|
|
82
62
|
isTypeOnly: true;
|
|
83
63
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
64
|
+
}>>;
|
|
65
|
+
prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
|
|
66
|
+
prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
67
|
+
prisma: {};
|
|
68
|
+
}>>;
|
|
69
|
+
authorizerImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
70
|
+
checkGlobalAuthorization: {};
|
|
71
|
+
checkInstanceAuthorization: {};
|
|
72
|
+
GlobalRoleCheck: {
|
|
87
73
|
isTypeOnly: true;
|
|
88
74
|
};
|
|
89
|
-
|
|
75
|
+
InstanceRoleCheck: {
|
|
90
76
|
isTypeOnly: true;
|
|
91
77
|
};
|
|
92
|
-
|
|
78
|
+
}>>;
|
|
79
|
+
serviceContextImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
80
|
+
createServiceContext: {};
|
|
81
|
+
createSystemServiceContext: {};
|
|
82
|
+
createTestServiceContext: {};
|
|
83
|
+
ServiceContext: {
|
|
93
84
|
isTypeOnly: true;
|
|
94
85
|
};
|
|
95
86
|
}>>;
|
|
96
|
-
prismaOutput: import("@baseplate-dev/sync").ProviderType<import("../prisma/prisma.generator.js").PrismaOutputProvider>;
|
|
97
|
-
prismaImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{
|
|
98
|
-
prisma: {};
|
|
99
|
-
}>>;
|
|
100
87
|
modelAuthorizer: import("@baseplate-dev/sync").ProviderDependency<import("../prisma-model-authorizer/prisma-model-authorizer.generator.js").PrismaModelAuthorizerProvider | undefined>;
|
|
101
88
|
}, any>;
|
|
102
89
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-data-delete.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAmCA
|
|
1
|
+
{"version":3,"file":"prisma-data-delete.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAmCA;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6HpC,CAAC"}
|
|
@@ -5,7 +5,10 @@ import { z } from 'zod';
|
|
|
5
5
|
import { serviceFileProvider } from '#src/generators/core/index.js';
|
|
6
6
|
import { contextKind, prismaQueryKind, prismaWhereUniqueInputKind, } from '#src/types/service-dto-kinds.js';
|
|
7
7
|
import { createServiceOutputDtoInjectedArg, prismaToServiceOutputDto, } from '#src/types/service-output.js';
|
|
8
|
-
import {
|
|
8
|
+
import { authorizerUtilsImportsProvider } from '../../auth/_providers/authorizer-utils-imports.js';
|
|
9
|
+
import { serviceContextImportsProvider } from '../../core/service-context/generated/ts-import-providers.js';
|
|
10
|
+
import { generateAuthorizationStatements } from '../_shared/build-data-helpers/generate-authorization-statements.js';
|
|
11
|
+
import { generateWhereType } from '../_shared/build-data-helpers/generate-where-type.js';
|
|
9
12
|
import { dataUtilsImportsProvider } from '../data-utils/index.js';
|
|
10
13
|
import { prismaDataServiceProvider } from '../prisma-data-service/prisma-data-service.generator.js';
|
|
11
14
|
import { prismaModelAuthorizerProvider } from '../prisma-model-authorizer/index.js';
|
|
@@ -18,6 +21,11 @@ const descriptorSchema = z.object({
|
|
|
18
21
|
});
|
|
19
22
|
/**
|
|
20
23
|
* Generator for prisma/prisma-data-delete
|
|
24
|
+
*
|
|
25
|
+
* Generates a delete function that:
|
|
26
|
+
* - Checks authorization (global and/or instance)
|
|
27
|
+
* - Calls prisma.model.delete directly (no transaction wrapper)
|
|
28
|
+
* - Returns the deleted record
|
|
21
29
|
*/
|
|
22
30
|
export const prismaDataDeleteGenerator = createGenerator({
|
|
23
31
|
name: 'prisma/prisma-data-delete',
|
|
@@ -31,53 +39,57 @@ export const prismaDataDeleteGenerator = createGenerator({
|
|
|
31
39
|
dataUtilsImports: dataUtilsImportsProvider,
|
|
32
40
|
prismaOutput: prismaOutputProvider,
|
|
33
41
|
prismaImports: prismaImportsProvider,
|
|
42
|
+
authorizerImports: authorizerUtilsImportsProvider,
|
|
43
|
+
serviceContextImports: serviceContextImportsProvider,
|
|
34
44
|
modelAuthorizer: prismaModelAuthorizerProvider
|
|
35
45
|
.dependency()
|
|
36
46
|
.optionalReference(modelName),
|
|
37
47
|
},
|
|
38
|
-
run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, modelAuthorizer, }) {
|
|
48
|
+
run({ serviceFile, prismaDataService, dataUtilsImports, prismaOutput, prismaImports, authorizerImports, serviceContextImports, modelAuthorizer, }) {
|
|
39
49
|
return {
|
|
40
50
|
build: () => {
|
|
41
51
|
const modelVar = lowercaseFirstChar(modelName);
|
|
42
52
|
const prismaModel = prismaOutput.getPrismaModel(modelName);
|
|
43
|
-
// Generate
|
|
44
|
-
const {
|
|
45
|
-
prismaModel,
|
|
46
|
-
modelVariableName: modelVar,
|
|
47
|
-
});
|
|
48
|
-
// Build authorize array from global + instance roles
|
|
49
|
-
const authorizeFragment = generateAuthorizeFragment({
|
|
53
|
+
// Generate authorization statements
|
|
54
|
+
const { fragment: authFragment, hasInstanceAuth } = generateAuthorizationStatements({
|
|
50
55
|
modelName,
|
|
51
56
|
methodType: 'Delete',
|
|
52
57
|
globalRoles,
|
|
53
58
|
instanceRoles,
|
|
54
59
|
modelAuthorizer,
|
|
60
|
+
authorizerImports,
|
|
55
61
|
});
|
|
56
|
-
//
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
// Fetch existing item if needed for instance auth
|
|
63
|
+
const existingItemFragment = hasInstanceAuth
|
|
64
|
+
? tsTemplate `const existingItem = await ${prismaImports.prisma.fragment()}.${modelVar}.findUniqueOrThrow({ where });`
|
|
65
|
+
: '';
|
|
66
|
+
const whereType = generateWhereType(prismaModel);
|
|
67
|
+
// Only include context parameter when authorization is needed
|
|
68
|
+
const hasAuth = authFragment !== '';
|
|
69
|
+
const contextParam = hasAuth ? 'context,' : '';
|
|
70
|
+
const contextType = hasAuth
|
|
71
|
+
? tsTemplate `context: ${serviceContextImports.ServiceContext.typeFragment()};`
|
|
61
72
|
: '';
|
|
62
73
|
// Generate the delete function
|
|
63
74
|
const deleteFunction = tsTemplate `
|
|
64
|
-
export async function ${name}<
|
|
65
|
-
TIncludeArgs extends ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}> = ${dataUtilsImports.ModelInclude.typeFragment()}<${quot(modelVar)}>,
|
|
66
|
-
>({
|
|
75
|
+
export async function ${name}<TQuery extends ${dataUtilsImports.DataQuery.typeFragment()}<${quot(modelVar)}>>({
|
|
67
76
|
where,
|
|
68
77
|
query,
|
|
69
|
-
|
|
70
|
-
}:
|
|
71
|
-
${
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
${contextParam}
|
|
79
|
+
}: {
|
|
80
|
+
where: ${whereType};
|
|
81
|
+
query?: TQuery;
|
|
82
|
+
${contextType}
|
|
83
|
+
}): Promise<${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>> {
|
|
84
|
+
${existingItemFragment}
|
|
85
|
+
${authFragment}
|
|
86
|
+
|
|
87
|
+
const result = await ${prismaImports.prisma.fragment()}.${modelVar}.delete({
|
|
88
|
+
where,
|
|
89
|
+
...query,
|
|
78
90
|
});
|
|
79
91
|
|
|
80
|
-
return
|
|
92
|
+
return result as ${dataUtilsImports.GetResult.typeFragment()}<${quot(modelVar)}, TQuery>;
|
|
81
93
|
}
|
|
82
94
|
`;
|
|
83
95
|
prismaDataService.registerMethod({
|
|
@@ -96,11 +108,15 @@ export const prismaDataDeleteGenerator = createGenerator({
|
|
|
96
108
|
idFields: prismaModel.idFields ?? [],
|
|
97
109
|
},
|
|
98
110
|
}),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
111
|
+
...(hasAuth
|
|
112
|
+
? [
|
|
113
|
+
createServiceOutputDtoInjectedArg({
|
|
114
|
+
name: 'context',
|
|
115
|
+
type: 'injected',
|
|
116
|
+
kind: contextKind,
|
|
117
|
+
}),
|
|
118
|
+
]
|
|
119
|
+
: []),
|
|
104
120
|
createServiceOutputDtoInjectedArg({
|
|
105
121
|
type: 'injected',
|
|
106
122
|
name: 'query',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-data-delete.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,WAAW,EACX,eAAe,EACf,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"prisma-data-delete.generator.js","sourceRoot":"","sources":["../../../../src/generators/prisma/prisma-data-delete/prisma-data-delete.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,25 @@ interface WritePrismaDataNestedFieldInput {
|
|
|
6
6
|
parentModel: PrismaOutputModel;
|
|
7
7
|
nestedModel: PrismaOutputModel;
|
|
8
8
|
relation: PrismaOutputRelationField;
|
|
9
|
-
/** The fragment referencing the existing fields array (otherwise we inline the fields) */
|
|
10
|
-
dataServiceFieldsFragment?: TsCodeFragment;
|
|
11
9
|
nestedFields: InputFieldDefinitionOutput[];
|
|
12
10
|
dataUtilsImports: DataUtilsImportsProvider;
|
|
11
|
+
/** Import fragment for the nested model's transformers variable (e.g., todoItemAttachmentTransformers) */
|
|
12
|
+
nestedTransformersFragment?: TsCodeFragment;
|
|
13
|
+
/** Import fragment for the nested model's fieldSchemas variable (e.g., userImageFieldSchemas) */
|
|
14
|
+
nestedFieldSchemasFragment?: TsCodeFragment;
|
|
15
|
+
/** All field names in the nested model's data service (for subset detection) */
|
|
16
|
+
allDataServiceFieldNames?: string[];
|
|
13
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Writes a nested field transformer definition (oneToOneTransformer or oneToManyTransformer).
|
|
20
|
+
*
|
|
21
|
+
* Generates:
|
|
22
|
+
* - schemaFragment: Zod schema for the fieldSchemas object
|
|
23
|
+
* - transformer.fragment: oneToOneTransformer({...}) or oneToManyTransformer({...})
|
|
24
|
+
*
|
|
25
|
+
* For nested entities with sub-transform-fields (e.g., file fields), generates
|
|
26
|
+
* processCreate/processUpdate that use prepareTransformers + executeTransformPlan.
|
|
27
|
+
*/
|
|
14
28
|
export declare function writePrismaDataNestedField(input: WritePrismaDataNestedFieldInput): InputFieldDefinitionOutput;
|
|
15
29
|
export {};
|
|
16
30
|
//# sourceMappingURL=nested-field-writer.d.ts.map
|
|
@@ -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;
|
|
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;AASrE,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;AAMvE,UAAU,+BAA+B;IACvC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,YAAY,EAAE,0BAA0B,EAAE,CAAC;IAC3C,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,0GAA0G;IAC1G,0BAA0B,CAAC,EAAE,cAAc,CAAC;IAC5C,iGAAiG;IACjG,0BAA0B,CAAC,EAAE,cAAc,CAAC;IAC5C,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAmSD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,0BAA0B,CAqI5B"}
|