joist-codegen 2.3.0-next.8 → 2.3.0-next.80

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 (420) hide show
  1. package/build/EntityDbMetadata.cjs +642 -0
  2. package/build/EntityDbMetadata.cjs.map +1 -0
  3. package/build/EntityDbMetadata.d.cts +299 -0
  4. package/build/EntityDbMetadata.d.cts.map +1 -0
  5. package/build/EntityDbMetadata.d.mts +299 -0
  6. package/build/EntityDbMetadata.d.mts.map +1 -0
  7. package/build/EntityDbMetadata.js +519 -661
  8. package/build/EntityDbMetadata.js.map +1 -1
  9. package/build/_virtual/_rolldown/runtime.cjs +23 -0
  10. package/build/_virtual/_rolldown/runtime.js +5 -0
  11. package/build/assignTags.cjs +45 -0
  12. package/build/assignTags.cjs.map +1 -0
  13. package/build/{assignTags.d.ts → assignTags.d.cts} +8 -4
  14. package/build/assignTags.d.cts.map +1 -0
  15. package/build/assignTags.d.mts +16 -0
  16. package/build/assignTags.d.mts.map +1 -0
  17. package/build/assignTags.js +37 -59
  18. package/build/assignTags.js.map +1 -1
  19. package/build/codemods/Codemod.cjs +2 -0
  20. package/build/codemods/Codemod.d.cts +17 -0
  21. package/build/codemods/Codemod.d.cts.map +1 -0
  22. package/build/codemods/Codemod.d.mts +17 -0
  23. package/build/codemods/Codemod.d.mts.map +1 -0
  24. package/build/codemods/Codemod.js +2 -3
  25. package/build/codemods/JscodeshiftMod.cjs +42 -0
  26. package/build/codemods/JscodeshiftMod.cjs.map +1 -0
  27. package/build/codemods/JscodeshiftMod.d.cts +14 -0
  28. package/build/codemods/JscodeshiftMod.d.cts.map +1 -0
  29. package/build/codemods/JscodeshiftMod.d.mts +14 -0
  30. package/build/codemods/JscodeshiftMod.d.mts.map +1 -0
  31. package/build/codemods/JscodeshiftMod.js +33 -33
  32. package/build/codemods/JscodeshiftMod.js.map +1 -1
  33. package/build/codemods/codemod_0001-rename_has_async_property.cjs +30 -0
  34. package/build/codemods/codemod_0001-rename_has_async_property.cjs.map +1 -0
  35. package/build/codemods/codemod_0001-rename_has_async_property.d.cts +9 -0
  36. package/build/codemods/codemod_0001-rename_has_async_property.d.cts.map +1 -0
  37. package/build/codemods/codemod_0001-rename_has_async_property.d.mts +9 -0
  38. package/build/codemods/codemod_0001-rename_has_async_property.d.mts.map +1 -0
  39. package/build/codemods/codemod_0001-rename_has_async_property.js +21 -25
  40. package/build/codemods/codemod_0001-rename_has_async_property.js.map +1 -1
  41. package/build/codemods/codemod_0002-rename_async_query_fields.cjs +50 -0
  42. package/build/codemods/codemod_0002-rename_async_query_fields.cjs.map +1 -0
  43. package/build/codemods/codemod_0002-rename_async_query_fields.d.cts +9 -0
  44. package/build/codemods/codemod_0002-rename_async_query_fields.d.cts.map +1 -0
  45. package/build/codemods/codemod_0002-rename_async_query_fields.d.mts +9 -0
  46. package/build/codemods/codemod_0002-rename_async_query_fields.d.mts.map +1 -0
  47. package/build/codemods/codemod_0002-rename_async_query_fields.js +38 -52
  48. package/build/codemods/codemod_0002-rename_async_query_fields.js.map +1 -1
  49. package/build/codemods/codemod_0003-rename_find_paginated.cjs +25 -0
  50. package/build/codemods/codemod_0003-rename_find_paginated.cjs.map +1 -0
  51. package/build/codemods/codemod_0003-rename_find_paginated.d.cts +9 -0
  52. package/build/codemods/codemod_0003-rename_find_paginated.d.cts.map +1 -0
  53. package/build/codemods/codemod_0003-rename_find_paginated.d.mts +9 -0
  54. package/build/codemods/codemod_0003-rename_find_paginated.d.mts.map +1 -0
  55. package/build/codemods/codemod_0003-rename_find_paginated.js +17 -26
  56. package/build/codemods/codemod_0003-rename_find_paginated.js.map +1 -1
  57. package/build/codemods/index.cjs +49 -0
  58. package/build/codemods/index.cjs.map +1 -0
  59. package/build/codemods/index.d.cts +12 -0
  60. package/build/codemods/index.d.cts.map +1 -0
  61. package/build/codemods/index.d.mts +12 -0
  62. package/build/codemods/index.d.mts.map +1 -0
  63. package/build/codemods/index.js +34 -42
  64. package/build/codemods/index.js.map +1 -1
  65. package/build/config.cjs +377 -0
  66. package/build/config.cjs.map +1 -0
  67. package/build/config.d.cts +181 -0
  68. package/build/config.d.cts.map +1 -0
  69. package/build/config.d.mts +181 -0
  70. package/build/config.d.mts.map +1 -0
  71. package/build/config.js +309 -347
  72. package/build/config.js.map +1 -1
  73. package/build/docs/cache.cjs +62 -0
  74. package/build/docs/cache.cjs.map +1 -0
  75. package/build/docs/cache.d.cts +17 -0
  76. package/build/docs/cache.d.cts.map +1 -0
  77. package/build/docs/cache.d.mts +17 -0
  78. package/build/docs/cache.d.mts.map +1 -0
  79. package/build/docs/cache.js +52 -53
  80. package/build/docs/cache.js.map +1 -1
  81. package/build/docs/generate-metadata-docs.cjs +32 -0
  82. package/build/docs/generate-metadata-docs.cjs.map +1 -0
  83. package/build/docs/generate-metadata-docs.d.cts +9 -0
  84. package/build/docs/generate-metadata-docs.d.cts.map +1 -0
  85. package/build/docs/generate-metadata-docs.d.mts +9 -0
  86. package/build/docs/generate-metadata-docs.d.mts.map +1 -0
  87. package/build/docs/generate-metadata-docs.js +19 -24
  88. package/build/docs/generate-metadata-docs.js.map +1 -1
  89. package/build/docs/index.cjs +90 -0
  90. package/build/docs/index.cjs.map +1 -0
  91. package/build/docs/index.d.cts +16 -0
  92. package/build/docs/index.d.cts.map +1 -0
  93. package/build/docs/index.d.mts +16 -0
  94. package/build/docs/index.d.mts.map +1 -0
  95. package/build/docs/index.js +75 -80
  96. package/build/docs/index.js.map +1 -1
  97. package/build/docs/markdown.cjs +181 -0
  98. package/build/docs/markdown.cjs.map +1 -0
  99. package/build/docs/{markdown.d.ts → markdown.d.cts} +14 -12
  100. package/build/docs/markdown.d.cts.map +1 -0
  101. package/build/docs/markdown.d.mts +32 -0
  102. package/build/docs/markdown.d.mts.map +1 -0
  103. package/build/docs/markdown.js +152 -220
  104. package/build/docs/markdown.js.map +1 -1
  105. package/build/docs/parsing.cjs +117 -0
  106. package/build/docs/parsing.cjs.map +1 -0
  107. package/build/docs/parsing.d.cts +48 -0
  108. package/build/docs/parsing.d.cts.map +1 -0
  109. package/build/docs/parsing.d.mts +48 -0
  110. package/build/docs/parsing.d.mts.map +1 -0
  111. package/build/docs/parsing.js +89 -88
  112. package/build/docs/parsing.js.map +1 -1
  113. package/build/findEntityScopes.cjs +119 -0
  114. package/build/findEntityScopes.cjs.map +1 -0
  115. package/build/findEntityScopes.d.cts +14 -0
  116. package/build/findEntityScopes.d.cts.map +1 -0
  117. package/build/findEntityScopes.d.mts +14 -0
  118. package/build/findEntityScopes.d.mts.map +1 -0
  119. package/build/findEntityScopes.js +83 -111
  120. package/build/findEntityScopes.js.map +1 -1
  121. package/build/foreignKeyOrdering.cjs +52 -0
  122. package/build/foreignKeyOrdering.cjs.map +1 -0
  123. package/build/foreignKeyOrdering.d.cts +8 -0
  124. package/build/foreignKeyOrdering.d.cts.map +1 -0
  125. package/build/foreignKeyOrdering.d.mts +8 -0
  126. package/build/foreignKeyOrdering.d.mts.map +1 -0
  127. package/build/foreignKeyOrdering.js +46 -55
  128. package/build/foreignKeyOrdering.js.map +1 -1
  129. package/build/generate.cjs +128 -0
  130. package/build/generate.cjs.map +1 -0
  131. package/build/generate.d.cts +17 -0
  132. package/build/generate.d.cts.map +1 -0
  133. package/build/generate.d.mts +17 -0
  134. package/build/generate.d.mts.map +1 -0
  135. package/build/generate.js +111 -124
  136. package/build/generate.js.map +1 -1
  137. package/build/generateEntitiesFile.cjs +46 -0
  138. package/build/generateEntitiesFile.cjs.map +1 -0
  139. package/build/generateEntitiesFile.d.cts +11 -0
  140. package/build/generateEntitiesFile.d.cts.map +1 -0
  141. package/build/generateEntitiesFile.d.mts +11 -0
  142. package/build/generateEntitiesFile.d.mts.map +1 -0
  143. package/build/generateEntitiesFile.js +28 -25
  144. package/build/generateEntitiesFile.js.map +1 -1
  145. package/build/generateEntityCodegenFile.cjs +1010 -0
  146. package/build/generateEntityCodegenFile.cjs.map +1 -0
  147. package/build/generateEntityCodegenFile.d.cts +16 -0
  148. package/build/generateEntityCodegenFile.d.cts.map +1 -0
  149. package/build/generateEntityCodegenFile.d.mts +16 -0
  150. package/build/generateEntityCodegenFile.d.mts.map +1 -0
  151. package/build/generateEntityCodegenFile.js +793 -827
  152. package/build/generateEntityCodegenFile.js.map +1 -1
  153. package/build/generateEntityFile.cjs +23 -0
  154. package/build/generateEntityFile.cjs.map +1 -0
  155. package/build/generateEntityFile.d.cts +9 -0
  156. package/build/generateEntityFile.d.cts.map +1 -0
  157. package/build/generateEntityFile.d.mts +9 -0
  158. package/build/generateEntityFile.d.mts.map +1 -0
  159. package/build/generateEntityFile.js +11 -8
  160. package/build/generateEntityFile.js.map +1 -1
  161. package/build/generateEntityTestFile.cjs +25 -0
  162. package/build/generateEntityTestFile.cjs.map +1 -0
  163. package/build/generateEntityTestFile.d.cts +9 -0
  164. package/build/generateEntityTestFile.d.cts.map +1 -0
  165. package/build/generateEntityTestFile.d.mts +9 -0
  166. package/build/generateEntityTestFile.d.mts.map +1 -0
  167. package/build/generateEntityTestFile.js +10 -7
  168. package/build/generateEntityTestFile.js.map +1 -1
  169. package/build/generateEnumFile.cjs +73 -0
  170. package/build/generateEnumFile.cjs.map +1 -0
  171. package/build/generateEnumFile.d.cts +9 -0
  172. package/build/generateEnumFile.d.cts.map +1 -0
  173. package/build/generateEnumFile.d.mts +9 -0
  174. package/build/generateEnumFile.d.mts.map +1 -0
  175. package/build/generateEnumFile.js +33 -43
  176. package/build/generateEnumFile.js.map +1 -1
  177. package/build/generateFactoriesFiles.cjs +28 -0
  178. package/build/generateFactoriesFiles.cjs.map +1 -0
  179. package/build/generateFactoriesFiles.d.cts +7 -0
  180. package/build/generateFactoriesFiles.d.cts.map +1 -0
  181. package/build/generateFactoriesFiles.d.mts +7 -0
  182. package/build/generateFactoriesFiles.d.mts.map +1 -0
  183. package/build/generateFactoriesFiles.js +21 -16
  184. package/build/generateFactoriesFiles.js.map +1 -1
  185. package/build/generateFlushFunction.cjs +61 -0
  186. package/build/generateFlushFunction.cjs.map +1 -0
  187. package/build/{generateFlushFunction.d.ts → generateFlushFunction.d.cts} +8 -5
  188. package/build/generateFlushFunction.d.cts.map +1 -0
  189. package/build/generateFlushFunction.d.mts +23 -0
  190. package/build/generateFlushFunction.d.mts.map +1 -0
  191. package/build/generateFlushFunction.js +32 -78
  192. package/build/generateFlushFunction.js.map +1 -1
  193. package/build/generateMetadataFile.cjs +307 -0
  194. package/build/generateMetadataFile.cjs.map +1 -0
  195. package/build/generateMetadataFile.d.cts +10 -0
  196. package/build/generateMetadataFile.d.cts.map +1 -0
  197. package/build/generateMetadataFile.d.mts +10 -0
  198. package/build/generateMetadataFile.d.mts.map +1 -0
  199. package/build/generateMetadataFile.js +148 -156
  200. package/build/generateMetadataFile.js.map +1 -1
  201. package/build/generatePgEnumFile.cjs +21 -0
  202. package/build/generatePgEnumFile.cjs.map +1 -0
  203. package/build/generatePgEnumFile.d.cts +9 -0
  204. package/build/generatePgEnumFile.d.cts.map +1 -0
  205. package/build/generatePgEnumFile.d.mts +9 -0
  206. package/build/generatePgEnumFile.d.mts.map +1 -0
  207. package/build/generatePgEnumFile.js +12 -9
  208. package/build/generatePgEnumFile.js.map +1 -1
  209. package/build/index.cjs +135 -0
  210. package/build/index.cjs.map +1 -0
  211. package/build/index.d.cts +12 -0
  212. package/build/index.d.cts.map +1 -0
  213. package/build/index.d.mts +12 -0
  214. package/build/index.d.mts.map +1 -0
  215. package/build/index.js +108 -127
  216. package/build/index.js.map +1 -1
  217. package/build/inheritance.cjs +241 -0
  218. package/build/inheritance.cjs.map +1 -0
  219. package/build/inheritance.d.cts +13 -0
  220. package/build/inheritance.d.cts.map +1 -0
  221. package/build/inheritance.d.mts +13 -0
  222. package/build/inheritance.d.mts.map +1 -0
  223. package/build/inheritance.js +221 -247
  224. package/build/inheritance.js.map +1 -1
  225. package/build/installSkills.cjs +68 -0
  226. package/build/installSkills.cjs.map +1 -0
  227. package/build/installSkills.d.cts +16 -0
  228. package/build/installSkills.d.cts.map +1 -0
  229. package/build/installSkills.d.mts +16 -0
  230. package/build/installSkills.d.mts.map +1 -0
  231. package/build/installSkills.js +67 -0
  232. package/build/installSkills.js.map +1 -0
  233. package/build/keywords.cjs +7 -0
  234. package/build/keywords.cjs.map +1 -0
  235. package/build/keywords.d.cts +5 -0
  236. package/build/keywords.d.cts.map +1 -0
  237. package/build/keywords.d.mts +5 -0
  238. package/build/keywords.d.mts.map +1 -0
  239. package/build/keywords.js +5 -4
  240. package/build/keywords.js.map +1 -1
  241. package/build/loadMetadata.cjs +39 -0
  242. package/build/loadMetadata.cjs.map +1 -0
  243. package/build/loadMetadata.d.cts +31 -0
  244. package/build/loadMetadata.d.cts.map +1 -0
  245. package/build/loadMetadata.d.mts +31 -0
  246. package/build/loadMetadata.d.mts.map +1 -0
  247. package/build/loadMetadata.js +32 -39
  248. package/build/loadMetadata.js.map +1 -1
  249. package/build/logger.cjs +28 -0
  250. package/build/logger.cjs.map +1 -0
  251. package/build/logger.d.cts +13 -0
  252. package/build/logger.d.cts.map +1 -0
  253. package/build/logger.d.mts +13 -0
  254. package/build/logger.d.mts.map +1 -0
  255. package/build/logger.js +17 -16
  256. package/build/logger.js.map +1 -1
  257. package/build/scanEntityFiles.cjs +46 -0
  258. package/build/scanEntityFiles.cjs.map +1 -0
  259. package/build/scanEntityFiles.d.cts +8 -0
  260. package/build/scanEntityFiles.d.cts.map +1 -0
  261. package/build/scanEntityFiles.d.mts +8 -0
  262. package/build/scanEntityFiles.d.mts.map +1 -0
  263. package/build/scanEntityFiles.js +37 -42
  264. package/build/scanEntityFiles.js.map +1 -1
  265. package/build/sortForeignKeys.cjs +99 -0
  266. package/build/sortForeignKeys.cjs.map +1 -0
  267. package/build/{sortForeignKeys.d.ts → sortForeignKeys.d.cts} +8 -5
  268. package/build/sortForeignKeys.d.cts.map +1 -0
  269. package/build/sortForeignKeys.d.mts +35 -0
  270. package/build/sortForeignKeys.d.mts.map +1 -0
  271. package/build/sortForeignKeys.js +88 -117
  272. package/build/sortForeignKeys.js.map +1 -1
  273. package/build/symbols.cjs +238 -0
  274. package/build/symbols.cjs.map +1 -0
  275. package/build/symbols.d.cts +120 -0
  276. package/build/symbols.d.cts.map +1 -0
  277. package/build/symbols.d.mts +120 -0
  278. package/build/symbols.d.mts.map +1 -0
  279. package/build/symbols.js +121 -113
  280. package/build/symbols.js.map +1 -1
  281. package/build/tsdoc.cjs +22 -0
  282. package/build/tsdoc.cjs.map +1 -0
  283. package/build/tsdoc.d.cts +15 -0
  284. package/build/tsdoc.d.cts.map +1 -0
  285. package/build/tsdoc.d.mts +15 -0
  286. package/build/tsdoc.d.mts.map +1 -0
  287. package/build/tsdoc.js +18 -15
  288. package/build/tsdoc.js.map +1 -1
  289. package/build/utils.cjs +173 -0
  290. package/build/utils.cjs.map +1 -0
  291. package/build/utils.d.cts +34 -0
  292. package/build/utils.d.cts.map +1 -0
  293. package/build/utils.d.mts +34 -0
  294. package/build/utils.d.mts.map +1 -0
  295. package/build/utils.js +112 -166
  296. package/build/utils.js.map +1 -1
  297. package/build/write-json-schema.cjs +23 -0
  298. package/build/write-json-schema.cjs.map +1 -0
  299. package/build/write-json-schema.d.cts +1 -0
  300. package/build/write-json-schema.d.mts +1 -0
  301. package/build/write-json-schema.js +19 -13
  302. package/build/write-json-schema.js.map +1 -1
  303. package/package.json +37 -17
  304. package/skills/joist-docs/SKILL.md +133 -0
  305. package/skills/joist-em-basics/SKILL.md +114 -0
  306. package/skills/joist-partial-updates/SKILL.md +352 -0
  307. package/skills/joist-reactive-hints/SKILL.md +150 -0
  308. package/skills/joist-test-factories/SKILL.md +397 -0
  309. package/skills/joist-upsert/SKILL.md +95 -0
  310. package/build/EntityDbMetadata.d.ts +0 -269
  311. package/build/EntityDbMetadata.d.ts.map +0 -1
  312. package/build/EntityDbMetadata.test.d.ts +0 -2
  313. package/build/EntityDbMetadata.test.d.ts.map +0 -1
  314. package/build/EntityDbMetadata.test.js +0 -211
  315. package/build/EntityDbMetadata.test.js.map +0 -1
  316. package/build/assignTags.d.ts.map +0 -1
  317. package/build/codemods/Codemod.d.ts +0 -14
  318. package/build/codemods/Codemod.d.ts.map +0 -1
  319. package/build/codemods/Codemod.js.map +0 -1
  320. package/build/codemods/JscodeshiftMod.d.ts +0 -11
  321. package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
  322. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
  323. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
  324. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
  325. package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
  326. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
  327. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
  328. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
  329. package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
  330. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
  331. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
  332. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
  333. package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
  334. package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -7
  335. package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
  336. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -7
  337. package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
  338. package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -7
  339. package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
  340. package/build/codemods/index.d.ts +0 -9
  341. package/build/codemods/index.d.ts.map +0 -1
  342. package/build/codemods/index.test.d.ts +0 -2
  343. package/build/codemods/index.test.d.ts.map +0 -1
  344. package/build/codemods/index.test.js +0 -24
  345. package/build/codemods/index.test.js.map +0 -1
  346. package/build/config.d.ts +0 -167
  347. package/build/config.d.ts.map +0 -1
  348. package/build/config.test.d.ts +0 -2
  349. package/build/config.test.d.ts.map +0 -1
  350. package/build/config.test.js +0 -78
  351. package/build/config.test.js.map +0 -1
  352. package/build/docs/cache.d.ts +0 -14
  353. package/build/docs/cache.d.ts.map +0 -1
  354. package/build/docs/cache.test.d.ts +0 -2
  355. package/build/docs/cache.test.d.ts.map +0 -1
  356. package/build/docs/cache.test.js +0 -47
  357. package/build/docs/cache.test.js.map +0 -1
  358. package/build/docs/generate-metadata-docs.d.ts +0 -6
  359. package/build/docs/generate-metadata-docs.d.ts.map +0 -1
  360. package/build/docs/index.d.ts +0 -9
  361. package/build/docs/index.d.ts.map +0 -1
  362. package/build/docs/index.test.d.ts +0 -2
  363. package/build/docs/index.test.d.ts.map +0 -1
  364. package/build/docs/index.test.js +0 -100
  365. package/build/docs/index.test.js.map +0 -1
  366. package/build/docs/markdown.d.ts.map +0 -1
  367. package/build/docs/markdown.test.d.ts +0 -2
  368. package/build/docs/markdown.test.d.ts.map +0 -1
  369. package/build/docs/markdown.test.js +0 -280
  370. package/build/docs/markdown.test.js.map +0 -1
  371. package/build/docs/parsing.d.ts +0 -42
  372. package/build/docs/parsing.d.ts.map +0 -1
  373. package/build/docs/parsing.test.d.ts +0 -2
  374. package/build/docs/parsing.test.d.ts.map +0 -1
  375. package/build/docs/parsing.test.js +0 -190
  376. package/build/docs/parsing.test.js.map +0 -1
  377. package/build/findEntityScopes.d.ts +0 -11
  378. package/build/findEntityScopes.d.ts.map +0 -1
  379. package/build/foreignKeyOrdering.d.ts +0 -3
  380. package/build/foreignKeyOrdering.d.ts.map +0 -1
  381. package/build/generate.d.ts +0 -12
  382. package/build/generate.d.ts.map +0 -1
  383. package/build/generateEntitiesFile.d.ts +0 -7
  384. package/build/generateEntitiesFile.d.ts.map +0 -1
  385. package/build/generateEntityCodegenFile.d.ts +0 -11
  386. package/build/generateEntityCodegenFile.d.ts.map +0 -1
  387. package/build/generateEntityFile.d.ts +0 -6
  388. package/build/generateEntityFile.d.ts.map +0 -1
  389. package/build/generateEntityTestFile.d.ts +0 -6
  390. package/build/generateEntityTestFile.d.ts.map +0 -1
  391. package/build/generateEnumFile.d.ts +0 -5
  392. package/build/generateEnumFile.d.ts.map +0 -1
  393. package/build/generateFactoriesFiles.d.ts +0 -4
  394. package/build/generateFactoriesFiles.d.ts.map +0 -1
  395. package/build/generateFlushFunction.d.ts.map +0 -1
  396. package/build/generateMetadataFile.d.ts +0 -5
  397. package/build/generateMetadataFile.d.ts.map +0 -1
  398. package/build/generatePgEnumFile.d.ts +0 -5
  399. package/build/generatePgEnumFile.d.ts.map +0 -1
  400. package/build/index.d.ts +0 -11
  401. package/build/index.d.ts.map +0 -1
  402. package/build/inheritance.d.ts +0 -10
  403. package/build/inheritance.d.ts.map +0 -1
  404. package/build/keywords.d.ts +0 -2
  405. package/build/keywords.d.ts.map +0 -1
  406. package/build/loadMetadata.d.ts +0 -26
  407. package/build/loadMetadata.d.ts.map +0 -1
  408. package/build/logger.d.ts +0 -10
  409. package/build/logger.d.ts.map +0 -1
  410. package/build/scanEntityFiles.d.ts +0 -5
  411. package/build/scanEntityFiles.d.ts.map +0 -1
  412. package/build/sortForeignKeys.d.ts.map +0 -1
  413. package/build/symbols.d.ts +0 -108
  414. package/build/symbols.d.ts.map +0 -1
  415. package/build/tsdoc.d.ts +0 -12
  416. package/build/tsdoc.d.ts.map +0 -1
  417. package/build/utils.d.ts +0 -31
  418. package/build/utils.d.ts.map +0 -1
  419. package/build/write-json-schema.d.ts +0 -2
  420. package/build/write-json-schema.d.ts.map +0 -1
