@baseplate-dev/fastify-generators 0.3.8 → 0.4.0

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 (431) hide show
  1. package/dist/constants/fastify-packages.d.ts +12 -11
  2. package/dist/constants/fastify-packages.d.ts.map +1 -1
  3. package/dist/constants/fastify-packages.js +12 -11
  4. package/dist/constants/fastify-packages.js.map +1 -1
  5. package/dist/generators/auth/auth-context/generated/ts-import-providers.d.ts +1 -2
  6. package/dist/generators/auth/auth-context/generated/ts-import-providers.d.ts.map +1 -1
  7. package/dist/generators/auth/auth-context/generated/ts-import-providers.js +1 -1
  8. package/dist/generators/auth/auth-context/generated/ts-import-providers.js.map +1 -1
  9. package/dist/generators/auth/auth-roles/generated/ts-import-providers.d.ts +1 -2
  10. package/dist/generators/auth/auth-roles/generated/ts-import-providers.d.ts.map +1 -1
  11. package/dist/generators/auth/auth-roles/generated/ts-import-providers.js +1 -1
  12. package/dist/generators/auth/auth-roles/generated/ts-import-providers.js.map +1 -1
  13. package/dist/generators/auth/index.d.ts +0 -1
  14. package/dist/generators/auth/index.d.ts.map +1 -1
  15. package/dist/generators/auth/index.js +0 -1
  16. package/dist/generators/auth/index.js.map +1 -1
  17. package/dist/generators/auth/password-hasher-service/generated/ts-import-providers.d.ts +1 -2
  18. package/dist/generators/auth/password-hasher-service/generated/ts-import-providers.d.ts.map +1 -1
  19. package/dist/generators/auth/password-hasher-service/generated/ts-import-providers.js +1 -1
  20. package/dist/generators/auth/password-hasher-service/generated/ts-import-providers.js.map +1 -1
  21. package/dist/generators/auth/user-session-types/generated/ts-import-providers.d.ts +1 -2
  22. package/dist/generators/auth/user-session-types/generated/ts-import-providers.d.ts.map +1 -1
  23. package/dist/generators/auth/user-session-types/generated/ts-import-providers.js +1 -1
  24. package/dist/generators/auth/user-session-types/generated/ts-import-providers.js.map +1 -1
  25. package/dist/generators/bull/bull-mq/generated/ts-import-providers.d.ts +1 -2
  26. package/dist/generators/bull/bull-mq/generated/ts-import-providers.d.ts.map +1 -1
  27. package/dist/generators/bull/bull-mq/generated/ts-import-providers.js +1 -1
  28. package/dist/generators/bull/bull-mq/generated/ts-import-providers.js.map +1 -1
  29. package/dist/generators/core/app-module-setup/generated/ts-import-providers.d.ts +1 -2
  30. package/dist/generators/core/app-module-setup/generated/ts-import-providers.d.ts.map +1 -1
  31. package/dist/generators/core/app-module-setup/generated/ts-import-providers.js +1 -1
  32. package/dist/generators/core/app-module-setup/generated/ts-import-providers.js.map +1 -1
  33. package/dist/generators/core/axios/generated/ts-import-providers.d.ts +1 -2
  34. package/dist/generators/core/axios/generated/ts-import-providers.d.ts.map +1 -1
  35. package/dist/generators/core/axios/generated/ts-import-providers.js +3 -1
  36. package/dist/generators/core/axios/generated/ts-import-providers.js.map +1 -1
  37. package/dist/generators/core/config-service/generated/ts-import-providers.d.ts +1 -2
  38. package/dist/generators/core/config-service/generated/ts-import-providers.d.ts.map +1 -1
  39. package/dist/generators/core/config-service/generated/ts-import-providers.js +3 -1
  40. package/dist/generators/core/config-service/generated/ts-import-providers.js.map +1 -1
  41. package/dist/generators/core/error-handler-service/generated/ts-import-providers.d.ts +1 -2
  42. package/dist/generators/core/error-handler-service/generated/ts-import-providers.d.ts.map +1 -1
  43. package/dist/generators/core/error-handler-service/generated/ts-import-providers.js +1 -1
  44. package/dist/generators/core/error-handler-service/generated/ts-import-providers.js.map +1 -1
  45. package/dist/generators/core/fastify/fastify.generator.js +1 -1
  46. package/dist/generators/core/fastify/fastify.generator.js.map +1 -1
  47. package/dist/generators/core/fastify-redis/generated/ts-import-providers.d.ts +1 -2
  48. package/dist/generators/core/fastify-redis/generated/ts-import-providers.d.ts.map +1 -1
  49. package/dist/generators/core/fastify-redis/generated/ts-import-providers.js +1 -1
  50. package/dist/generators/core/fastify-redis/generated/ts-import-providers.js.map +1 -1
  51. package/dist/generators/core/fastify-sentry/fastify-sentry.generator.js +1 -1
  52. package/dist/generators/core/fastify-sentry/generated/ts-import-providers.d.ts +1 -2
  53. package/dist/generators/core/fastify-sentry/generated/ts-import-providers.d.ts.map +1 -1
  54. package/dist/generators/core/fastify-sentry/generated/ts-import-providers.js +1 -1
  55. package/dist/generators/core/fastify-sentry/generated/ts-import-providers.js.map +1 -1
  56. package/dist/generators/core/logger-service/generated/ts-import-providers.d.ts +1 -2
  57. package/dist/generators/core/logger-service/generated/ts-import-providers.d.ts.map +1 -1
  58. package/dist/generators/core/logger-service/generated/ts-import-providers.js +3 -1
  59. package/dist/generators/core/logger-service/generated/ts-import-providers.js.map +1 -1
  60. package/dist/generators/core/readme/templates/package/README.md +4 -4
  61. package/dist/generators/core/request-context/generated/ts-import-providers.d.ts +1 -2
  62. package/dist/generators/core/request-context/generated/ts-import-providers.d.ts.map +1 -1
  63. package/dist/generators/core/request-context/generated/ts-import-providers.js +1 -1
  64. package/dist/generators/core/request-context/generated/ts-import-providers.js.map +1 -1
  65. package/dist/generators/core/request-service-context/generated/ts-import-providers.d.ts +1 -2
  66. package/dist/generators/core/request-service-context/generated/ts-import-providers.d.ts.map +1 -1
  67. package/dist/generators/core/request-service-context/generated/ts-import-providers.js +1 -1
  68. package/dist/generators/core/request-service-context/generated/ts-import-providers.js.map +1 -1
  69. package/dist/generators/core/service-context/generated/ts-import-providers.d.ts +1 -2
  70. package/dist/generators/core/service-context/generated/ts-import-providers.d.ts.map +1 -1
  71. package/dist/generators/core/service-context/generated/ts-import-providers.js +1 -1
  72. package/dist/generators/core/service-context/generated/ts-import-providers.js.map +1 -1
  73. package/dist/generators/core/service-file/service-file.generator.d.ts +7 -0
  74. package/dist/generators/core/service-file/service-file.generator.d.ts.map +1 -1
  75. package/dist/generators/core/service-file/service-file.generator.js +12 -2
  76. package/dist/generators/core/service-file/service-file.generator.js.map +1 -1
  77. package/dist/generators/pothos/pothos/generated/index.d.ts +3 -1
  78. package/dist/generators/pothos/pothos/generated/index.d.ts.map +1 -1
  79. package/dist/generators/pothos/pothos/generated/ts-import-providers.d.ts +1 -2
  80. package/dist/generators/pothos/pothos/generated/ts-import-providers.d.ts.map +1 -1
  81. package/dist/generators/pothos/pothos/generated/ts-import-providers.js +1 -1
  82. package/dist/generators/pothos/pothos/generated/ts-import-providers.js.map +1 -1
  83. package/dist/generators/pothos/pothos/generated/typed-templates.d.ts +6 -2
  84. package/dist/generators/pothos/pothos/generated/typed-templates.d.ts.map +1 -1
  85. package/dist/generators/pothos/pothos/generated/typed-templates.js +1 -0
  86. package/dist/generators/pothos/pothos/generated/typed-templates.js.map +1 -1
  87. package/dist/generators/pothos/pothos/pothos.generator.d.ts +3 -3
  88. package/dist/generators/pothos/pothos/pothos.generator.d.ts.map +1 -1
  89. package/dist/generators/pothos/pothos/pothos.generator.js +4 -0
  90. package/dist/generators/pothos/pothos/pothos.generator.js.map +1 -1
  91. package/dist/generators/pothos/pothos/templates/src/plugins/graphql/FieldWithInputPayloadPlugin/global-types.ts +3 -5
  92. package/dist/generators/pothos/pothos/templates/src/plugins/graphql/FieldWithInputPayloadPlugin/schema-builder.ts +9 -4
  93. package/dist/generators/pothos/pothos/templates/src/plugins/graphql/FieldWithInputPayloadPlugin/types.ts +6 -1
  94. package/dist/generators/pothos/pothos-auth/pothos-auth.generator.d.ts +1 -1
  95. package/dist/generators/pothos/pothos-enums-file/pothos-enums-file.generator.d.ts +1 -1
  96. package/dist/generators/pothos/pothos-prisma/generated/index.d.ts +36 -0
  97. package/dist/generators/pothos/pothos-prisma/generated/index.d.ts.map +1 -0
  98. package/dist/generators/pothos/pothos-prisma/generated/index.js +11 -0
  99. package/dist/generators/pothos/pothos-prisma/generated/index.js.map +1 -0
  100. package/dist/generators/pothos/pothos-prisma/generated/template-paths.d.ts +12 -0
  101. package/dist/generators/pothos/pothos-prisma/generated/template-paths.d.ts.map +1 -0
  102. package/dist/generators/pothos/pothos-prisma/generated/template-paths.js +22 -0
  103. package/dist/generators/pothos/pothos-prisma/generated/template-paths.js.map +1 -0
  104. package/dist/generators/pothos/pothos-prisma/generated/template-renderers.d.ts +18 -0
  105. package/dist/generators/pothos/pothos-prisma/generated/template-renderers.d.ts.map +1 -0
  106. package/dist/generators/pothos/pothos-prisma/generated/template-renderers.js +34 -0
  107. package/dist/generators/pothos/pothos-prisma/generated/template-renderers.js.map +1 -0
  108. package/dist/generators/pothos/pothos-prisma/generated/ts-import-providers.d.ts +30 -0
  109. package/dist/generators/pothos/pothos-prisma/generated/ts-import-providers.d.ts.map +1 -0
  110. package/dist/generators/pothos/pothos-prisma/generated/ts-import-providers.js +30 -0
  111. package/dist/generators/pothos/pothos-prisma/generated/ts-import-providers.js.map +1 -0
  112. package/dist/generators/pothos/pothos-prisma/generated/typed-templates.d.ts +4 -0
  113. package/dist/generators/pothos/pothos-prisma/generated/typed-templates.d.ts.map +1 -0
  114. package/dist/generators/pothos/pothos-prisma/generated/typed-templates.js +14 -0
  115. package/dist/generators/pothos/pothos-prisma/generated/typed-templates.js.map +1 -0
  116. package/dist/generators/pothos/pothos-prisma/index.d.ts +2 -0
  117. package/dist/generators/pothos/pothos-prisma/index.d.ts.map +1 -1
  118. package/dist/generators/pothos/pothos-prisma/index.js +1 -0
  119. package/dist/generators/pothos/pothos-prisma/index.js.map +1 -1
  120. package/dist/generators/pothos/pothos-prisma/pothos-prisma.generator.d.ts +34 -1
  121. package/dist/generators/pothos/pothos-prisma/pothos-prisma.generator.d.ts.map +1 -1
  122. package/dist/generators/pothos/pothos-prisma/pothos-prisma.generator.js +20 -6
  123. package/dist/generators/pothos/pothos-prisma/pothos-prisma.generator.js.map +1 -1
  124. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.d.ts +2 -2
  125. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.d.ts.map +1 -1
  126. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js +87 -50
  127. package/dist/generators/pothos/pothos-prisma-crud-mutation/pothos-prisma-crud-mutation.generator.js.map +1 -1
  128. package/dist/generators/pothos/pothos-scalar/generated/index.d.ts +9 -39
  129. package/dist/generators/pothos/pothos-scalar/generated/index.d.ts.map +1 -1
  130. package/dist/generators/pothos/pothos-scalar/generated/template-paths.d.ts +2 -0
  131. package/dist/generators/pothos/pothos-scalar/generated/template-paths.d.ts.map +1 -1
  132. package/dist/generators/pothos/pothos-scalar/generated/template-paths.js +2 -0
  133. package/dist/generators/pothos/pothos-scalar/generated/template-paths.js.map +1 -1
  134. package/dist/generators/pothos/pothos-scalar/generated/template-renderers.d.ts +6 -10
  135. package/dist/generators/pothos/pothos-scalar/generated/template-renderers.d.ts.map +1 -1
  136. package/dist/generators/pothos/pothos-scalar/generated/template-renderers.js +21 -6
  137. package/dist/generators/pothos/pothos-scalar/generated/template-renderers.js.map +1 -1
  138. package/dist/generators/pothos/pothos-scalar/generated/typed-templates.d.ts +9 -29
  139. package/dist/generators/pothos/pothos-scalar/generated/typed-templates.d.ts.map +1 -1
  140. package/dist/generators/pothos/pothos-scalar/generated/typed-templates.js +28 -14
  141. package/dist/generators/pothos/pothos-scalar/generated/typed-templates.js.map +1 -1
  142. package/dist/generators/pothos/pothos-scalar/pothos-scalar.generator.d.ts +2 -12
  143. package/dist/generators/pothos/pothos-scalar/pothos-scalar.generator.d.ts.map +1 -1
  144. package/dist/generators/pothos/pothos-scalar/pothos-scalar.generator.js +35 -11
  145. package/dist/generators/pothos/pothos-scalar/pothos-scalar.generator.js.map +1 -1
  146. package/dist/generators/pothos/pothos-scalar/templates/module/scalars/date-time.ts +21 -28
  147. package/dist/generators/pothos/pothos-scalar/templates/module/scalars/date.ts +13 -45
  148. package/dist/generators/pothos/pothos-scalar/templates/module/scalars/json-object.ts +28 -0
  149. package/dist/generators/pothos/pothos-scalar/templates/module/scalars/json.ts +23 -0
  150. package/dist/generators/pothos/pothos-scalar/templates/module/scalars/uuid.ts +13 -31
  151. package/dist/generators/pothos/pothos-sentry/pothos-sentry.generator.d.ts +1 -1
  152. package/dist/generators/prisma/_providers/index.d.ts +2 -0
  153. package/dist/generators/prisma/_providers/index.d.ts.map +1 -0
  154. package/dist/generators/prisma/_providers/index.js +2 -0
  155. package/dist/generators/prisma/_providers/index.js.map +1 -0
  156. package/dist/generators/prisma/_providers/prisma-generated-imports.d.ts +15 -0
  157. package/dist/generators/prisma/_providers/prisma-generated-imports.d.ts.map +1 -0
  158. package/dist/generators/prisma/_providers/prisma-generated-imports.js +10 -0
  159. package/dist/generators/prisma/_providers/prisma-generated-imports.js.map +1 -0
  160. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts +124 -0
  161. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.d.ts.map +1 -0
  162. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js +137 -0
  163. package/dist/generators/prisma/_shared/build-data-helpers/generate-operation-callbacks.js.map +1 -0
  164. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts +82 -0
  165. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.d.ts.map +1 -0
  166. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js +215 -0
  167. package/dist/generators/prisma/_shared/build-data-helpers/generate-relation-build-data.js.map +1 -0
  168. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts +3 -0
  169. package/dist/generators/prisma/_shared/build-data-helpers/index.d.ts.map +1 -0
  170. package/dist/generators/prisma/_shared/build-data-helpers/index.js +3 -0
  171. package/dist/generators/prisma/_shared/build-data-helpers/index.js.map +1 -0
  172. package/dist/generators/prisma/_shared/crud-method/primary-key-input.d.ts +0 -9
  173. package/dist/generators/prisma/_shared/crud-method/primary-key-input.d.ts.map +1 -1
  174. package/dist/generators/prisma/_shared/crud-method/primary-key-input.js +0 -32
  175. package/dist/generators/prisma/_shared/crud-method/primary-key-input.js.map +1 -1
  176. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts +26 -0
  177. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.d.ts.map +1 -0
  178. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js +47 -0
  179. package/dist/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.js.map +1 -0
  180. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts +8 -0
  181. package/dist/generators/prisma/_shared/field-definition-generators/types.d.ts.map +1 -0
  182. package/dist/generators/prisma/_shared/field-definition-generators/types.js +2 -0
  183. package/dist/generators/prisma/_shared/field-definition-generators/types.js.map +1 -0
  184. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts +109 -0
  185. package/dist/generators/prisma/data-utils/data-utils.generator.d.ts.map +1 -0
  186. package/dist/generators/prisma/data-utils/data-utils.generator.js +32 -0
  187. package/dist/generators/prisma/data-utils/data-utils.generator.js.map +1 -0
  188. package/dist/generators/prisma/data-utils/generated/index.d.ts +190 -0
  189. package/dist/generators/prisma/data-utils/generated/index.d.ts.map +1 -0
  190. package/dist/generators/prisma/data-utils/generated/index.js +11 -0
  191. package/dist/generators/prisma/data-utils/generated/index.js.map +1 -0
  192. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts +17 -0
  193. package/dist/generators/prisma/data-utils/generated/template-paths.d.ts.map +1 -0
  194. package/dist/generators/prisma/data-utils/generated/template-paths.js +27 -0
  195. package/dist/generators/prisma/data-utils/generated/template-paths.js.map +1 -0
  196. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts +45 -0
  197. package/dist/generators/prisma/data-utils/generated/template-renderers.d.ts.map +1 -0
  198. package/dist/generators/prisma/data-utils/generated/template-renderers.js +47 -0
  199. package/dist/generators/prisma/data-utils/generated/template-renderers.js.map +1 -0
  200. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts +183 -0
  201. package/dist/generators/prisma/data-utils/generated/ts-import-providers.d.ts.map +1 -0
  202. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js +72 -0
  203. package/dist/generators/prisma/data-utils/generated/ts-import-providers.js.map +1 -0
  204. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts +157 -0
  205. package/dist/generators/prisma/data-utils/generated/typed-templates.d.ts.map +1 -0
  206. package/dist/generators/prisma/data-utils/generated/typed-templates.js +125 -0
  207. package/dist/generators/prisma/data-utils/generated/typed-templates.js.map +1 -0
  208. package/dist/generators/prisma/data-utils/index.d.ts +4 -0
  209. package/dist/generators/prisma/data-utils/index.d.ts.map +1 -0
  210. package/dist/generators/prisma/data-utils/index.js +3 -0
  211. package/dist/generators/prisma/data-utils/index.js.map +1 -0
  212. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/define-operations.ts +1030 -0
  213. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/field-definitions.ts +782 -0
  214. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-types.ts +164 -0
  215. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/prisma-utils.ts +80 -0
  216. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/relation-helpers.ts +196 -0
  217. package/dist/generators/prisma/data-utils/templates/src/utils/data-operations/types.ts +372 -0
  218. package/dist/generators/prisma/index.d.ts +7 -6
  219. package/dist/generators/prisma/index.d.ts.map +1 -1
  220. package/dist/generators/prisma/index.js +7 -6
  221. package/dist/generators/prisma/index.js.map +1 -1
  222. package/dist/generators/prisma/prisma/generated/index.d.ts +19 -1
  223. package/dist/generators/prisma/prisma/generated/index.d.ts.map +1 -1
  224. package/dist/generators/prisma/prisma/generated/template-paths.d.ts +1 -0
  225. package/dist/generators/prisma/prisma/generated/template-paths.d.ts.map +1 -1
  226. package/dist/generators/prisma/prisma/generated/template-paths.js +1 -0
  227. package/dist/generators/prisma/prisma/generated/template-paths.js.map +1 -1
  228. package/dist/generators/prisma/prisma/generated/template-renderers.d.ts +7 -1
  229. package/dist/generators/prisma/prisma/generated/template-renderers.d.ts.map +1 -1
  230. package/dist/generators/prisma/prisma/generated/template-renderers.js +14 -1
  231. package/dist/generators/prisma/prisma/generated/template-renderers.js.map +1 -1
  232. package/dist/generators/prisma/prisma/generated/ts-import-providers.d.ts +7 -2
  233. package/dist/generators/prisma/prisma/generated/ts-import-providers.d.ts.map +1 -1
  234. package/dist/generators/prisma/prisma/generated/ts-import-providers.js +12 -2
  235. package/dist/generators/prisma/prisma/generated/ts-import-providers.js.map +1 -1
  236. package/dist/generators/prisma/prisma/generated/typed-templates.d.ts +13 -1
  237. package/dist/generators/prisma/prisma/generated/typed-templates.d.ts.map +1 -1
  238. package/dist/generators/prisma/prisma/generated/typed-templates.js +19 -2
  239. package/dist/generators/prisma/prisma/generated/typed-templates.js.map +1 -1
  240. package/dist/generators/prisma/prisma/prisma.generator.d.ts +21 -0
  241. package/dist/generators/prisma/prisma/prisma.generator.d.ts.map +1 -1
  242. package/dist/generators/prisma/prisma/prisma.generator.js +42 -8
  243. package/dist/generators/prisma/prisma/prisma.generator.js.map +1 -1
  244. package/dist/generators/prisma/prisma/templates/package/prisma.config.mts +7 -2
  245. package/dist/generators/prisma/prisma/templates/src/services/prisma.ts +5 -2
  246. package/dist/generators/prisma/prisma-data-create/index.d.ts +2 -0
  247. package/dist/generators/prisma/prisma-data-create/index.d.ts.map +1 -0
  248. package/dist/generators/prisma/prisma-data-create/index.js +2 -0
  249. package/dist/generators/prisma/prisma-data-create/index.js.map +1 -0
  250. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts +73 -0
  251. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.d.ts.map +1 -0
  252. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js +102 -0
  253. package/dist/generators/prisma/prisma-data-create/prisma-data-create.generator.js.map +1 -0
  254. package/dist/generators/prisma/prisma-data-delete/index.d.ts +2 -0
  255. package/dist/generators/prisma/prisma-data-delete/index.d.ts.map +1 -0
  256. package/dist/generators/prisma/prisma-data-delete/index.js +2 -0
  257. package/dist/generators/prisma/prisma-data-delete/index.js.map +1 -0
  258. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts +72 -0
  259. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.d.ts.map +1 -0
  260. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js +82 -0
  261. package/dist/generators/prisma/prisma-data-delete/prisma-data-delete.generator.js.map +1 -0
  262. package/dist/generators/prisma/prisma-data-nested-field/index.d.ts +2 -0
  263. package/dist/generators/prisma/prisma-data-nested-field/index.d.ts.map +1 -0
  264. package/dist/generators/prisma/prisma-data-nested-field/index.js +2 -0
  265. package/dist/generators/prisma/prisma-data-nested-field/index.js.map +1 -0
  266. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts +16 -0
  267. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.d.ts.map +1 -0
  268. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js +179 -0
  269. package/dist/generators/prisma/prisma-data-nested-field/nested-field-writer.js.map +1 -0
  270. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts +95 -0
  271. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.d.ts.map +1 -0
  272. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js +120 -0
  273. package/dist/generators/prisma/prisma-data-nested-field/prisma-data-nested-field.generator.js.map +1 -0
  274. package/dist/generators/prisma/prisma-data-service/index.d.ts +2 -0
  275. package/dist/generators/prisma/prisma-data-service/index.d.ts.map +1 -0
  276. package/dist/generators/prisma/prisma-data-service/index.js +2 -0
  277. package/dist/generators/prisma/prisma-data-service/index.js.map +1 -0
  278. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts +117 -0
  279. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.d.ts.map +1 -0
  280. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js +127 -0
  281. package/dist/generators/prisma/prisma-data-service/prisma-data-service.generator.js.map +1 -0
  282. package/dist/generators/prisma/prisma-data-update/index.d.ts +2 -0
  283. package/dist/generators/prisma/prisma-data-update/index.d.ts.map +1 -0
  284. package/dist/generators/prisma/prisma-data-update/index.js +2 -0
  285. package/dist/generators/prisma/prisma-data-update/index.js.map +1 -0
  286. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts +73 -0
  287. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.d.ts.map +1 -0
  288. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js +114 -0
  289. package/dist/generators/prisma/prisma-data-update/prisma-data-update.generator.js.map +1 -0
  290. package/dist/generators/prisma/prisma-field/prisma-field.generator.d.ts +6 -6
  291. package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.d.ts +1 -2
  292. package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.d.ts.map +1 -1
  293. package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.js +1 -1
  294. package/dist/generators/stripe/fastify-stripe/generated/ts-import-providers.js.map +1 -1
  295. package/dist/generators/vitest/prisma-vitest/generated/index.d.ts +20 -1
  296. package/dist/generators/vitest/prisma-vitest/generated/index.d.ts.map +1 -1
  297. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.d.ts +6 -0
  298. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.d.ts.map +1 -1
  299. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js +7 -1
  300. package/dist/generators/vitest/prisma-vitest/generated/template-renderers.js.map +1 -1
  301. package/dist/generators/vitest/prisma-vitest/generated/ts-import-providers.d.ts +1 -2
  302. package/dist/generators/vitest/prisma-vitest/generated/ts-import-providers.d.ts.map +1 -1
  303. package/dist/generators/vitest/prisma-vitest/generated/ts-import-providers.js +1 -1
  304. package/dist/generators/vitest/prisma-vitest/generated/ts-import-providers.js.map +1 -1
  305. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts +14 -1
  306. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.d.ts.map +1 -1
  307. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js +8 -2
  308. package/dist/generators/vitest/prisma-vitest/generated/typed-templates.js.map +1 -1
  309. package/dist/generators/vitest/prisma-vitest/prisma-vitest.generator.d.ts +16 -0
  310. package/dist/generators/vitest/prisma-vitest/prisma-vitest.generator.d.ts.map +1 -1
  311. package/dist/generators/vitest/prisma-vitest/prisma-vitest.generator.js +5 -10
  312. package/dist/generators/vitest/prisma-vitest/prisma-vitest.generator.js.map +1 -1
  313. package/dist/generators/vitest/prisma-vitest/templates/src/tests/helpers/db.test-helper.ts +3 -2
  314. package/dist/generators/vitest/prisma-vitest/templates/src/tests/helpers/prisma.test-helper.ts +1 -1
  315. package/dist/types/field-types.d.ts +1 -1
  316. package/dist/types/field-types.d.ts.map +1 -1
  317. package/dist/types/field-types.js +2 -0
  318. package/dist/types/field-types.js.map +1 -1
  319. package/dist/types/service-dto-kinds.d.ts +59 -0
  320. package/dist/types/service-dto-kinds.d.ts.map +1 -0
  321. package/dist/types/service-dto-kinds.js +53 -0
  322. package/dist/types/service-dto-kinds.js.map +1 -0
  323. package/dist/types/service-output.d.ts +25 -2
  324. package/dist/types/service-output.d.ts.map +1 -1
  325. package/dist/types/service-output.js +22 -2
  326. package/dist/types/service-output.js.map +1 -1
  327. package/dist/writers/pothos/input-types.d.ts +1 -1
  328. package/dist/writers/pothos/input-types.d.ts.map +1 -1
  329. package/dist/writers/pothos/input-types.js +7 -10
  330. package/dist/writers/pothos/input-types.js.map +1 -1
  331. package/dist/writers/pothos/resolvers.d.ts.map +1 -1
  332. package/dist/writers/pothos/resolvers.js +9 -6
  333. package/dist/writers/pothos/resolvers.js.map +1 -1
  334. package/dist/writers/pothos/scalars.d.ts.map +1 -1
  335. package/dist/writers/pothos/scalars.js +5 -0
  336. package/dist/writers/pothos/scalars.js.map +1 -1
  337. package/dist/writers/prisma-schema/fields.d.ts +3 -0
  338. package/dist/writers/prisma-schema/fields.d.ts.map +1 -1
  339. package/dist/writers/prisma-schema/fields.js +1 -0
  340. package/dist/writers/prisma-schema/fields.js.map +1 -1
  341. package/package.json +8 -6
  342. package/dist/generators/auth/prisma-password-transformer/index.d.ts +0 -2
  343. package/dist/generators/auth/prisma-password-transformer/index.d.ts.map +0 -1
  344. package/dist/generators/auth/prisma-password-transformer/index.js +0 -2
  345. package/dist/generators/auth/prisma-password-transformer/index.js.map +0 -1
  346. package/dist/generators/auth/prisma-password-transformer/prisma-password-transformer.generator.d.ts +0 -12
  347. package/dist/generators/auth/prisma-password-transformer/prisma-password-transformer.generator.d.ts.map +0 -1
  348. package/dist/generators/auth/prisma-password-transformer/prisma-password-transformer.generator.js +0 -48
  349. package/dist/generators/auth/prisma-password-transformer/prisma-password-transformer.generator.js.map +0 -1
  350. package/dist/generators/prisma/_shared/crud-method/data-method.d.ts +0 -31
  351. package/dist/generators/prisma/_shared/crud-method/data-method.d.ts.map +0 -1
  352. package/dist/generators/prisma/_shared/crud-method/data-method.js +0 -195
  353. package/dist/generators/prisma/_shared/crud-method/data-method.js.map +0 -1
  354. package/dist/generators/prisma/embedded-relation-transformer/embedded-relation-transformer.generator.d.ts +0 -50
  355. package/dist/generators/prisma/embedded-relation-transformer/embedded-relation-transformer.generator.d.ts.map +0 -1
  356. package/dist/generators/prisma/embedded-relation-transformer/embedded-relation-transformer.generator.js +0 -371
  357. package/dist/generators/prisma/embedded-relation-transformer/embedded-relation-transformer.generator.js.map +0 -1
  358. package/dist/generators/prisma/embedded-relation-transformer/index.d.ts +0 -2
  359. package/dist/generators/prisma/embedded-relation-transformer/index.d.ts.map +0 -1
  360. package/dist/generators/prisma/embedded-relation-transformer/index.js +0 -2
  361. package/dist/generators/prisma/embedded-relation-transformer/index.js.map +0 -1
  362. package/dist/generators/prisma/prisma-crud-create/index.d.ts +0 -2
  363. package/dist/generators/prisma/prisma-crud-create/index.d.ts.map +0 -1
  364. package/dist/generators/prisma/prisma-crud-create/index.js +0 -2
  365. package/dist/generators/prisma/prisma-crud-create/index.js.map +0 -1
  366. package/dist/generators/prisma/prisma-crud-create/prisma-crud-create.generator.d.ts +0 -48
  367. package/dist/generators/prisma/prisma-crud-create/prisma-crud-create.generator.d.ts.map +0 -1
  368. package/dist/generators/prisma/prisma-crud-create/prisma-crud-create.generator.js +0 -130
  369. package/dist/generators/prisma/prisma-crud-create/prisma-crud-create.generator.js.map +0 -1
  370. package/dist/generators/prisma/prisma-crud-delete/index.d.ts +0 -2
  371. package/dist/generators/prisma/prisma-crud-delete/index.d.ts.map +0 -1
  372. package/dist/generators/prisma/prisma-crud-delete/index.js +0 -2
  373. package/dist/generators/prisma/prisma-crud-delete/index.js.map +0 -1
  374. package/dist/generators/prisma/prisma-crud-delete/prisma-crud-delete.generator.d.ts +0 -38
  375. package/dist/generators/prisma/prisma-crud-delete/prisma-crud-delete.generator.d.ts.map +0 -1
  376. package/dist/generators/prisma/prisma-crud-delete/prisma-crud-delete.generator.js +0 -94
  377. package/dist/generators/prisma/prisma-crud-delete/prisma-crud-delete.generator.js.map +0 -1
  378. package/dist/generators/prisma/prisma-crud-service/index.d.ts +0 -2
  379. package/dist/generators/prisma/prisma-crud-service/index.d.ts.map +0 -1
  380. package/dist/generators/prisma/prisma-crud-service/index.js +0 -2
  381. package/dist/generators/prisma/prisma-crud-service/index.js.map +0 -1
  382. package/dist/generators/prisma/prisma-crud-service/prisma-crud-service.generator.d.ts +0 -20
  383. package/dist/generators/prisma/prisma-crud-service/prisma-crud-service.generator.d.ts.map +0 -1
  384. package/dist/generators/prisma/prisma-crud-service/prisma-crud-service.generator.js +0 -53
  385. package/dist/generators/prisma/prisma-crud-service/prisma-crud-service.generator.js.map +0 -1
  386. package/dist/generators/prisma/prisma-crud-update/index.d.ts +0 -2
  387. package/dist/generators/prisma/prisma-crud-update/index.d.ts.map +0 -1
  388. package/dist/generators/prisma/prisma-crud-update/index.js +0 -2
  389. package/dist/generators/prisma/prisma-crud-update/index.js.map +0 -1
  390. package/dist/generators/prisma/prisma-crud-update/prisma-crud-update.generator.d.ts +0 -48
  391. package/dist/generators/prisma/prisma-crud-update/prisma-crud-update.generator.d.ts.map +0 -1
  392. package/dist/generators/prisma/prisma-crud-update/prisma-crud-update.generator.js +0 -145
  393. package/dist/generators/prisma/prisma-crud-update/prisma-crud-update.generator.js.map +0 -1
  394. package/dist/generators/prisma/prisma-utils/generated/index.d.ts +0 -134
  395. package/dist/generators/prisma/prisma-utils/generated/index.d.ts.map +0 -1
  396. package/dist/generators/prisma/prisma-utils/generated/index.js +0 -11
  397. package/dist/generators/prisma/prisma-utils/generated/index.js.map +0 -1
  398. package/dist/generators/prisma/prisma-utils/generated/template-paths.d.ts +0 -17
  399. package/dist/generators/prisma/prisma-utils/generated/template-paths.d.ts.map +0 -1
  400. package/dist/generators/prisma/prisma-utils/generated/template-paths.js +0 -27
  401. package/dist/generators/prisma/prisma-utils/generated/template-paths.js.map +0 -1
  402. package/dist/generators/prisma/prisma-utils/generated/template-renderers.d.ts +0 -37
  403. package/dist/generators/prisma/prisma-utils/generated/template-renderers.d.ts.map +0 -1
  404. package/dist/generators/prisma/prisma-utils/generated/template-renderers.js +0 -43
  405. package/dist/generators/prisma/prisma-utils/generated/template-renderers.js.map +0 -1
  406. package/dist/generators/prisma/prisma-utils/generated/ts-import-providers.d.ts +0 -88
  407. package/dist/generators/prisma/prisma-utils/generated/ts-import-providers.d.ts.map +0 -1
  408. package/dist/generators/prisma/prisma-utils/generated/ts-import-providers.js +0 -54
  409. package/dist/generators/prisma/prisma-utils/generated/ts-import-providers.js.map +0 -1
  410. package/dist/generators/prisma/prisma-utils/generated/typed-templates.d.ts +0 -125
  411. package/dist/generators/prisma/prisma-utils/generated/typed-templates.d.ts.map +0 -1
  412. package/dist/generators/prisma/prisma-utils/generated/typed-templates.js +0 -104
  413. package/dist/generators/prisma/prisma-utils/generated/typed-templates.js.map +0 -1
  414. package/dist/generators/prisma/prisma-utils/index.d.ts +0 -4
  415. package/dist/generators/prisma/prisma-utils/index.d.ts.map +0 -1
  416. package/dist/generators/prisma/prisma-utils/index.js +0 -3
  417. package/dist/generators/prisma/prisma-utils/index.js.map +0 -1
  418. package/dist/generators/prisma/prisma-utils/prisma-utils.generator.d.ts +0 -61
  419. package/dist/generators/prisma/prisma-utils/prisma-utils.generator.d.ts.map +0 -1
  420. package/dist/generators/prisma/prisma-utils/prisma-utils.generator.js +0 -43
  421. package/dist/generators/prisma/prisma-utils/prisma-utils.generator.js.map +0 -1
  422. package/dist/generators/prisma/prisma-utils/templates/src/utils/crud-service-types.ts +0 -35
  423. package/dist/generators/prisma/prisma-utils/templates/src/utils/data-pipes.ts +0 -86
  424. package/dist/generators/prisma/prisma-utils/templates/src/utils/embedded-pipes/embedded-one-to-many.ts +0 -245
  425. package/dist/generators/prisma/prisma-utils/templates/src/utils/embedded-pipes/embedded-one-to-one.ts +0 -147
  426. package/dist/generators/prisma/prisma-utils/templates/src/utils/embedded-pipes/embedded-types.ts +0 -6
  427. package/dist/generators/prisma/prisma-utils/templates/src/utils/prisma-relations.ts +0 -24
  428. package/dist/providers/prisma/prisma-data-transformable.d.ts +0 -27
  429. package/dist/providers/prisma/prisma-data-transformable.d.ts.map +0 -1
  430. package/dist/providers/prisma/prisma-data-transformable.js +0 -2
  431. package/dist/providers/prisma/prisma-data-transformable.js.map +0 -1
