@baseplate-dev/fastify-generators 0.6.4 → 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.
Files changed (130) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/constants/fastify-packages.d.ts +3 -3
  3. package/dist/constants/fastify-packages.js +3 -3
  4. package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts +1 -0
  5. package/dist/generators/auth/auth-roles/auth-roles.generator.d.ts.map +1 -1
  6. package/dist/generators/auth/auth-roles/auth-roles.generator.js +5 -1
  7. package/dist/generators/auth/auth-roles/auth-roles.generator.js.map +1 -1
  8. package/dist/generators/auth/auth-roles/templates/module/constants/auth-roles.constants.ts +4 -3
  9. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts +1 -0
  10. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.d.ts.map +1 -1
  11. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js +11 -2
  12. package/dist/generators/pothos/pothos-prisma-enum/pothos-prisma-enum.generator.js.map +1 -1
  13. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts +47 -0
  14. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.d.ts.map +1 -0
  15. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js +56 -0
  16. package/dist/generators/prisma/_shared/build-data-helpers/build-schema-fragments.js.map +1 -0
  17. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts +71 -0
  18. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.d.ts.map +1 -0
  19. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js +153 -0
  20. package/dist/generators/prisma/_shared/build-data-helpers/build-transform-operation-parts.js.map +1 -0
  21. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts +46 -0
  22. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.d.ts.map +1 -0
  23. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js +44 -0
  24. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorization-statements.js.map +1 -0
  25. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +6 -0
  26. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -1
  27. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +13 -1
  28. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -1
  29. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts +24 -0
  30. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.d.ts.map +1 -0
  31. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js +49 -0
  32. package/dist/generators/prisma/_shared/build-data-helpers/generate-where-type.js.map +1 -0
  33. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts +1 -4
  34. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts.map +1 -1
  35. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js +10 -2
  36. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js.map +1 -1
  37. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts +47 -1
  38. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts.map +1 -1
  39. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +17 -74
  40. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -1
  41. package/dist/generators/prisma/data-utils/generated/index.d.ts +50 -145
  42. package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -1
  43. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +5 -6
  44. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -1
  45. package/dist/generators/prisma/data-utils/generated/template-paths.js +5 -6
  46. package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -1
  47. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +0 -21
  48. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -1
  49. package/dist/generators/prisma/data-utils/generated/template-renderers.js +1 -7
  50. package/dist/generators/prisma/data-utils/generated/template-renderers.js.map +1 -1
  51. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +51 -159
  52. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -1
  53. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +32 -64
  54. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -1
  55. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +66 -142
  56. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -1
  57. package/dist/generators/prisma/data-utils/generated/typed-templates.js +47 -98
  58. package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -1
  59. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-transformer.ts +130 -0
  60. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/execute-transform-plan.ts +108 -0
  61. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/nested-transformers.ts +364 -0
  62. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prepare-transformers.ts +73 -0
  63. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +6 -83
  64. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/transformer-types.ts +118 -0
  65. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts +34 -106
  66. package/dist/generators/prisma/prisma-authorizer-utils/generated/index.d.ts.map +1 -1
  67. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts +17 -53
  68. package/dist/generators/prisma/prisma-authorizer-utils/generated/template-renderers.d.ts.map +1 -1
  69. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts +34 -106
  70. package/dist/generators/prisma/prisma-authorizer-utils/generated/typed-templates.d.ts.map +1 -1
  71. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts +17 -53
  72. package/dist/generators/prisma/prisma-authorizer-utils/prisma-authorizer-utils.generator.d.ts.map +1 -1
  73. package/dist/generators/prisma/prisma-authorizer-utils/templates/src/utils/authorizers.ts +11 -11
  74. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +39 -49
  75. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -1
  76. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +82 -45
  77. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -1
  78. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +39 -52
  79. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -1
  80. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +48 -32
  81. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -1
  82. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts +16 -2
  83. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts.map +1 -1
  84. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js +282 -138
  85. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js.map +1 -1
  86. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +19 -55
  87. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -1
  88. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js +18 -4
  89. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js.map +1 -1
  90. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +37 -92
  91. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -1
  92. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js +86 -29
  93. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js.map +1 -1
  94. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +40 -52
  95. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -1
  96. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +102 -49
  97. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -1
  98. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts +51 -159
  99. package/dist/generators/prisma/prisma-query-filter-utils/generated/index.d.ts.map +1 -1
  100. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts +17 -53
  101. package/dist/generators/prisma/prisma-query-filter-utils/generated/template-renderers.d.ts.map +1 -1
  102. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts +68 -212
  103. package/dist/generators/prisma/prisma-query-filter-utils/generated/typed-templates.d.ts.map +1 -1
  104. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts +17 -53
  105. package/dist/generators/prisma/prisma-query-filter-utils/prisma-query-filter-utils.generator.d.ts.map +1 -1
  106. package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js +1 -1
  107. package/dist/generators/prisma/prisma-relation-field/prisma-relation-field.generator.js.map +1 -1
  108. package/dist/writers/prisma-schema/fields.d.ts +5 -1
  109. package/dist/writers/prisma-schema/fields.d.ts.map +1 -1
  110. package/dist/writers/prisma-schema/fields.js +8 -2
  111. package/dist/writers/prisma-schema/fields.js.map +1 -1
  112. package/package.json +8 -8
  113. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts +0 -20
  114. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.d.ts.map +0 -1
  115. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js +0 -28
  116. package/dist/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.js.map +0 -1
  117. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +0 -130
  118. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +0 -1
  119. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +0 -221
  120. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +0 -1
  121. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +0 -4
  122. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +0 -1
  123. package/dist/generators/prisma/_shared/build-data-helpers/index.js +0 -4
  124. package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +0 -1
  125. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/commit-operations.ts +0 -366
  126. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/compose-operations.ts +0 -131
  127. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +0 -777
  128. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-utils.ts +0 -201
  129. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +0 -90
  130. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +0 -721
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baseplate-dev/fastify-generators",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
4
4
  "description": "Fastify generators for Baseplate",