@@ -0,0 +1,128 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils = require("./utils.cjs");
3
+ const require_docs_generate_metadata_docs = require("./docs/generate-metadata-docs.cjs");
4
+ const require_docs_index = require("./docs/index.cjs");
5
+ const require_findEntityScopes = require("./findEntityScopes.cjs");
6
+ const require_generateEntitiesFile = require("./generateEntitiesFile.cjs");
7
+ const require_symbols = require("./symbols.cjs");
8
+ const require_generateEntityCodegenFile = require("./generateEntityCodegenFile.cjs");
9
+ const require_generateEntityFile = require("./generateEntityFile.cjs");
10
+ const require_generateEntityTestFile = require("./generateEntityTestFile.cjs");
11
+ const require_generateEnumFile = require("./generateEnumFile.cjs");
12
+ const require_generateFactoriesFiles = require("./generateFactoriesFiles.cjs");
13
+ const require_generateMetadataFile = require("./generateMetadataFile.cjs");
14
+ const require_generatePgEnumFile = require("./generatePgEnumFile.cjs");
15
+ require("./index.cjs");
16
+ let ts_poet = require("ts-poet");
17
+ let fs_promises = require("fs/promises");
18
+ //#region src/generate.ts
19
+ const runtimeRequire = (0, require("node:module").createRequire)(require("url").pathToFileURL(__filename).href);
20
+ /** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */
21
+ async function generateFiles(config, dbMeta) {
22
+ const { entities, enums, pgEnums } = dbMeta;
23
+ const entityNames = entities.map((meta) => meta.entity.name);
24
+ const files = await readExistingFiles(config);
25
+ if (config.docs) await require_docs_index.syncDocs(config.entitiesDirectory, entityNames);
26
+ const entityDocs = config.docs || config.outputDocs ? await require_docs_index.loadEntityDocs(config.entitiesDirectory, entityNames) : {};
27
+ const scopeMembersByEntity = await require_findEntityScopes.findAllEntityScopes(config, entities.map((meta) => meta.entity));
28
+ const entityFiles = entities.map((meta) => {
29
+ const entityName = meta.entity.name;
30
+ const hasEntityFile = files.includes(`${entityName}.ts`);
31
+ return [{
32
+ name: `./codegen/${entityName}Codegen.ts`,
33
+ contents: require_generateEntityCodegenFile.generateEntityCodegenFile(config, dbMeta, meta, scopeMembersByEntity[entityName] ?? [], config.docs ? entityDocs[entityName] : void 0),
34
+ overwrite: true
35
+ }, ...hasEntityFile ? [] : [{
36
+ name: `${entityName}.ts`,
37
+ contents: require_generateEntityFile.generateEntityFile(config, meta),
38
+ overwrite: false
39
+ }, {
40
+ name: `${entityName}.test.ts`,
41
+ contents: require_generateEntityTestFile.generateEntityTestFile(config, meta),
42
+ overwrite: false
43
+ }]];
44
+ }).reduce(require_utils.merge, []);
45
+ const enumFiles = Object.values(enums).map((enumData) => {
46
+ const enumName = require_utils.tableToEntityName(config, enumData.table);
47
+ return [{
48
+ name: `./enums/${enumName}.ts`,
49
+ contents: require_generateEnumFile.generateEnumFile(config, enumData, enumName),
50
+ overwrite: true
51
+ }];
52
+ }).reduce(require_utils.merge, []);
53
+ const pgEnumFiles = Object.values(pgEnums).map((enumData) => {
54
+ return [{
55
+ name: `./enums/${enumData.name}.ts`,
56
+ contents: require_generatePgEnumFile.generatePgEnumFile(config, enumData),
57
+ overwrite: true
58
+ }];
59
+ }).reduce(require_utils.merge, []);
60
+ const contextType = config.contextType ? (0, ts_poet.imp)(`t:${config.contextType}`) : "{}";
61
+ const txnType = config.transactionType ? (0, ts_poet.imp)(`t:${config.transactionType}`) : "unknown";
62
+ const maybeTagDelimiter = config.tagDelimiter === void 0 ? ts_poet.code`` : ts_poet.code`tagDelimiter: ${config.tagDelimiter === "" ? "undefined" : JSON.stringify(config.tagDelimiter)},`;
63
+ const metadataFile = {
64
+ name: "./codegen/metadata.ts",
65
+ contents: ts_poet.code`
66
+ ${require_symbols.setRuntimeConfig}({
67
+ temporal: ${config.temporal ? { timeZone: typeof config.temporal === "boolean" ? "UTC" : config.temporal.timeZone } : "false"},
68
+ ${maybeTagDelimiter}
69
+ });
70
+
71
+ export class ${(0, ts_poet.def)("EntityManager")} extends ${require_symbols.JoistEntityManager}<${contextType}, Entity, ${txnType}> {}
72
+
73
+ export interface ${(0, ts_poet.def)("Entity")} extends ${require_symbols.Entity} {
74
+ id: ${require_generateEntityCodegenFile.getIdType(config)};
75
+ em: EntityManager;
76
+ }
77
+
78
+ ${entities.map((meta) => require_generateMetadataFile.generateColumnDeclarations(config, dbMeta, meta))}
79
+ ${entities.map((meta) => require_generateMetadataFile.generateMetadataFile(config, dbMeta, meta))}
80
+
81
+ export const allMetadata = [${entities.map((meta) => meta.entity.metaName).join(", ")}];
82
+ ${require_symbols.configureMetadata}(allMetadata);
83
+ `,
84
+ overwrite: true,
85
+ toStringOpts: { dprintOptions: { lineWidth: 400 } }
86
+ };
87
+ const enumsTables = Object.values(enums).map(({ table }) => table).sort((a, b) => a.name.localeCompare(b.name));
88
+ const entitiesFile = {
89
+ name: "./entities.ts",
90
+ contents: require_generateEntitiesFile.generateEntitiesFile(config, entities, enumsTables, Object.values(pgEnums)),
91
+ overwrite: true,
92
+ toStringOpts: { dprintOptions: { "module.sortExportDeclarations": "maintain" } }
93
+ };
94
+ const factoriesFiles = require_generateFactoriesFiles.generateFactoriesFiles(entities);
95
+ const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
96
+ const indexFile = {
97
+ name: "./index.ts",
98
+ contents: ts_poet.code`export * from "./entities${esmExt}"`,
99
+ overwrite: false
100
+ };
101
+ const pluginFiles = (await Promise.all((config.codegenPlugins ?? []).map((p) => {
102
+ return runtimeRequire(p).run(config, dbMeta);
103
+ }))).flat();
104
+ const docsFile = config.outputDocs ? require_docs_generate_metadata_docs.generateMetadataDocsFile(dbMeta, entityDocs) : void 0;
105
+ return [
106
+ ...entityFiles,
107
+ ...enumFiles,
108
+ ...pgEnumFiles,
109
+ entitiesFile,
110
+ ...factoriesFiles,
111
+ metadataFile,
112
+ ...docsFile ? [docsFile] : [],
113
+ indexFile,
114
+ ...pluginFiles
115
+ ];
116
+ }
117
+ /** Reads the `entitiesDirectory` but just ignores if it doesn't exist yet. */
118
+ async function readExistingFiles(config) {
119
+ try {
120
+ return await (0, fs_promises.readdir)(config.entitiesDirectory);
121
+ } catch (e) {
122
+ return [];
123
+ }
124
+ }
125
+ //#endregion
126
+ exports.generateFiles = generateFiles;
127
+
128
+ //# sourceMappingURL=generate.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.cjs","names":["createRequire","syncDocs","loadEntityDocs","findAllEntityScopes","generateEntityCodegenFile","generateEntityFile","generateEntityTestFile","merge","tableToEntityName","generateEnumFile","generatePgEnumFile","imp","setRuntimeConfig","def","JoistEntityManager","Entity","getIdType","generateColumnDeclarations","generateMetadataFile","configureMetadata","generateEntitiesFile","generateFactoriesFiles","generateMetadataDocsFile","readdir"],"sources":["../src/generate.ts"],"sourcesContent":["import { readdir } from \"fs/promises\";\nimport { createRequire } from \"node:module\";\n\nimport { type CodegenFile, code, def, imp } from \"ts-poet\";\n\nimport { generateMetadataDocsFile, loadEntityDocs, syncDocs } from \"./docs/index.ts\";\nimport { findAllEntityScopes } from \"./findEntityScopes.ts\";\nimport { generateEntitiesFile } from \"./generateEntitiesFile.ts\";\nimport { generateEntityCodegenFile, getIdType } from \"./generateEntityCodegenFile.ts\";\nimport { generateEntityFile } from \"./generateEntityFile.ts\";\nimport { generateEntityTestFile } from \"./generateEntityTestFile.ts\";\nimport { generateEnumFile } from \"./generateEnumFile.ts\";\nimport { generateFactoriesFiles } from \"./generateFactoriesFiles.ts\";\nimport { generateColumnDeclarations, generateMetadataFile } from \"./generateMetadataFile.ts\";\nimport { generatePgEnumFile } from \"./generatePgEnumFile.ts\";\nimport { type Config, type DbMetadata } from \"./index.ts\";\nimport { Entity, JoistEntityManager, configureMetadata, setRuntimeConfig } from \"./symbols.ts\";\nimport { merge, tableToEntityName } from \"./utils.ts\";\n\nconst runtimeRequire = createRequire(import.meta.url);\n\nexport type DPrintOptions = Record<string, unknown>;\n\n/**\n * Provides an API for hooking into the codegen build step.\n */\nexport interface CodegenPlugin {\n run(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;\n}\n\n/** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */\nexport async function generateFiles(config: Config, dbMeta: DbMetadata): Promise<CodegenFile[]> {\n const { entities, enums, pgEnums } = dbMeta;\n const entityNames = entities.map((meta) => meta.entity.name);\n\n // Find existing entities so that, besides just using `overwrite: false`, we can completely\n // skip making test files except for the _first_ time we create an entity. This achieves\n // `.history`-like \"create once\" behavior without the need for the `.history` file.\n const files = await readExistingFiles(config);\n\n // Sync documentation: backfill .md from existing JSDocs, then sync MD -> JSDoc\n if (config.docs) {\n await syncDocs(config.entitiesDirectory, entityNames);\n }\n\n // Load the .md docs once (post-sync) to inject into codegen JSDocs and the runtime metadata-docs.ts\n const entityDocs =\n config.docs || config.outputDocs ? await loadEntityDocs(config.entitiesDirectory, entityNames) : {};\n\n const scopeMembersByEntity = await findAllEntityScopes(\n config,\n entities.map((meta) => meta.entity),\n );\n\n const entityFiles = entities\n .map((meta) => {\n const entityName = meta.entity.name;\n const hasEntityFile = files.includes(`${entityName}.ts`);\n return [\n {\n name: `./codegen/${entityName}Codegen.ts`,\n contents: generateEntityCodegenFile(\n config,\n dbMeta,\n meta,\n scopeMembersByEntity[entityName] ?? [],\n config.docs ? entityDocs[entityName] : undefined,\n ),\n overwrite: true,\n },\n ...(hasEntityFile\n ? []\n : [\n { name: `${entityName}.ts`, contents: generateEntityFile(config, meta), overwrite: false },\n { name: `${entityName}.test.ts`, contents: generateEntityTestFile(config, meta), overwrite: false },\n ]),\n ];\n })\n .reduce(merge, []);\n\n const enumFiles = Object.values(enums)\n .map((enumData) => {\n const enumName = tableToEntityName(config, enumData.table);\n return [\n {\n name: `./enums/${enumName}.ts`,\n contents: generateEnumFile(config, enumData, enumName),\n overwrite: true,\n },\n ];\n })\n .reduce(merge, []);\n const pgEnumFiles = Object.values(pgEnums)\n .map((enumData) => {\n return [\n {\n name: `./enums/${enumData.name}.ts`,\n contents: generatePgEnumFile(config, enumData),\n overwrite: true,\n },\n ];\n })\n .reduce(merge, []);\n\n const contextType = config.contextType ? imp(`t:${config.contextType}`) : \"{}\";\n const txnType = config.transactionType ? imp(`t:${config.transactionType}`) : \"unknown\";\n const maybeTagDelimiter =\n config.tagDelimiter === undefined\n ? code``\n : code`tagDelimiter: ${config.tagDelimiter === \"\" ? \"undefined\" : JSON.stringify(config.tagDelimiter)},`;\n\n const metadataFile: CodegenFile = {\n name: \"./codegen/metadata.ts\",\n contents: code`\n ${setRuntimeConfig}({\n temporal: ${config.temporal ? { timeZone: typeof config.temporal === \"boolean\" ? \"UTC\" : config.temporal.timeZone } : \"false\"},\n ${maybeTagDelimiter}\n });\n \n export class ${def(\"EntityManager\")} extends ${JoistEntityManager}<${contextType}, Entity, ${txnType}> {}\n\n export interface ${def(\"Entity\")} extends ${Entity} {\n id: ${getIdType(config)};\n em: EntityManager;\n }\n\n ${entities.map((meta) => generateColumnDeclarations(config, dbMeta, meta))}\n ${entities.map((meta) => generateMetadataFile(config, dbMeta, meta))}\n\n export const allMetadata = [${entities.map((meta) => meta.entity.metaName).join(\", \")}];\n ${configureMetadata}(allMetadata);\n `,\n overwrite: true,\n toStringOpts: { dprintOptions: { lineWidth: 400 } },\n };\n\n const enumsTables = Object.values(enums)\n .map(({ table }) => table)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const entitiesFile: CodegenFile = {\n name: \"./entities.ts\",\n contents: generateEntitiesFile(config, entities, enumsTables, Object.values(pgEnums)),\n overwrite: true,\n toStringOpts: { dprintOptions: { \"module.sortExportDeclarations\": \"maintain\" } },\n };\n\n const factoriesFiles: CodegenFile[] = generateFactoriesFiles(entities);\n\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n const indexFile: CodegenFile = {\n name: \"./index.ts\",\n contents: code`export * from \"./entities${esmExt}\"`,\n overwrite: false,\n };\n\n // Look for modules to require and call the exported `.run(Config, DbMeta)` method\n const pluginFiles: CodegenFile[] = (\n await Promise.all(\n (config.codegenPlugins ?? []).map((p) => {\n const plugin = runtimeRequire(p) as CodegenPlugin;\n return plugin.run(config, dbMeta);\n }),\n )\n ).flat();\n\n // Generate metadata-docs.ts if enabled\n const docsFile = config.outputDocs ? generateMetadataDocsFile(dbMeta, entityDocs) : undefined;\n\n return [\n ...entityFiles,\n ...enumFiles,\n ...pgEnumFiles,\n entitiesFile,\n ...factoriesFiles,\n metadataFile,\n ...(docsFile ? [docsFile] : []),\n indexFile,\n ...pluginFiles,\n ];\n}\n\n/** Reads the `entitiesDirectory` but just ignores if it doesn't exist yet. */\nasync function readExistingFiles(config: Config): Promise<string[]> {\n try {\n return await readdir(config.entitiesDirectory);\n } catch (e) {\n return [];\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Config } from "./config.cjs";
2
+ import "./index.cjs";
3
+ import { DbMetadata } from "./EntityDbMetadata.cjs";
4
+ import { CodegenFile } from "ts-poet";
5
+ //#region src/generate.d.ts
6
+ type DPrintOptions = Record<string, unknown>;
7
+ /**
8
+ * Provides an API for hooking into the codegen build step.
9
+ */
10
+ interface CodegenPlugin {
11
+ run(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;
12
+ }
13
+ /** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */
14
+ declare function generateFiles(config: Config, dbMeta: DbMetadata): Promise<CodegenFile[]>;
15
+ //#endregion
16
+ export { CodegenPlugin, DPrintOptions, generateFiles };
17
+ //# sourceMappingURL=generate.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.cts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;KAqBY,gBAAgB;;;;UAKX;EACf,IAAI,QAAQ,QAAQ,QAAQ,aAAa,QAAQ;;;iBAI7B,cAAc,QAAQ,QAAQ,QAAQ,aAAa,QAAQ"}
@@ -0,0 +1,17 @@
1
+ import { Config } from "./config.mjs";
2
+ import "./index.mjs";
3
+ import { DbMetadata } from "./EntityDbMetadata.mjs";
4
+ import { CodegenFile } from "ts-poet";
5
+ //#region src/generate.d.ts
6
+ type DPrintOptions = Record<string, unknown>;
7
+ /**
8
+ * Provides an API for hooking into the codegen build step.
9
+ */
10
+ interface CodegenPlugin {
11
+ run(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;
12
+ }
13
+ /** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */
14
+ declare function generateFiles(config: Config, dbMeta: DbMetadata): Promise<CodegenFile[]>;
15
+ //#endregion
16
+ export { CodegenPlugin, DPrintOptions, generateFiles };
17
+ //# sourceMappingURL=generate.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.mts","names":[],"sources":["../src/generate.ts"],"mappings":";;;;;KAqBY,gBAAgB;;;;UAKX;EACf,IAAI,QAAQ,QAAQ,QAAQ,aAAa,QAAQ;;;iBAI7B,cAAc,QAAQ,QAAQ,QAAQ,aAAa,QAAQ"}
package/build/generate.js CHANGED
@@ -1,141 +1,128 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFiles = generateFiles;
4
- const promises_1 = require("fs/promises");
5
- const ts_poet_1 = require("ts-poet");
6
- const generateEntitiesFile_1 = require("./generateEntitiesFile");
7
- const generateEntityCodegenFile_1 = require("./generateEntityCodegenFile");
8
- const generateEntityFile_1 = require("./generateEntityFile");
9
- const generateEntityTestFile_1 = require("./generateEntityTestFile");
10
- const generateEnumFile_1 = require("./generateEnumFile");
11
- const generateFactoriesFiles_1 = require("./generateFactoriesFiles");
12
- const findEntityScopes_1 = require("./findEntityScopes");
13
- const generateMetadataFile_1 = require("./generateMetadataFile");
14
- const generatePgEnumFile_1 = require("./generatePgEnumFile");
15
- const symbols_1 = require("./symbols");
16
- const utils_1 = require("./utils");
17
- const docs_1 = require("./docs");
1
+ import { merge, tableToEntityName } from "./utils.js";
2
+ import { generateMetadataDocsFile } from "./docs/generate-metadata-docs.js";
3
+ import { loadEntityDocs, syncDocs } from "./docs/index.js";
4
+ import { findAllEntityScopes } from "./findEntityScopes.js";
5
+ import { generateEntitiesFile } from "./generateEntitiesFile.js";
6
+ import { Entity, JoistEntityManager, configureMetadata, setRuntimeConfig } from "./symbols.js";
7
+ import { generateEntityCodegenFile, getIdType } from "./generateEntityCodegenFile.js";
8
+ import { generateEntityFile } from "./generateEntityFile.js";
9
+ import { generateEntityTestFile } from "./generateEntityTestFile.js";
10
+ import { generateEnumFile } from "./generateEnumFile.js";
11
+ import { generateFactoriesFiles } from "./generateFactoriesFiles.js";
12
+ import { generateColumnDeclarations, generateMetadataFile } from "./generateMetadataFile.js";
13
+ import { generatePgEnumFile } from "./generatePgEnumFile.js";
14
+ import "./index.js";
15
+ import { createRequire } from "node:module";
16
+ import { code, def, imp } from "ts-poet";
17
+ import { readdir } from "fs/promises";
18
+ //#region src/generate.ts
19
+ const runtimeRequire = createRequire(import.meta.url);
18
20
  /** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */
19
21
  async function generateFiles(config, dbMeta) {
20
- const { entities, enums, pgEnums } = dbMeta;
21
- const entityNames = entities.map((meta) => meta.entity.name);
22
- // Find existing entities so that, besides just using `overwrite: false`, we can completely
23
- // skip making test files except for the _first_ time we create an entity. This achieves
24
- // `.history`-like "create once" behavior without the need for the `.history` file.
25
- const files = await readExistingFiles(config);
26
- // Sync documentation: backfill .md from existing JSDocs, then sync MD -> JSDoc
27
- if (config.docs) {
28
- await (0, docs_1.syncDocs)(config.entitiesDirectory, entityNames);
29
- }
30
- const scopeMembersByEntity = await (0, findEntityScopes_1.findAllEntityScopes)(config, entities.map((meta) => meta.entity));
31
- const entityFiles = entities
32
- .map((meta) => {
33
- const entityName = meta.entity.name;
34
- const hasEntityFile = files.includes(`${entityName}.ts`);
35
- return [
36
- {
37
- name: `./codegen/${entityName}Codegen.ts`,
38
- contents: (0, generateEntityCodegenFile_1.generateEntityCodegenFile)(config, dbMeta, meta, scopeMembersByEntity[entityName] ?? []),
39
- overwrite: true,
40
- },
41
- ...(hasEntityFile
42
- ? []
43
- : [
44
- { name: `${entityName}.ts`, contents: (0, generateEntityFile_1.generateEntityFile)(config, meta), overwrite: false },
45
- { name: `${entityName}.test.ts`, contents: (0, generateEntityTestFile_1.generateEntityTestFile)(config, meta), overwrite: false },
46
- ]),
47
- ];
48
- })
49
- .reduce(utils_1.merge, []);
50
- const enumFiles = Object.values(enums)
51
- .map((enumData) => {
52
- const enumName = (0, utils_1.tableToEntityName)(config, enumData.table);
53
- return [
54
- {
55
- name: `./enums/${enumName}.ts`,
56
- contents: (0, generateEnumFile_1.generateEnumFile)(config, enumData, enumName),
57
- overwrite: true,
58
- },
59
- ];
60
- })
61
- .reduce(utils_1.merge, []);
62
- const pgEnumFiles = Object.values(pgEnums)
63
- .map((enumData) => {
64
- return [
65
- {
66
- name: `./enums/${enumData.name}.ts`,
67
- contents: (0, generatePgEnumFile_1.generatePgEnumFile)(config, enumData),
68
- overwrite: true,
69
- },
70
- ];
71
- })
72
- .reduce(utils_1.merge, []);
73
- const contextType = config.contextType ? (0, ts_poet_1.imp)(`t:${config.contextType}`) : "{}";
74
- const txnType = config.transactionType ? (0, ts_poet_1.imp)(`t:${config.transactionType}`) : "unknown";
75
- const metadataFile = {
76
- name: "./codegen/metadata.ts",
77
- contents: (0, ts_poet_1.code) `
78
- ${symbols_1.setRuntimeConfig}({
22
+ const { entities, enums, pgEnums } = dbMeta;
23
+ const entityNames = entities.map((meta) => meta.entity.name);
24
+ const files = await readExistingFiles(config);
25
+ if (config.docs) await syncDocs(config.entitiesDirectory, entityNames);
26
+ const entityDocs = config.docs || config.outputDocs ? await loadEntityDocs(config.entitiesDirectory, entityNames) : {};
27
+ const scopeMembersByEntity = await findAllEntityScopes(config, entities.map((meta) => meta.entity));
28
+ const entityFiles = entities.map((meta) => {
29
+ const entityName = meta.entity.name;
30
+ const hasEntityFile = files.includes(`${entityName}.ts`);
31
+ return [{
32
+ name: `./codegen/${entityName}Codegen.ts`,
33
+ contents: generateEntityCodegenFile(config, dbMeta, meta, scopeMembersByEntity[entityName] ?? [], config.docs ? entityDocs[entityName] : void 0),
34
+ overwrite: true
35
+ }, ...hasEntityFile ? [] : [{
36
+ name: `${entityName}.ts`,
37
+ contents: generateEntityFile(config, meta),
38
+ overwrite: false
39
+ }, {
40
+ name: `${entityName}.test.ts`,
41
+ contents: generateEntityTestFile(config, meta),
42
+ overwrite: false
43
+ }]];
44
+ }).reduce(merge, []);
45
+ const enumFiles = Object.values(enums).map((enumData) => {
46
+ const enumName = tableToEntityName(config, enumData.table);
47
+ return [{
48
+ name: `./enums/${enumName}.ts`,
49
+ contents: generateEnumFile(config, enumData, enumName),
50
+ overwrite: true
51
+ }];
52
+ }).reduce(merge, []);
53
+ const pgEnumFiles = Object.values(pgEnums).map((enumData) => {
54
+ return [{
55
+ name: `./enums/${enumData.name}.ts`,
56
+ contents: generatePgEnumFile(config, enumData),
57
+ overwrite: true
58
+ }];
59
+ }).reduce(merge, []);
60
+ const contextType = config.contextType ? imp(`t:${config.contextType}`) : "{}";
61
+ const txnType = config.transactionType ? imp(`t:${config.transactionType}`) : "unknown";
62
+ const maybeTagDelimiter = config.tagDelimiter === void 0 ? code`` : code`tagDelimiter: ${config.tagDelimiter === "" ? "undefined" : JSON.stringify(config.tagDelimiter)},`;
63
+ const metadataFile = {
64
+ name: "./codegen/metadata.ts",
65
+ contents: code`
66
+ ${setRuntimeConfig}({
79
67
  temporal: ${config.temporal ? { timeZone: typeof config.temporal === "boolean" ? "UTC" : config.temporal.timeZone } : "false"},
68
+ ${maybeTagDelimiter}
80
69
  });
81
70
 
82
- export class ${(0, ts_poet_1.def)("EntityManager")} extends ${symbols_1.JoistEntityManager}<${contextType}, Entity, ${txnType}> {}
71
+ export class ${def("EntityManager")} extends ${JoistEntityManager}<${contextType}, Entity, ${txnType}> {}
83
72
 
84
- export interface ${(0, ts_poet_1.def)("Entity")} extends ${symbols_1.Entity} {
85
- id: ${(0, generateEntityCodegenFile_1.getIdType)(config)};
73
+ export interface ${def("Entity")} extends ${Entity} {
74
+ id: ${getIdType(config)};
86
75
  em: EntityManager;
87
76
  }
88
77
 
89
- ${entities.map((meta) => (0, generateMetadataFile_1.generateMetadataFile)(config, dbMeta, meta))}
78
+ ${entities.map((meta) => generateColumnDeclarations(config, dbMeta, meta))}
79
+ ${entities.map((meta) => generateMetadataFile(config, dbMeta, meta))}
90
80
 
91
81
  export const allMetadata = [${entities.map((meta) => meta.entity.metaName).join(", ")}];
92
- ${symbols_1.configureMetadata}(allMetadata);
82
+ ${configureMetadata}(allMetadata);
93
83
  `,
94
- overwrite: true,
95
- toStringOpts: { dprintOptions: { lineWidth: 400 } },
96
- };
97
- const enumsTables = Object.values(enums)
98
- .map(({ table }) => table)
99
- .sort((a, b) => a.name.localeCompare(b.name));
100
- const entitiesFile = {
101
- name: "./entities.ts",
102
- contents: (0, generateEntitiesFile_1.generateEntitiesFile)(config, entities, enumsTables, Object.values(pgEnums)),
103
- overwrite: true,
104
- toStringOpts: { dprintOptions: { "module.sortExportDeclarations": "maintain" } },
105
- };
106
- const factoriesFiles = (0, generateFactoriesFiles_1.generateFactoriesFiles)(entities);
107
- const esmExt = config.esm ? (config.allowImportingTsExtensions ? ".ts" : ".js") : "";
108
- const indexFile = {
109
- name: "./index.ts",
110
- contents: (0, ts_poet_1.code) `export * from "./entities${esmExt}"`,
111
- overwrite: false,
112
- };
113
- // Look for modules to require and call the exported `.run(Config, DbMeta)` method
114
- const pluginFiles = (await Promise.all((config.codegenPlugins ?? []).map((p) => {
115
- const plugin = require(p);
116
- return plugin.run(config, dbMeta);
117
- }))).flat();
118
- // Generate metadata-docs.ts if enabled
119
- const docsFile = config.outputDocs ? await (0, docs_1.generateMetadataDocsFile)(config, dbMeta) : undefined;
120
- return [
121
- ...entityFiles,
122
- ...enumFiles,
123
- ...pgEnumFiles,
124
- entitiesFile,
125
- ...factoriesFiles,
126
- metadataFile,
127
- ...(docsFile ? [docsFile] : []),
128
- indexFile,
129
- ...pluginFiles,
130
- ];
84
+ overwrite: true,
85
+ toStringOpts: { dprintOptions: { lineWidth: 400 } }
86
+ };
87
+ const enumsTables = Object.values(enums).map(({ table }) => table).sort((a, b) => a.name.localeCompare(b.name));
88
+ const entitiesFile = {
89
+ name: "./entities.ts",
90
+ contents: generateEntitiesFile(config, entities, enumsTables, Object.values(pgEnums)),
91
+ overwrite: true,
92
+ toStringOpts: { dprintOptions: { "module.sortExportDeclarations": "maintain" } }
93
+ };
94
+ const factoriesFiles = generateFactoriesFiles(entities);
95
+ const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
96
+ const indexFile = {
97
+ name: "./index.ts",
98
+ contents: code`export * from "./entities${esmExt}"`,
99
+ overwrite: false
100
+ };
101
+ const pluginFiles = (await Promise.all((config.codegenPlugins ?? []).map((p) => {
102
+ return runtimeRequire(p).run(config, dbMeta);
103
+ }))).flat();
104
+ const docsFile = config.outputDocs ? generateMetadataDocsFile(dbMeta, entityDocs) : void 0;
105
+ return [
106
+ ...entityFiles,
107
+ ...enumFiles,
108
+ ...pgEnumFiles,
109
+ entitiesFile,
110
+ ...factoriesFiles,
111
+ metadataFile,
112
+ ...docsFile ? [docsFile] : [],
113
+ indexFile,
114
+ ...pluginFiles
115
+ ];
131
116
  }
132
117
  /** Reads the `entitiesDirectory` but just ignores if it doesn't exist yet. */
133
118
  async function readExistingFiles(config) {
134
- try {
135
- return await (0, promises_1.readdir)(config.entitiesDirectory);
136
- }
137
- catch (e) {
138
- return [];
139
- }
119
+ try {
120
+ return await readdir(config.entitiesDirectory);
121
+ } catch (e) {
122
+ return [];
123
+ }
140
124
  }
125
+ //#endregion
126
+ export { generateFiles };
127
+
141
128
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","names":[],"sources":["../src/generate.ts"],"sourcesContent":["import { readdir } from \"fs/promises\";\nimport { createRequire } from \"node:module\";\n\nimport { type CodegenFile, code, def, imp } from \"ts-poet\";\n\nimport { generateMetadataDocsFile, loadEntityDocs, syncDocs } from \"./docs/index.ts\";\nimport { findAllEntityScopes } from \"./findEntityScopes.ts\";\nimport { generateEntitiesFile } from \"./generateEntitiesFile.ts\";\nimport { generateEntityCodegenFile, getIdType } from \"./generateEntityCodegenFile.ts\";\nimport { generateEntityFile } from \"./generateEntityFile.ts\";\nimport { generateEntityTestFile } from \"./generateEntityTestFile.ts\";\nimport { generateEnumFile } from \"./generateEnumFile.ts\";\nimport { generateFactoriesFiles } from \"./generateFactoriesFiles.ts\";\nimport { generateColumnDeclarations, generateMetadataFile } from \"./generateMetadataFile.ts\";\nimport { generatePgEnumFile } from \"./generatePgEnumFile.ts\";\nimport { type Config, type DbMetadata } from \"./index.ts\";\nimport { Entity, JoistEntityManager, configureMetadata, setRuntimeConfig } from \"./symbols.ts\";\nimport { merge, tableToEntityName } from \"./utils.ts\";\n\nconst runtimeRequire = createRequire(import.meta.url);\n\nexport type DPrintOptions = Record<string, unknown>;\n\n/**\n * Provides an API for hooking into the codegen build step.\n */\nexport interface CodegenPlugin {\n run(config: Config, dbMeta: DbMetadata): Promise<CodegenFile>;\n}\n\n/** Generates our `${Entity}` and `${Entity}Codegen` files based on the `db` schema. */\nexport async function generateFiles(config: Config, dbMeta: DbMetadata): Promise<CodegenFile[]> {\n const { entities, enums, pgEnums } = dbMeta;\n const entityNames = entities.map((meta) => meta.entity.name);\n\n // Find existing entities so that, besides just using `overwrite: false`, we can completely\n // skip making test files except for the _first_ time we create an entity. This achieves\n // `.history`-like \"create once\" behavior without the need for the `.history` file.\n const files = await readExistingFiles(config);\n\n // Sync documentation: backfill .md from existing JSDocs, then sync MD -> JSDoc\n if (config.docs) {\n await syncDocs(config.entitiesDirectory, entityNames);\n }\n\n // Load the .md docs once (post-sync) to inject into codegen JSDocs and the runtime metadata-docs.ts\n const entityDocs =\n config.docs || config.outputDocs ? await loadEntityDocs(config.entitiesDirectory, entityNames) : {};\n\n const scopeMembersByEntity = await findAllEntityScopes(\n config,\n entities.map((meta) => meta.entity),\n );\n\n const entityFiles = entities\n .map((meta) => {\n const entityName = meta.entity.name;\n const hasEntityFile = files.includes(`${entityName}.ts`);\n return [\n {\n name: `./codegen/${entityName}Codegen.ts`,\n contents: generateEntityCodegenFile(\n config,\n dbMeta,\n meta,\n scopeMembersByEntity[entityName] ?? [],\n config.docs ? entityDocs[entityName] : undefined,\n ),\n overwrite: true,\n },\n ...(hasEntityFile\n ? []\n : [\n { name: `${entityName}.ts`, contents: generateEntityFile(config, meta), overwrite: false },\n { name: `${entityName}.test.ts`, contents: generateEntityTestFile(config, meta), overwrite: false },\n ]),\n ];\n })\n .reduce(merge, []);\n\n const enumFiles = Object.values(enums)\n .map((enumData) => {\n const enumName = tableToEntityName(config, enumData.table);\n return [\n {\n name: `./enums/${enumName}.ts`,\n contents: generateEnumFile(config, enumData, enumName),\n overwrite: true,\n },\n ];\n })\n .reduce(merge, []);\n const pgEnumFiles = Object.values(pgEnums)\n .map((enumData) => {\n return [\n {\n name: `./enums/${enumData.name}.ts`,\n contents: generatePgEnumFile(config, enumData),\n overwrite: true,\n },\n ];\n })\n .reduce(merge, []);\n\n const contextType = config.contextType ? imp(`t:${config.contextType}`) : \"{}\";\n const txnType = config.transactionType ? imp(`t:${config.transactionType}`) : \"unknown\";\n const maybeTagDelimiter =\n config.tagDelimiter === undefined\n ? code``\n : code`tagDelimiter: ${config.tagDelimiter === \"\" ? \"undefined\" : JSON.stringify(config.tagDelimiter)},`;\n\n const metadataFile: CodegenFile = {\n name: \"./codegen/metadata.ts\",\n contents: code`\n ${setRuntimeConfig}({\n temporal: ${config.temporal ? { timeZone: typeof config.temporal === \"boolean\" ? \"UTC\" : config.temporal.timeZone } : \"false\"},\n ${maybeTagDelimiter}\n });\n \n export class ${def(\"EntityManager\")} extends ${JoistEntityManager}<${contextType}, Entity, ${txnType}> {}\n\n export interface ${def(\"Entity\")} extends ${Entity} {\n id: ${getIdType(config)};\n em: EntityManager;\n }\n\n ${entities.map((meta) => generateColumnDeclarations(config, dbMeta, meta))}\n ${entities.map((meta) => generateMetadataFile(config, dbMeta, meta))}\n\n export const allMetadata = [${entities.map((meta) => meta.entity.metaName).join(\", \")}];\n ${configureMetadata}(allMetadata);\n `,\n overwrite: true,\n toStringOpts: { dprintOptions: { lineWidth: 400 } },\n };\n\n const enumsTables = Object.values(enums)\n .map(({ table }) => table)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const entitiesFile: CodegenFile = {\n name: \"./entities.ts\",\n contents: generateEntitiesFile(config, entities, enumsTables, Object.values(pgEnums)),\n overwrite: true,\n toStringOpts: { dprintOptions: { \"module.sortExportDeclarations\": \"maintain\" } },\n };\n\n const factoriesFiles: CodegenFile[] = generateFactoriesFiles(entities);\n\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n const indexFile: CodegenFile = {\n name: \"./index.ts\",\n contents: code`export * from \"./entities${esmExt}\"`,\n overwrite: false,\n };\n\n // Look for modules to require and call the exported `.run(Config, DbMeta)` method\n const pluginFiles: CodegenFile[] = (\n await Promise.all(\n (config.codegenPlugins ?? []).map((p) => {\n const plugin = runtimeRequire(p) as CodegenPlugin;\n return plugin.run(config, dbMeta);\n }),\n )\n ).flat();\n\n // Generate metadata-docs.ts if enabled\n const docsFile = config.outputDocs ? generateMetadataDocsFile(dbMeta, entityDocs) : undefined;\n\n return [\n ...entityFiles,\n ...enumFiles,\n ...pgEnumFiles,\n entitiesFile,\n ...factoriesFiles,\n metadataFile,\n ...(docsFile ? [docsFile] : []),\n indexFile,\n ...pluginFiles,\n ];\n}\n\n/** Reads the `entitiesDirectory` but just ignores if it doesn't exist yet. */\nasync function readExistingFiles(config: Config): Promise<string[]> {\n try {\n return await readdir(config.entitiesDirectory);\n } catch (e) {\n return [];\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils = require("./utils.cjs");
3
+ require("./config.cjs");
4
+ require("./index.cjs");
5
+ require("./EntityDbMetadata.cjs");
6
+ require("pg-structure");
7
+ let ts_poet = require("ts-poet");
8
+ //#region src/generateEntitiesFile.ts
9
+ function generateEntitiesFile(config, entities, enums, pgEnums) {
10
+ const baseClasses = entities.filter((e) => e.baseClassName === void 0);
11
+ const subClasses = entities.filter((e) => e.baseClassName !== void 0);
12
+ const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
13
+ return ts_poet.code`
14
+ // organize-imports-ignore
15
+
16
+ // This file drives our import order to avoid undefined errors
17
+ // when the subclasses extend the base classes, see:
18
+ // https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de
19
+ ${enums.map((table) => {
20
+ return `export * from "./enums/${require_utils.tableToEntityName(config, table)}${esmExt}";`;
21
+ })}
22
+ ${pgEnums.map((meta) => {
23
+ return `export * from "./enums/${meta.name}${esmExt}";`;
24
+ })}
25
+ ${baseClasses.map((meta) => {
26
+ return `export * from "./codegen/${meta.entity.name}Codegen${esmExt}";`;
27
+ })}
28
+ ${baseClasses.map((meta) => {
29
+ return `export * from "./${meta.entity.name}${esmExt}";`;
30
+ })}
31
+ ${subClasses.map((meta) => {
32
+ return `export * from "./codegen/${meta.entity.name}Codegen${esmExt}";`;
33
+ })}
34
+ ${subClasses.map((meta) => {
35
+ return `export * from "./${meta.entity.name}${esmExt}";`;
36
+ })}
37
+ ${entities.map(({ entity }) => {
38
+ return `export * from "./factories/new${entity.name}${esmExt}";`;
39
+ })}
40
+ export * from "./codegen/metadata${esmExt}";
41
+ `;
42
+ }
43
+ //#endregion
44
+ exports.generateEntitiesFile = generateEntitiesFile;
45
+
46
+ //# sourceMappingURL=generateEntitiesFile.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEntitiesFile.cjs","names":["tableToEntityName"],"sources":["../src/generateEntitiesFile.ts"],"sourcesContent":["import { type Table } from \"pg-structure\";\nimport { type Code, code } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EntityDbMetadata } from \"./EntityDbMetadata.ts\";\nimport { type PgEnumData } from \"./index.ts\";\nimport { tableToEntityName } from \"./utils.ts\";\n\nexport function generateEntitiesFile(\n config: Config,\n entities: EntityDbMetadata[],\n enums: Table[],\n pgEnums: PgEnumData[],\n): Code {\n // Output base types before subtypes, so that `class SmallPublisherCodegen extends Publisher` can\n // immediately resolve the `Publisher` symbol. Assume only 1 level of inheritance for now.\n const baseClasses = entities.filter((e) => e.baseClassName === undefined);\n const subClasses = entities.filter((e) => e.baseClassName !== undefined);\n\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n\n return code`\n // organize-imports-ignore\n\n // This file drives our import order to avoid undefined errors\n // when the subclasses extend the base classes, see:\n // https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de\n ${enums.map((table) => {\n return `export * from \"./enums/${tableToEntityName(config, table)}${esmExt}\";`;\n })}\n ${pgEnums.map((meta) => {\n return `export * from \"./enums/${meta.name}${esmExt}\";`;\n })}\n ${baseClasses.map((meta) => {\n return `export * from \"./codegen/${meta.entity.name}Codegen${esmExt}\";`;\n })}\n ${baseClasses.map((meta) => {\n return `export * from \"./${meta.entity.name}${esmExt}\";`;\n })}\n ${subClasses.map((meta) => {\n return `export * from \"./codegen/${meta.entity.name}Codegen${esmExt}\";`;\n })}\n ${subClasses.map((meta) => {\n return `export * from \"./${meta.entity.name}${esmExt}\";`;\n })}\n ${entities.map(({ entity }) => {\n return `export * from \"./factories/new${entity.name}${esmExt}\";`;\n })}\n export * from \"./codegen/metadata${esmExt}\";\n `;\n}\n"],"mappings":";;;;;;;;AAQA,SAAgB,qBACd,QACA,UACA,OACA,SACM;CAGN,MAAM,cAAc,SAAS,QAAQ,MAAM,EAAE,kBAAkB,KAAA,CAAS;CACxE,MAAM,aAAa,SAAS,QAAQ,MAAM,EAAE,kBAAkB,KAAA,CAAS;CAEvE,MAAM,SAAS,OAAO,MAAO,OAAO,6BAA6B,QAAQ,QAAS;CAElF,OAAO,QAAA,IAAI;;;;;;MAMP,MAAM,KAAK,UAAU;EACrB,OAAO,0BAA0BA,cAAAA,kBAAkB,QAAQ,KAAK,IAAI,OAAO;CAC7E,CAAC,EAAE;MACD,QAAQ,KAAK,SAAS;EACtB,OAAO,0BAA0B,KAAK,OAAO,OAAO;CACtD,CAAC,EAAE;MACD,YAAY,KAAK,SAAS;EAC1B,OAAO,4BAA4B,KAAK,OAAO,KAAK,SAAS,OAAO;CACtE,CAAC,EAAE;MACD,YAAY,KAAK,SAAS;EAC1B,OAAO,oBAAoB,KAAK,OAAO,OAAO,OAAO;CACvD,CAAC,EAAE;MACD,WAAW,KAAK,SAAS;EACzB,OAAO,4BAA4B,KAAK,OAAO,KAAK,SAAS,OAAO;CACtE,CAAC,EAAE;MACD,WAAW,KAAK,SAAS;EACzB,OAAO,oBAAoB,KAAK,OAAO,OAAO,OAAO;CACvD,CAAC,EAAE;MACD,SAAS,KAAK,EAAE,aAAa;EAC7B,OAAO,iCAAiC,OAAO,OAAO,OAAO;CAC/D,CAAC,EAAE;uCACgC,OAAO;;AAE9C"}
@@ -0,0 +1,11 @@
1
+ import { Config } from "./config.cjs";
2
+ import "./index.cjs";
3
+ import { PgEnumData } from "./loadMetadata.cjs";
4
+ import { EntityDbMetadata } from "./EntityDbMetadata.cjs";
5
+ import { Table } from "pg-structure";
6
+ import { Code } from "ts-poet";
7
+ //#region src/generateEntitiesFile.d.ts
8
+ declare function generateEntitiesFile(config: Config, entities: EntityDbMetadata[], enums: Table[], pgEnums: PgEnumData[]): Code;
9
+ //#endregion
10
+ export { generateEntitiesFile };
11
+ //# sourceMappingURL=generateEntitiesFile.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEntitiesFile.d.cts","names":[],"sources":["../src/generateEntitiesFile.ts"],"mappings":";;;;;;;iBAQgB,qBACd,QAAQ,QACR,UAAU,oBACV,OAAO,SACP,SAAS,eACR"}
@@ -0,0 +1,11 @@
1
+ import { Config } from "./config.mjs";
2
+ import "./index.mjs";
3
+ import { PgEnumData } from "./loadMetadata.mjs";
4
+ import { EntityDbMetadata } from "./EntityDbMetadata.mjs";
5
+ import { Table } from "pg-structure";
6
+ import { Code } from "ts-poet";
7
+ //#region src/generateEntitiesFile.d.ts
8
+ declare function generateEntitiesFile(config: Config, entities: EntityDbMetadata[], enums: Table[], pgEnums: PgEnumData[]): Code;
9
+ //#endregion
10
+ export { generateEntitiesFile };
11
+ //# sourceMappingURL=generateEntitiesFile.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEntitiesFile.d.mts","names":[],"sources":["../src/generateEntitiesFile.ts"],"mappings":";;;;;;;iBAQgB,qBACd,QAAQ,QACR,UAAU,oBACV,OAAO,SACP,SAAS,eACR"}