@@ -0,0 +1,137 @@
1
+ import { tsTemplate } from '@baseplate-dev/core-generators';
2
+ import { generateRelationBuildData } from './generate-relation-build-data.js';
3
+ /**
4
+ * Generates a create operation callback that transforms foreign key fields into Prisma relation objects
5
+ *
6
+ * @param config - Configuration including Prisma model, input fields, and model name
7
+ * @returns Result containing the create callback function fragment
8
+ *
9
+ * @example
10
+ * // No relations
11
+ * generateCreateCallback({...})
12
+ * // Returns: ({ tx, data, query }) => tx.user.create({ data, ...query })
13
+ *
14
+ * @example
15
+ * // With relations
16
+ * generateCreateCallback({...})
17
+ * // Returns: ({ tx, data, query }) =>
18
+ * // tx.todoItem.create({
19
+ * // data: {
20
+ * // ...data,
21
+ * // assignee: relationHelpers.connectCreate({ id: data.assigneeId }),
22
+ * // todoList: relationHelpers.connectCreate({ id: data.todoListId }),
23
+ * // },
24
+ * // ...query,
25
+ * // })
26
+ */
27
+ export function generateCreateCallback(config) {
28
+ const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
29
+ const { argumentFragment, returnFragment, passthrough } = generateRelationBuildData({
30
+ prismaModel,
31
+ inputFieldNames,
32
+ operationType: 'create',
33
+ dataUtilsImports,
34
+ });
35
+ if (passthrough) {
36
+ return {
37
+ createCallbackFragment: tsTemplate `
38
+ ({ tx, data, query }) =>
39
+ tx.${modelVariableName}.create({
40
+ data,
41
+ ...query,
42
+ })
43
+ `,
44
+ };
45
+ }
46
+ return {
47
+ createCallbackFragment: tsTemplate `
48
+ ({ tx, data: ${argumentFragment}, query }) =>
49
+ tx.${modelVariableName}.create({
50
+ data: ${returnFragment},
51
+ ...query,
52
+ })
53
+ `,
54
+ };
55
+ }
56
+ /**
57
+ * Generates an update operation callback that transforms foreign key fields into Prisma relation objects
58
+ *
59
+ * @param config - Configuration including Prisma model, input fields, and model name
60
+ * @returns Result containing the update callback function fragment
61
+ *
62
+ * @example
63
+ * // No relations
64
+ * generateUpdateCallback({...})
65
+ * // Returns: ({ tx, where, data, query }) => tx.user.update({ where, data, ...query })
66
+ *
67
+ * @example
68
+ * // With relations
69
+ * generateUpdateCallback({...})
70
+ * // Returns: ({ tx, where, data, query }) =>
71
+ * // tx.todoItem.update({
72
+ * // where,
73
+ * // data: {
74
+ * // ...data,
75
+ * // assignee: relationHelpers.connectUpdate({ id: data.assigneeId }),
76
+ * // todoList: relationHelpers.connectUpdate({ id: data.todoListId }),
77
+ * // },
78
+ * // ...query,
79
+ * // })
80
+ */
81
+ export function generateUpdateCallback(config) {
82
+ const { prismaModel, inputFieldNames, dataUtilsImports, modelVariableName } = config;
83
+ const { argumentFragment, returnFragment, passthrough } = generateRelationBuildData({
84
+ prismaModel,
85
+ inputFieldNames,
86
+ operationType: 'update',
87
+ dataUtilsImports,
88
+ });
89
+ if (passthrough) {
90
+ return {
91
+ updateCallbackFragment: tsTemplate `
92
+ ({ tx, where, data, query }) =>
93
+ tx.${modelVariableName}.update({
94
+ where,
95
+ data,
96
+ ...query,
97
+ })
98
+ `,
99
+ };
100
+ }
101
+ return {
102
+ updateCallbackFragment: tsTemplate `
103
+ ({ tx, where, data: ${argumentFragment}, query }) =>
104
+ tx.${modelVariableName}.update({
105
+ where,
106
+ data: ${returnFragment},
107
+ ...query,
108
+ })
109
+ `,
110
+ };
111
+ }
112
+ /**
113
+ * Generates a delete operation callback
114
+ *
115
+ * Delete operations don't need data transformation, so this simply generates
116
+ * a callback that passes through the where clause and query parameters.
117
+ *
118
+ * @param config - Configuration with model name
119
+ * @returns Result containing the delete callback function fragment
120
+ *
121
+ * @example
122
+ * generateDeleteCallback({ modelVariableName: 'todoItem' })
123
+ * // Returns: ({ tx, where, query }) => tx.todoItem.delete({ where, ...query })
124
+ */
125
+ export function generateDeleteCallback(config) {
126
+ const { modelVariableName } = config;
127
+ return {
128
+ deleteCallbackFragment: tsTemplate `
129
+ ({ tx, where, query }) =>
130
+ tx.${modelVariableName}.delete({
131
+ where,
132
+ ...query,
133
+ })
134
+ `,
135
+ };
136
+ }
137
+ //# sourceMappingURL=generate-operation-callbacks.js.map
@@ -0,0 +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;AAwB9E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoC;IAEpC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GACzE,MAAM,CAAC;IAET,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,GACrD,yBAAyB,CAAC;QACxB,WAAW;QACX,eAAe;QACf,aAAa,EAAE,QAAQ;QACvB,gBAAgB;KACjB,CAAC,CAAC;IAEL,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,sBAAsB,EAAE,UAAU,CAAA;;eAEzB,iBAAiB;;;;OAIzB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,sBAAsB,EAAE,UAAU,CAAA;qBACjB,gBAAgB;aACxB,iBAAiB;kBACZ,cAAc;;;KAG3B;KACF,CAAC;AACJ,CAAC;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoC;IAEpC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GACzE,MAAM,CAAC;IAET,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,GACrD,yBAAyB,CAAC;QACxB,WAAW;QACX,eAAe;QACf,aAAa,EAAE,QAAQ;QACvB,gBAAgB;KACjB,CAAC,CAAC;IAEL,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,sBAAsB,EAAE,UAAU,CAAA;;eAEzB,iBAAiB;;;;;OAKzB;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,sBAAsB,EAAE,UAAU,CAAA;4BACV,gBAAgB;aAC/B,iBAAiB;;kBAEZ,cAAc;;;KAG3B;KACF,CAAC;AACJ,CAAC;AAkBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoC;IAEpC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAErC,OAAO;QACL,sBAAsB,EAAE,UAAU,CAAA;;aAEzB,iBAAiB;;;;KAIzB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,82 @@
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 relation buildData function
6
+ */
7
+ interface GenerateRelationBuildDataConfig {
8
+ /** Prisma model to analyze for relations */
9
+ prismaModel: PrismaOutputModel;
10
+ /** Field names that are included in the input (to determine which relations to include) */
11
+ inputFieldNames: string[];
12
+ /** Operation type - determines whether to use connectCreate or connectUpdate */
13
+ operationType: 'create' | 'update' | 'upsert';
14
+ /** Data utils imports provider for accessing relationHelpers fragments */
15
+ dataUtilsImports: DataUtilsImportsProvider;
16
+ }
17
+ /**
18
+ * Result of generating relation buildData function
19
+ */
20
+ interface GenerateRelationBuildDataResult {
21
+ /** Argument pattern for the function (e.g., "{ ownerId, ...data }" or "data") */
22
+ argumentFragment: TsCodeFragment;
23
+ /** Return value with relation transformations (e.g., "{ ...data, owner: relationHelpers.connectCreate(...) }") */
24
+ returnFragment: TsCodeFragment;
25
+ /** Whether this is a simple passthrough (no relations to transform) */
26
+ passthrough: boolean;
27
+ /** Complete buildData function fragment: ({ fk1, fk2, ...data }) => ({ ...data, relation1: ..., relation2: ... }) */
28
+ buildDataFunctionFragment: TsCodeFragment;
29
+ }
30
+ /**
31
+ * Generates buildData function that transforms foreign key fields into Prisma relation objects
32
+ *
33
+ * This helper analyzes a Prisma model to find relations whose foreign key fields are included
34
+ * in the input, then generates a buildData function that destructures those FK fields and
35
+ * uses relationHelpers to build the appropriate Prisma connect/disconnect objects.
36
+ *
37
+ * @param config - Configuration including Prisma model, input fields, and operation type
38
+ * @returns Result containing FK fields, relation mappings, and the buildData function fragment
39
+ *
40
+ * @example
41
+ * // Single relation
42
+ * generateRelationBuildData({
43
+ * prismaModel: { fields: [...] },
44
+ * inputFieldNames: ['name', 'ownerId'],
45
+ * operationType: 'create',
46
+ * dataUtilsImports,
47
+ * })
48
+ * // Returns: buildData: ({ ownerId, ...data }) => ({ ...data, owner: relationHelpers.connectCreate({ id: ownerId }) })
49
+ *
50
+ * @example
51
+ * // Multiple relations
52
+ * generateRelationBuildData({
53
+ * prismaModel: { fields: [...] },
54
+ * inputFieldNames: ['text', 'todoListId', 'assigneeId'],
55
+ * operationType: 'create',
56
+ * dataUtilsImports,
57
+ * })
58
+ * // Returns: buildData: ({ todoListId, assigneeId, ...data }) => ({ ...data, todoList: ..., assignee: ... })
59
+ *
60
+ * @example
61
+ * // Composite key relation
62
+ * generateRelationBuildData({
63
+ * prismaModel: { fields: [...] },
64
+ * inputFieldNames: ['name', 'userId', 'tenantId'],
65
+ * operationType: 'create',
66
+ * dataUtilsImports,
67
+ * })
68
+ * // Returns: buildData: ({ userId, tenantId, ...data }) => ({ ...data, owner: relationHelpers.connectCreate({ id: userId, tenantId }) })
69
+ *
70
+ * @example
71
+ * // No relations (pass-through)
72
+ * generateRelationBuildData({
73
+ * prismaModel: { fields: [...] },
74
+ * inputFieldNames: ['name', 'description'],
75
+ * operationType: 'create',
76
+ * dataUtilsImports,
77
+ * })
78
+ * // Returns: buildData: (data) => data
79
+ */
80
+ export declare function generateRelationBuildData(config: GenerateRelationBuildDataConfig): GenerateRelationBuildDataResult;
81
+ export {};
82
+ //# sourceMappingURL=generate-relation-build-data.d.ts.map
@@ -0,0 +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,gFAAgF;IAChF,aAAa,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,0EAA0E;IAC1E,gBAAgB,EAAE,wBAAwB,CAAC;CAC5C;AAED;;GAEG;AACH,UAAU,+BAA+B;IACvC,iFAAiF;IACjF,gBAAgB,EAAE,cAAc,CAAC;IACjC,kHAAkH;IAClH,cAAc,EAAE,cAAc,CAAC;IAC/B,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,qHAAqH;IACrH,yBAAyB,EAAE,cAAc,CAAC;CAC3C;AAiMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,+BAA+B,GACtC,+BAA+B,CAgEjC"}
@@ -0,0 +1,215 @@
1
+ import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
2
+ /**
3
+ * Generates a TypeScript code fragment for a unique where object
4
+ *
5
+ * @param foreignKeyFields - Array of foreign key field names (e.g., ['ownerId'] or ['userId', 'tenantId'])
6
+ * @param referencedFields - Array of referenced field names in target model (e.g., ['id'] or ['id', 'tenantId'])
7
+ * @returns TypeScript code fragment for the where object
8
+ *
9
+ * @example
10
+ * // Single field
11
+ * generateUniqueWhereFragment(['ownerId'], ['id']) => { id: ownerId }
12
+ *
13
+ * @example
14
+ * // Composite key
15
+ * generateUniqueWhereFragment(['userId', 'tenantId'], ['id', 'tenantId']) => { id: userId, tenantId }
16
+ */
17
+ function generateUniqueWhereFragment(foreignKeyFields, referencedFields) {
18
+ if (foreignKeyFields.length !== referencedFields.length) {
19
+ throw new Error(`Foreign key fields and referenced fields must have the same length. Got ${foreignKeyFields.length} and ${referencedFields.length}`);
20
+ }
21
+ return TsCodeUtils.mergeFragmentsAsObject(Object.fromEntries(foreignKeyFields.map((fkField, index) => [
22
+ referencedFields[index],
23
+ fkField,
24
+ ])));
25
+ }
26
+ /**
27
+ * Finds all relations in the Prisma model that should be included based on input fields
28
+ */
29
+ function findRelevantRelations(prismaModel, inputFieldNames) {
30
+ const relevantRelations = prismaModel.fields.filter((field) => field.type === 'relation' &&
31
+ !!field.fields &&
32
+ // Include relation if at least one of its foreign key fields is in the input
33
+ field.fields.some((fkField) => inputFieldNames.includes(fkField)));
34
+ for (const relation of relevantRelations) {
35
+ const missingFields = relation.fields?.filter((fkField) => !inputFieldNames.includes(fkField));
36
+ if (missingFields?.length) {
37
+ throw new Error(`Relation ${relation.name} requires all fields as inputs (missing ${missingFields.join(', ')})`);
38
+ }
39
+ }
40
+ return relevantRelations;
41
+ }
42
+ /**
43
+ * Extracts all unique foreign key field names from relations
44
+ */
45
+ function extractForeignKeyFields(relations) {
46
+ const allFkFields = relations.flatMap((rel) => rel.fields ?? []);
47
+ // Remove duplicates (though this should rarely happen)
48
+ return [...new Set(allFkFields)];
49
+ }
50
+ /**
51
+ * Generates a relation helper call fragment for a single relation
52
+ *
53
+ * @param relation - Prisma relation field metadata
54
+ * @param operationType - Whether this is a create or update operation
55
+ * @param relationHelpersFragment - Code fragment for accessing relationHelpers
56
+ * @returns TypeScript code fragment for the relation helper call
57
+ *
58
+ * @example
59
+ * // Single field, create operation
60
+ * generateRelationHelperCall(...) => relationHelpers.connectCreate({ id: ownerId })
61
+ *
62
+ * @example
63
+ * // Composite key, update operation
64
+ * generateRelationHelperCall(...) => relationHelpers.connectUpdate({ id: userId, tenantId })
65
+ */
66
+ function generateRelationHelperCall(relation, operationType, relationHelpersFragment) {
67
+ const helperMethod = operationType === 'create' ? 'connectCreate' : 'connectUpdate';
68
+ const uniqueWhere = generateUniqueWhereFragment(relation.fields ?? [], relation.references ?? []);
69
+ return tsTemplate `${relationHelpersFragment}.${helperMethod}(${uniqueWhere})`;
70
+ }
71
+ /**
72
+ * Generates the complete buildData function fragment
73
+ *
74
+ * @example
75
+ * // With foreign keys
76
+ * generateBuildDataFunction(['ownerId'], [...]) => ({ ownerId, ...data }) => ({ ...data, owner: ... })
77
+ *
78
+ * @example
79
+ * // No foreign keys (pass-through)
80
+ * generateBuildDataFunction([], []) => (data) => data
81
+ *
82
+ * @example
83
+ * // All fields are foreign keys (no spread)
84
+ * generateBuildDataFunction(['ownerId', 'assigneeId'], [...], ['ownerId', 'assigneeId']) =>
85
+ * ({ ownerId, assigneeId }) => ({ owner: ..., assignee: ... })
86
+ */
87
+ function generateBuildDataBody(foreignKeyFields, operationType, dataUtilsImports, relevantRelations, allInputFieldNames, dataName = 'data') {
88
+ if (relevantRelations.length === 0) {
89
+ return {
90
+ argumentFragment: tsTemplate `${dataName}`,
91
+ returnFragment: tsTemplate `${dataName}`,
92
+ passthrough: true,
93
+ };
94
+ }
95
+ const relationHelpersFragment = dataUtilsImports.relationHelpers.fragment();
96
+ const relationFragments = relevantRelations.map((relation) => ({
97
+ relationName: relation.name,
98
+ fragment: generateRelationHelperCall(relation, operationType, relationHelpersFragment),
99
+ }));
100
+ const sortedForeignKeyFields = foreignKeyFields.toSorted();
101
+ // Determine if we need to spread remaining data
102
+ const allFieldsAreForeignKeys = allInputFieldNames?.every((field) => foreignKeyFields.includes(field));
103
+ // Build function parameter: ({ fk1, fk2, ...data }) or ({ fk1, fk2 })
104
+ const paramPattern = allFieldsAreForeignKeys
105
+ ? `{ ${sortedForeignKeyFields.join(', ')} }`
106
+ : `{ ${sortedForeignKeyFields.join(', ')}, ...${dataName} }`;
107
+ // Build return object using mergeFragmentsAsObject
108
+ const returnObjectFragments = {};
109
+ // Add spread for remaining data if not all fields are foreign keys
110
+ if (!allFieldsAreForeignKeys) {
111
+ returnObjectFragments[`...${dataName}`] = tsTemplate `${dataName}`;
112
+ }
113
+ // Add relation fragments
114
+ const sortedRelationFragments = relationFragments.toSorted();
115
+ for (const { relationName, fragment } of sortedRelationFragments) {
116
+ returnObjectFragments[relationName] = fragment;
117
+ }
118
+ // Disable sorting when we have a spread key
119
+ const returnObject = TsCodeUtils.mergeFragmentsAsObject(returnObjectFragments, { disableSort: !allFieldsAreForeignKeys });
120
+ return {
121
+ argumentFragment: tsTemplate `${paramPattern}`,
122
+ returnFragment: returnObject,
123
+ passthrough: false,
124
+ };
125
+ }
126
+ /**
127
+ * Generates buildData function that transforms foreign key fields into Prisma relation objects
128
+ *
129
+ * This helper analyzes a Prisma model to find relations whose foreign key fields are included
130
+ * in the input, then generates a buildData function that destructures those FK fields and
131
+ * uses relationHelpers to build the appropriate Prisma connect/disconnect objects.
132
+ *
133
+ * @param config - Configuration including Prisma model, input fields, and operation type
134
+ * @returns Result containing FK fields, relation mappings, and the buildData function fragment
135
+ *
136
+ * @example
137
+ * // Single relation
138
+ * generateRelationBuildData({
139
+ * prismaModel: { fields: [...] },
140
+ * inputFieldNames: ['name', 'ownerId'],
141
+ * operationType: 'create',
142
+ * dataUtilsImports,
143
+ * })
144
+ * // Returns: buildData: ({ ownerId, ...data }) => ({ ...data, owner: relationHelpers.connectCreate({ id: ownerId }) })
145
+ *
146
+ * @example
147
+ * // Multiple relations
148
+ * generateRelationBuildData({
149
+ * prismaModel: { fields: [...] },
150
+ * inputFieldNames: ['text', 'todoListId', 'assigneeId'],
151
+ * operationType: 'create',
152
+ * dataUtilsImports,
153
+ * })
154
+ * // Returns: buildData: ({ todoListId, assigneeId, ...data }) => ({ ...data, todoList: ..., assignee: ... })
155
+ *
156
+ * @example
157
+ * // Composite key relation
158
+ * generateRelationBuildData({
159
+ * prismaModel: { fields: [...] },
160
+ * inputFieldNames: ['name', 'userId', 'tenantId'],
161
+ * operationType: 'create',
162
+ * dataUtilsImports,
163
+ * })
164
+ * // Returns: buildData: ({ userId, tenantId, ...data }) => ({ ...data, owner: relationHelpers.connectCreate({ id: userId, tenantId }) })
165
+ *
166
+ * @example
167
+ * // No relations (pass-through)
168
+ * generateRelationBuildData({
169
+ * prismaModel: { fields: [...] },
170
+ * inputFieldNames: ['name', 'description'],
171
+ * operationType: 'create',
172
+ * dataUtilsImports,
173
+ * })
174
+ * // Returns: buildData: (data) => data
175
+ */
176
+ export function generateRelationBuildData(config) {
177
+ const { prismaModel, inputFieldNames, operationType, dataUtilsImports } = config;
178
+ // Find all relations that have at least one FK field in the input
179
+ const relevantRelations = findRelevantRelations(prismaModel, inputFieldNames);
180
+ // Extract all foreign key field names
181
+ const foreignKeyFieldNames = extractForeignKeyFields(relevantRelations);
182
+ // Generate the complete buildData function
183
+ if (operationType === 'upsert') {
184
+ const createDataBody = generateBuildDataBody(foreignKeyFieldNames, 'create', dataUtilsImports, relevantRelations, inputFieldNames, 'createData');
185
+ const updateDataBody = generateBuildDataBody(foreignKeyFieldNames, 'update', dataUtilsImports, relevantRelations, inputFieldNames, 'updateData');
186
+ if (createDataBody.passthrough && updateDataBody.passthrough) {
187
+ return {
188
+ argumentFragment: tsTemplate `data`,
189
+ returnFragment: tsTemplate `data`,
190
+ passthrough: true,
191
+ buildDataFunctionFragment: tsTemplate `(data) => data`,
192
+ };
193
+ }
194
+ // For upsert with relations, we don't expose individual fragments since the structure is complex
195
+ // Consumers should use buildDataFunctionFragment directly
196
+ return {
197
+ argumentFragment: tsTemplate `{ create: ${createDataBody.argumentFragment}, update: ${updateDataBody.argumentFragment}}`,
198
+ returnFragment: tsTemplate `{ create: ${createDataBody.returnFragment}, update: ${updateDataBody.returnFragment} }`,
199
+ passthrough: false,
200
+ buildDataFunctionFragment: tsTemplate `
201
+ ({ create: ${createDataBody.argumentFragment}, update: ${updateDataBody.argumentFragment}}) =>
202
+ ({ create: ${createDataBody.returnFragment}, update: ${updateDataBody.returnFragment} })`,
203
+ };
204
+ }
205
+ else {
206
+ const buildDataBody = generateBuildDataBody(foreignKeyFieldNames, operationType, dataUtilsImports, relevantRelations, inputFieldNames);
207
+ return {
208
+ argumentFragment: buildDataBody.argumentFragment,
209
+ returnFragment: buildDataBody.returnFragment,
210
+ passthrough: buildDataBody.passthrough,
211
+ buildDataFunctionFragment: tsTemplate `(${buildDataBody.argumentFragment}) => (${buildDataBody.returnFragment})`,
212
+ };
213
+ }
214
+ }
215
+ //# sourceMappingURL=generate-relation-build-data.js.map
@@ -0,0 +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":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './generate-operation-callbacks.js';
2
+ export * from './generate-relation-build-data.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ export * from './generate-operation-callbacks.js';
2
+ export * from './generate-relation-build-data.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,14 +1,5 @@
1
- import type { TsHoistedFragment } from '@baseplate-dev/core-generators';
2
1
  import type { PrismaOutputModel } from '#src/types/prisma-output.js';