5
5
  "keywords": [
6
6
  "backend",
@@ -33,28 +33,28 @@
33
33
  "!dist/**/*.tsbuildinfo"
34
34
  ],
35
35
  "dependencies": {
36
- "@prisma/internals": "7.2.0",
36
+ "@prisma/internals": "7.5.0",
37
37
  "change-case": "5.4.4",
38
38
  "es-toolkit": "1.44.0",
39
39
  "indent-string": "5.0.0",
40
40
  "inflection": "3.0.0",
41
41
  "zod": "^4.3.6",
42
- "@baseplate-dev/core-generators": "0.6.4",
43
- "@baseplate-dev/sync": "0.6.4",
44
- "@baseplate-dev/utils": "0.6.4"
42
+ "@baseplate-dev/core-generators": "0.6.5",
43
+ "@baseplate-dev/sync": "0.6.5",
44
+ "@baseplate-dev/utils": "0.6.5"
45
45
  },
46
46
  "devDependencies": {
47
47
  "concurrently": "9.2.1",
48
48
  "cpx2": "8.0.0",
49
49
  "eslint": "9.39.2",
50
- "oxlint": "1.55.0",
50
+ "oxlint": "1.56.0",
51
51
  "prettier": "3.8.1",
52
52
  "typescript": "5.9.3",
53
53
  "vitest": "4.0.16",
54
- "@baseplate-dev/tools": "0.6.4"
54
+ "@baseplate-dev/tools": "0.6.5"
55
55
  },
56
56
  "engines": {
57
- "node": "^22.0.0"
57
+ "node": "^24.0.0"
58
58
  },