3
2
  import type { ServiceOutputDtoField } from '#src/types/service-output.js';
4
- interface PrimaryKeyOutput {
5
- argumentName: string;
6
- whereClause: string;
7
- headerTypeBlock?: TsHoistedFragment;
8
- argumentType: string;
9
- }
10
3
  export declare function getPrimaryKeyDefinition(model: PrismaOutputModel): ServiceOutputDtoField;
11
4
  export declare function getModelIdFieldName(model: PrismaOutputModel): string;
12
- export declare function getPrimaryKeyExpressions(model: PrismaOutputModel): PrimaryKeyOutput;
13
- export {};
14
5
  //# sourceMappingURL=primary-key-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primary-key-input.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/crud-method/primary-key-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAQxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAI1E,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,GACvB,qBAAqB,CA8CvB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAapE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,GACvB,gBAAgB,CA0ClB"}
1
+ {"version":3,"file":"primary-key-input.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/crud-method/primary-key-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,GACvB,qBAAqB,CA8CvB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAapE"}
@@ -1,6 +1,3 @@
1
- import { tsHoistedFragment, tsTypeImportBuilder, } from '@baseplate-dev/core-generators';
2
- import { quot } from '@baseplate-dev/utils';
3
- import { getScalarFieldTypeInfo } from '#src/types/field-types.js';
4
1
  export function getPrimaryKeyDefinition(model) {
5
2
  const { idFields, fields } = model;
6
3
  if (!idFields?.length) {
@@ -52,33 +49,4 @@ export function getModelIdFieldName(model) {
52
49
  // handle multiple primary key case
53
50
  return idFields.join('_');
54
51
  }
55
- export function getPrimaryKeyExpressions(model) {
56
- const { idFields, fields } = model;
57
- if (!idFields?.length) {
58
- throw new Error(`Model ${model.name} has no primary key`);
59
- }
60
- const idFieldName = getModelIdFieldName(model);
61
- if (idFields.length === 1) {
62
- // handle trivial one primary key case
63
- const idField = fields.find((f) => f.name === idFieldName);
64
- if (!idField || idField.type !== 'scalar') {
65
- throw new Error(`Model ${model.name} must have a scalar primary key`);
66
- }
67
- const argumentType = getScalarFieldTypeInfo(idField.scalarType).typescriptType;
68
- return {
69
- argumentName: idFieldName,
70
- whereClause: `{ ${idFieldName} }`,
71
- argumentType,
72
- };
73
- }
74
- // handle multiple primary key case
75
- const primaryKeyInputName = `${model.name}PrimaryKey`;
76
- const headerTypeBlock = tsHoistedFragment(`input-type:${primaryKeyInputName}`, `export type ${primaryKeyInputName} = Pick<${model.name}, ${idFields.map(quot).join(' | ')}>`, tsTypeImportBuilder([model.name]).from('@prisma/client'));
77
- return {
78
- argumentName: idFieldName,
79
- whereClause: `{ ${idFieldName} }`,
80
- headerTypeBlock,
81
- argumentType: primaryKeyInputName,
82
- };
83
- }
84
52
  //# sourceMappingURL=primary-key-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primary-key-input.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/crud-method/primary-key-input.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AASnE,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,sCAAsC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,mBAAmB,GAAG,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,aAAa,KAAK,CAAC,IAAI,mBAAmB,CAC9D,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC;YACJ,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,sCAAsC;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,mCAAmC;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,sCAAsC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,YAAY,GAAG,sBAAsB,CACzC,OAAO,CAAC,UAAU,CACnB,CAAC,cAAc,CAAC;QAEjB,OAAO;YACL,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,KAAK,WAAW,IAAI;YACjC,YAAY;SACb,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,mBAAmB,GAAG,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC;IAEtD,MAAM,eAAe,GAAG,iBAAiB,CACvC,cAAc,mBAAmB,EAAE,EACnC,eAAe,mBAAmB,WAAW,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAC7F,mBAAmB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACzD,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,KAAK,WAAW,IAAI;QACjC,eAAe;QACf,YAAY,EAAE,mBAAmB;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"primary-key-input.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/crud-method/primary-key-input.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,sCAAsC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,iCAAiC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,MAAM,mBAAmB,GAAG,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,YAAY,OAAO,aAAa,KAAK,CAAC,IAAI,mBAAmB,CAC9D,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU;iBAC7B,CAAC;YACJ,CAAC,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAwB;IAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,sCAAsC;QACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,mCAAmC;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { PrismaOutputScalarField } from '#src/types/prisma-output.js';
2
+ import type { ServiceOutputEnum } from '#src/types/service-output.js';
3
+ import type { PrismaGeneratedImportsProvider } from '../../_providers/prisma-generated-imports.js';
4
+ import type { DataUtilsImportsProvider } from '../../data-utils/index.js';
5
+ import type { InputFieldDefinitionOutput } from './types.js';
6
+ /**
7
+ * Configuration for generating a scalar field definition
8
+ */
9
+ interface GenerateScalarFieldConfig {
10
+ /** Name of the field */
11
+ fieldName: string;
12
+ /** Prisma scalar field */
13
+ scalarField: PrismaOutputScalarField;
14
+ /** Data utils imports */
15
+ dataUtilsImports: DataUtilsImportsProvider;
16
+ /** Prisma generated imports */
17
+ prismaGeneratedImports: PrismaGeneratedImportsProvider;
18
+ /** Lookup function for enums */
19
+ lookupEnum: (name: string) => ServiceOutputEnum;
20
+ }
21
+ /**
22
+ * Generates a scalar field definition, e.g. scalarField(z.string())
23
+ */
24
+ export declare function generateScalarInputField(config: GenerateScalarFieldConfig): InputFieldDefinitionOutput;
25
+ export {};
26
+ //# sourceMappingURL=generate-scalar-input-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-scalar-input-field.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,UAAU,yBAAyB;IACjC,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,EAAE,uBAAuB,CAAC;IACrC,yBAAyB;IACzB,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,+BAA+B;IAC/B,sBAAsB,EAAE,8BAA8B,CAAC;IACvD,gCAAgC;IAChC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACjD;AA0CD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,yBAAyB,GAChC,0BAA0B,CAU5B"}
@@ -0,0 +1,47 @@
1
+ import { TsCodeUtils, tsTemplate } from '@baseplate-dev/core-generators';
2
+ import { scalarPrismaFieldToServiceInputField } from '#src/types/service-output.js';
3
+ const SCALAR_TYPE_TO_ZOD_TYPE = {
4
+ string: 'string()',
5
+ int: 'number().int()',
6
+ float: 'number()',
7
+ decimal: 'number()',
8
+ boolean: 'boolean()',
9
+ date: 'date()',
10
+ dateTime: 'date()',
11
+ json: 'unknown()',
12
+ jsonObject: 'record(z.unknown())',
13
+ uuid: 'string().uuid()',
14
+ enum: '',
15
+ };
16
+ function generateValidator({ scalarField, prismaGeneratedImports, }) {
17
+ const { scalarType, enumType, isOptional, hasDefault } = scalarField;
18
+ const zFrag = TsCodeUtils.importFragment('z', 'zod');
19
+ // Determine the modifier: optional => nullish(), hasDefault => optional(), else => none
20
+ let modifier = '';
21
+ if (isOptional) {
22
+ modifier = '.nullish()';
23
+ }
24
+ else if (hasDefault) {
25
+ modifier = '.optional()';
26
+ }
27
+ if (scalarType === 'enum') {
28
+ if (!enumType) {
29
+ throw new Error('Enum name is required for enum scalar type');
30
+ }
31
+ const enumFrag = prismaGeneratedImports.$Enums.fragment();
32
+ return tsTemplate `${zFrag}.nativeEnum(${enumFrag}.${enumType})${modifier}`;
33
+ }
34
+ return tsTemplate `${zFrag}.${SCALAR_TYPE_TO_ZOD_TYPE[scalarType]}${modifier}`;
35
+ }
36
+ /**
37
+ * Generates a scalar field definition, e.g. scalarField(z.string())
38
+ */
39
+ export function generateScalarInputField(config) {
40
+ const validator = generateValidator(config);
41
+ return {
42
+ name: config.fieldName,
43
+ fragment: tsTemplate `${config.dataUtilsImports.scalarField.fragment()}(${validator})`,
44
+ outputDtoField: scalarPrismaFieldToServiceInputField(config.scalarField, config.lookupEnum),
45
+ };
46
+ }
47
+ //# sourceMappingURL=generate-scalar-input-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-scalar-input-field.js","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/generate-scalar-input-field.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAMzE,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AAsBpF,MAAM,uBAAuB,GAAoC;IAC/D,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,gBAAgB;IACrB,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,qBAAqB;IACjC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,SAAS,iBAAiB,CAAC,EACzB,WAAW,EACX,sBAAsB,GACI;IAC1B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;IACrE,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAErD,wFAAwF;IACxF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,YAAY,CAAC;IAC1B,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAA,GAAG,KAAK,eAAe,QAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,UAAU,CAAA,GAAG,KAAK,IAAI,uBAAuB,CAAC,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAiC;IAEjC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,QAAQ,EAAE,UAAU,CAAA,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,SAAS,GAAG;QACrF,cAAc,EAAE,oCAAoC,CAClD,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,CAClB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TsCodeFragment } from '@baseplate-dev/core-generators';
2
+ import type { ServiceOutputDtoField } from '#src/types/service-output.js';
3
+ export interface InputFieldDefinitionOutput {
4
+ name: string;
5
+ fragment: TsCodeFragment;
6
+ outputDtoField: ServiceOutputDtoField;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/generators/prisma/_shared/field-definition-generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,qBAAqB,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map