59
59
  "volta": {
60
60
  "extends": "../../package.json"
@@ -1,20 +0,0 @@
1
- import type { TsCodeFragment } from '@baseplate-dev/core-generators';
2
- interface ModelAuthorizerLike {
3
- getRoleFragment(roleName: string): TsCodeFragment;
4
- }
5
- interface GenerateAuthorizeFragmentOptions {
6
- modelName: string;
7
- methodType: string;
8
- globalRoles?: string[];
9
- instanceRoles?: string[];
10
- modelAuthorizer: ModelAuthorizerLike | undefined;
11
- }
12
- /**
13
- * Builds a `TsCodeFragment` for the `authorize: [...]` property used in
14
- * `composeCreate`, `composeUpdate`, and `commitDelete` calls.
15
- *
16
- * Returns an empty string when no roles are configured.
17
- */
18
- export declare function generateAuthorizeFragment({ modelName, methodType, globalRoles, instanceRoles, modelAuthorizer, }: GenerateAuthorizeFragmentOptions): string | TsCodeFragment;
19
- export {};
20
- //# sourceMappingURL=generate-authorize-fragment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-authorize-fragment.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKrE,UAAU,mBAAmB;IAC3B,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC;CACnD;AAED,UAAU,gCAAgC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GAChB,EAAE,gCAAgC,GAAG,MAAM,GAAG,cAAc,CA2B5D"}
@@ -1,28 +0,0 @@
1
- import { TsCodeUtils } from '@baseplate-dev/core-generators';
2
- import { quot } from '@baseplate-dev/utils';
3
- /**
4
- * Builds a `TsCodeFragment` for the `authorize: [...]` property used in
5
- * `composeCreate`, `composeUpdate`, and `commitDelete` calls.
6
- *
7
- * Returns an empty string when no roles are configured.
8
- */
9
- export function generateAuthorizeFragment({ modelName, methodType, globalRoles, instanceRoles, modelAuthorizer, }) {
10
- const hasGlobalRoles = globalRoles != null && globalRoles.length > 0;
11
- const hasInstanceRoles = instanceRoles != null && instanceRoles.length > 0;
12
- if (!hasGlobalRoles && !hasInstanceRoles) {
13
- return '';
14
- }
15
- const globalRoleItems = (globalRoles ?? []).map((r) => quot(r));
16
- const instanceRoleFragments = (instanceRoles ?? []).map((roleName) => {
17
- if (!modelAuthorizer) {
18
- throw new Error(`${methodType} method on model '${modelName}' references instance role '${roleName}' but no authorizer is configured for this model.`);
19
- }
20
- return modelAuthorizer.getRoleFragment(roleName);
21
- });
22
- const allItems = [
23
- ...globalRoleItems,
24
- ...instanceRoleFragments.map((f) => f.contents),
25
- ];
26
- return TsCodeUtils.frag(`\n authorize: [${allItems.join(', ')}],`, instanceRoleFragments.flatMap((f) => f.imports ?? []));
27
- }
28
- //# sourceMappingURL=generate-authorize-fragment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-authorize-fragment.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-authorize-fragment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAc5C;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GACkB;IACjC,MAAM,cAAc,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3E,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,qBAAqB,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,GAAG,UAAU,qBAAqB,SAAS,+BAA+B,QAAQ,mDAAmD,CACtI,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf,GAAG,eAAe;QAClB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;KAChD,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CACrB,mCAAmC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAC1D,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CACtD,CAAC;AACJ,CAAC"}
@@ -1,130 +0,0 @@
1
- import type { TsCodeFragment } from '@baseplate-dev/core-generators';
2
- import type { PrismaOutputModel } from '#src/types/prisma-output.js';
3
- import type { DataUtilsImportsProvider } from '../../data-utils/index.js';
4
- /**
5
- * Configuration for generating create/update execute callbacks
6
- */
7
- interface GenerateExecuteCallbackConfig {
8
- /** Prisma model to analyze for relations */
9
- prismaModel: PrismaOutputModel;
10
- /** Field names that are included in the input */
11
- inputFieldNames: string[];
12
- /** Data utils imports provider for accessing relationHelpers fragments */
13
- dataUtilsImports: DataUtilsImportsProvider;
14
- /** Prisma model variable name in camelCase (e.g., 'todoItem', 'user') */
15
- modelVariableName: string;
16
- }
17
- /**
18
- * Result of generating create execute callback
19
- */
20
- interface GenerateCreateExecuteCallbackResult {
21
- /** Execute callback fragment: async ({ tx, data, query }) => tx.model.create({ data, ...query }) */
22
- executeCallbackFragment: TsCodeFragment;
23
- }
24
- /**
25
- * Generates a create execute callback that transforms foreign key fields into Prisma relation objects.
26
- *
27
- * @param config - Configuration including Prisma model, input fields, and model name
28
- * @returns Result containing the execute callback function fragment
29
- *
30
- * @example
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
- * // return item;
36
- * // }
37
- *
38
- * @example
39
- * // With relations
40
- * generateCreateExecuteCallback({...})
41
- * // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
42
- * // const item = await tx.todoItem.create({
43
- * // data: {
44
- * // ...rest,
45
- * // assignee: relationHelpers.connectCreate({ id: assigneeId }),
46
- * // todoList: relationHelpers.connectCreate({ id: todoListId }),
47
- * // },
48
- * // ...query,
49
- * // });
50
- * // return item;
51
- * // }
52
- */
53
- export declare function generateCreateExecuteCallback(config: GenerateExecuteCallbackConfig): GenerateCreateExecuteCallbackResult;
54
- /**
55
- * Result of generating update execute callback
56
- */
57
- interface GenerateUpdateExecuteCallbackResult {
58
- /** Execute callback fragment: async ({ tx, data, query }) => tx.model.update({ where, data, ...query }) */
59
- executeCallbackFragment: TsCodeFragment;
60
- }
61
- /**
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.
66
- *
67
- * @param config - Configuration including Prisma model, input fields, and model name
68
- * @returns Result containing the execute callback function fragment
69
- *
70
- * @example
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 });
75
- * // return item;
76
- * // }
77
- *
78
- * @example
79
- * // With relations
80
- * generateUpdateExecuteCallback({...})
81
- * // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
82
- * // const item = await tx.todoItem.update({
83
- * // where,
84
- * // data: {
85
- * // ...rest,
86
- * // assignee: relationHelpers.connectUpdate({ id: assigneeId }),
87
- * // todoList: relationHelpers.connectUpdate({ id: todoListId }),
88
- * // },
89
- * // ...query,
90
- * // });
91
- * // return item;
92
- * // }
93
- */
94
- export declare function generateUpdateExecuteCallback(config: GenerateExecuteCallbackConfig): GenerateUpdateExecuteCallbackResult;
95
- /**
96
- * Configuration for generating delete execute callback
97
- */
98
- interface GenerateDeleteExecuteCallbackConfig {
99
- /** Prisma model to check for relations */
100
- prismaModel: PrismaOutputModel;
101
- /** Prisma model variable name in camelCase (e.g., 'todoItem', 'user') */
102
- modelVariableName: string;
103
- }
104
- /**
105
- * Result of generating delete execute callback
106
- */
107
- interface GenerateDeleteExecuteCallbackResult {
108
- /** Execute callback fragment: async ({ tx, query }) => { const item = await tx.model.delete({ where, ...query }); return item; } */
109
- executeCallbackFragment: TsCodeFragment;
110
- }
111
- /**
112
- * Generates a delete execute callback.
113
- *
114
- * Delete operations don't need data transformation, so this simply generates
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.
117
- *
118
- * @param config - Configuration with model name
119
- * @returns Result containing the execute callback function fragment
120
- *
121
- * @example
122
- * generateDeleteExecuteCallback({ modelVariableName: 'todoItem' })
123
- * // Returns: async ({ tx, query }) => {
124
- * // const item = await tx.todoItem.delete({ where, ...query });
125
- * // return item;
126
- * // }
127
- */
128
- export declare function generateDeleteExecuteCallback(config: GenerateDeleteExecuteCallbackConfig): GenerateDeleteExecuteCallbackResult;
129
- export {};
130
- //# sourceMappingURL=generate-operation-callbacks.d.ts.map
@@ -1 +0,0 @@
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,221 +0,0 @@
1
- import { tsTemplate } from '@baseplate-dev/core-generators';
2
- import { generateRelationBuildData } from './generate-relation-build-data.js';
3
- /**
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.
12
- *
13
- * @param config - Configuration including Prisma model, input fields, and model name
14
- * @returns Result containing the execute callback function fragment
15
- *
16
- * @example
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 });
21
- * // return item;
22
- * // }
23
- *
24
- * @example
25
- * // With relations
26
- * generateCreateExecuteCallback({...})
27
- * // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
28
- * // const item = await tx.todoItem.create({
29
- * // data: {
30
- * // ...rest,
31
- * // assignee: relationHelpers.connectCreate({ id: assigneeId }),
32
- * // todoList: relationHelpers.connectCreate({ id: todoListId }),
33
- * // },
34
- * // ...query,
35
- * // });
36
- * // return item;
37
- * // }
38
- */
39
- export function generateCreateExecuteCallback(config) {
40
- const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
41
- const { createArgumentFragment: argumentFragment, createReturnFragment: returnFragment, passthrough, } = generateRelationBuildData({
42
- prismaModel,
43
- inputFieldNames,
44
- dataUtilsImports,
45
- dataName: 'rest',
46
- });
47
- const hasRelations = modelHasRelations(prismaModel);
48
- if (passthrough) {
49
- return {
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 }) => {
74
- const item = await tx.${modelVariableName}.create({
75
- data: ${returnFragment},
76
- ...query,
77
- });
78
- return item;
79
- }
80
- `
81
- : tsTemplate `
82
- async ({ tx, data: ${argumentFragment} }) => {
83
- const item = await tx.${modelVariableName}.create({
84
- data: ${returnFragment},
85
- });
86
- return item;
87
- }
88
- `,
89
- };
90
- }
91
- /**
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.
96
- *
97
- * @param config - Configuration including Prisma model, input fields, and model name
98
- * @returns Result containing the execute callback function fragment
99
- *
100
- * @example
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 });
105
- * // return item;
106
- * // }
107
- *
108
- * @example
109
- * // With relations
110
- * generateUpdateExecuteCallback({...})
111
- * // Returns: async ({ tx, data: { assigneeId, todoListId, ...rest }, query }) => {
112
- * // const item = await tx.todoItem.update({
113
- * // where,
114
- * // data: {
115
- * // ...rest,
116
- * // assignee: relationHelpers.connectUpdate({ id: assigneeId }),
117
- * // todoList: relationHelpers.connectUpdate({ id: todoListId }),
118
- * // },
119
- * // ...query,
120
- * // });
121
- * // return item;
122
- * // }
123
- */
124
- export function generateUpdateExecuteCallback(config) {
125
- const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
126
- const { updateArgumentFragment: argumentFragment, updateReturnFragment: returnFragment, passthrough, } = generateRelationBuildData({
127
- prismaModel,
128
- inputFieldNames,
129
- dataUtilsImports,
130
- dataName: 'rest',
131
- });
132
- const hasRelations = modelHasRelations(prismaModel);
133
- if (passthrough) {
134
- return {
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 }) => {
161
- const item = await tx.${modelVariableName}.update({
162
- where,
163
- data: ${returnFragment},
164
- ...query,
165
- });
166
- return item;
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
- }
177
- `,
178
- };
179
- }
180
- /**
181
- * Generates a delete execute callback.
182
- *
183
- * Delete operations don't need data transformation, so this simply generates
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.
186
- *
187
- * @param config - Configuration with model name
188
- * @returns Result containing the execute callback function fragment
189
- *
190
- * @example
191
- * generateDeleteExecuteCallback({ modelVariableName: 'todoItem' })
192
- * // Returns: async ({ tx, query }) => {
193
- * // const item = await tx.todoItem.delete({ where, ...query });
194
- * // return item;
195
- * // }
196
- */
197
- export function generateDeleteExecuteCallback(config) {
198
- const { prismaModel, modelVariableName } = config;
199
- const hasRelations = modelHasRelations(prismaModel);
200
- return {
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
- `,
219
- };
220
- }
221
- //# sourceMappingURL=generate-operation-callbacks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-operation-callbacks.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './generate-authorize-fragment.js';
2
- export * from './generate-operation-callbacks.js';
3
- export * from './generate-relation-build-data.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- export * from './generate-authorize-fragment.js';
2
- export * from './generate-operation-callbacks.js';
3
- export * from './generate-relation-build-data.js';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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"}