joist-codegen 2.3.0-next.7 → 2.3.0-next.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/EntityDbMetadata.cjs +642 -0
- package/build/EntityDbMetadata.cjs.map +1 -0
- package/build/EntityDbMetadata.d.cts +299 -0
- package/build/EntityDbMetadata.d.cts.map +1 -0
- package/build/EntityDbMetadata.d.mts +299 -0
- package/build/EntityDbMetadata.d.mts.map +1 -0
- package/build/EntityDbMetadata.js +519 -661
- package/build/EntityDbMetadata.js.map +1 -1
- package/build/_virtual/_rolldown/runtime.cjs +23 -0
- package/build/_virtual/_rolldown/runtime.js +5 -0
- package/build/assignTags.cjs +45 -0
- package/build/assignTags.cjs.map +1 -0
- package/build/{assignTags.d.ts → assignTags.d.cts} +8 -4
- package/build/assignTags.d.cts.map +1 -0
- package/build/assignTags.d.mts +16 -0
- package/build/assignTags.d.mts.map +1 -0
- package/build/assignTags.js +37 -59
- package/build/assignTags.js.map +1 -1
- package/build/codemods/Codemod.cjs +2 -0
- package/build/codemods/Codemod.d.cts +17 -0
- package/build/codemods/Codemod.d.cts.map +1 -0
- package/build/codemods/Codemod.d.mts +17 -0
- package/build/codemods/Codemod.d.mts.map +1 -0
- package/build/codemods/Codemod.js +2 -3
- package/build/codemods/JscodeshiftMod.cjs +42 -0
- package/build/codemods/JscodeshiftMod.cjs.map +1 -0
- package/build/codemods/JscodeshiftMod.d.cts +14 -0
- package/build/codemods/JscodeshiftMod.d.cts.map +1 -0
- package/build/codemods/JscodeshiftMod.d.mts +14 -0
- package/build/codemods/JscodeshiftMod.d.mts.map +1 -0
- package/build/codemods/JscodeshiftMod.js +33 -33
- package/build/codemods/JscodeshiftMod.js.map +1 -1
- package/build/codemods/codemod_0001-rename_has_async_property.cjs +30 -0
- package/build/codemods/codemod_0001-rename_has_async_property.cjs.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.cts +9 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.cts.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.mts +9 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.mts.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.js +21 -25
- package/build/codemods/codemod_0001-rename_has_async_property.js.map +1 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.cjs +50 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.cjs.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.cts +9 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.cts.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.mts +9 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.mts.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.js +38 -52
- package/build/codemods/codemod_0002-rename_async_query_fields.js.map +1 -1
- package/build/codemods/codemod_0003-rename_find_paginated.cjs +25 -0
- package/build/codemods/codemod_0003-rename_find_paginated.cjs.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.cts +9 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.cts.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.mts +9 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.mts.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.js +17 -26
- package/build/codemods/codemod_0003-rename_find_paginated.js.map +1 -1
- package/build/codemods/index.cjs +49 -0
- package/build/codemods/index.cjs.map +1 -0
- package/build/codemods/index.d.cts +12 -0
- package/build/codemods/index.d.cts.map +1 -0
- package/build/codemods/index.d.mts +12 -0
- package/build/codemods/index.d.mts.map +1 -0
- package/build/codemods/index.js +34 -42
- package/build/codemods/index.js.map +1 -1
- package/build/config.cjs +377 -0
- package/build/config.cjs.map +1 -0
- package/build/config.d.cts +181 -0
- package/build/config.d.cts.map +1 -0
- package/build/config.d.mts +181 -0
- package/build/config.d.mts.map +1 -0
- package/build/config.js +309 -347
- package/build/config.js.map +1 -1
- package/build/docs/cache.cjs +62 -0
- package/build/docs/cache.cjs.map +1 -0
- package/build/docs/cache.d.cts +17 -0
- package/build/docs/cache.d.cts.map +1 -0
- package/build/docs/cache.d.mts +17 -0
- package/build/docs/cache.d.mts.map +1 -0
- package/build/docs/cache.js +52 -53
- package/build/docs/cache.js.map +1 -1
- package/build/docs/generate-metadata-docs.cjs +32 -0
- package/build/docs/generate-metadata-docs.cjs.map +1 -0
- package/build/docs/generate-metadata-docs.d.cts +9 -0
- package/build/docs/generate-metadata-docs.d.cts.map +1 -0
- package/build/docs/generate-metadata-docs.d.mts +9 -0
- package/build/docs/generate-metadata-docs.d.mts.map +1 -0
- package/build/docs/generate-metadata-docs.js +19 -24
- package/build/docs/generate-metadata-docs.js.map +1 -1
- package/build/docs/index.cjs +90 -0
- package/build/docs/index.cjs.map +1 -0
- package/build/docs/index.d.cts +16 -0
- package/build/docs/index.d.cts.map +1 -0
- package/build/docs/index.d.mts +16 -0
- package/build/docs/index.d.mts.map +1 -0
- package/build/docs/index.js +75 -80
- package/build/docs/index.js.map +1 -1
- package/build/docs/markdown.cjs +181 -0
- package/build/docs/markdown.cjs.map +1 -0
- package/build/docs/{markdown.d.ts → markdown.d.cts} +14 -12
- package/build/docs/markdown.d.cts.map +1 -0
- package/build/docs/markdown.d.mts +32 -0
- package/build/docs/markdown.d.mts.map +1 -0
- package/build/docs/markdown.js +152 -220
- package/build/docs/markdown.js.map +1 -1
- package/build/docs/parsing.cjs +117 -0
- package/build/docs/parsing.cjs.map +1 -0
- package/build/docs/parsing.d.cts +48 -0
- package/build/docs/parsing.d.cts.map +1 -0
- package/build/docs/parsing.d.mts +48 -0
- package/build/docs/parsing.d.mts.map +1 -0
- package/build/docs/parsing.js +89 -88
- package/build/docs/parsing.js.map +1 -1
- package/build/findEntityScopes.cjs +119 -0
- package/build/findEntityScopes.cjs.map +1 -0
- package/build/findEntityScopes.d.cts +14 -0
- package/build/findEntityScopes.d.cts.map +1 -0
- package/build/findEntityScopes.d.mts +14 -0
- package/build/findEntityScopes.d.mts.map +1 -0
- package/build/findEntityScopes.js +83 -111
- package/build/findEntityScopes.js.map +1 -1
- package/build/foreignKeyOrdering.cjs +52 -0
- package/build/foreignKeyOrdering.cjs.map +1 -0
- package/build/foreignKeyOrdering.d.cts +8 -0
- package/build/foreignKeyOrdering.d.cts.map +1 -0
- package/build/foreignKeyOrdering.d.mts +8 -0
- package/build/foreignKeyOrdering.d.mts.map +1 -0
- package/build/foreignKeyOrdering.js +46 -55
- package/build/foreignKeyOrdering.js.map +1 -1
- package/build/generate.cjs +128 -0
- package/build/generate.cjs.map +1 -0
- package/build/generate.d.cts +17 -0
- package/build/generate.d.cts.map +1 -0
- package/build/generate.d.mts +17 -0
- package/build/generate.d.mts.map +1 -0
- package/build/generate.js +111 -124
- package/build/generate.js.map +1 -1
- package/build/generateEntitiesFile.cjs +46 -0
- package/build/generateEntitiesFile.cjs.map +1 -0
- package/build/generateEntitiesFile.d.cts +11 -0
- package/build/generateEntitiesFile.d.cts.map +1 -0
- package/build/generateEntitiesFile.d.mts +11 -0
- package/build/generateEntitiesFile.d.mts.map +1 -0
- package/build/generateEntitiesFile.js +28 -25
- package/build/generateEntitiesFile.js.map +1 -1
- package/build/generateEntityCodegenFile.cjs +1009 -0
- package/build/generateEntityCodegenFile.cjs.map +1 -0
- package/build/generateEntityCodegenFile.d.cts +16 -0
- package/build/generateEntityCodegenFile.d.cts.map +1 -0
- package/build/generateEntityCodegenFile.d.mts +16 -0
- package/build/generateEntityCodegenFile.d.mts.map +1 -0
- package/build/generateEntityCodegenFile.js +792 -827
- package/build/generateEntityCodegenFile.js.map +1 -1
- package/build/generateEntityFile.cjs +23 -0
- package/build/generateEntityFile.cjs.map +1 -0
- package/build/generateEntityFile.d.cts +9 -0
- package/build/generateEntityFile.d.cts.map +1 -0
- package/build/generateEntityFile.d.mts +9 -0
- package/build/generateEntityFile.d.mts.map +1 -0
- package/build/generateEntityFile.js +11 -8
- package/build/generateEntityFile.js.map +1 -1
- package/build/generateEntityTestFile.cjs +25 -0
- package/build/generateEntityTestFile.cjs.map +1 -0
- package/build/generateEntityTestFile.d.cts +9 -0
- package/build/generateEntityTestFile.d.cts.map +1 -0
- package/build/generateEntityTestFile.d.mts +9 -0
- package/build/generateEntityTestFile.d.mts.map +1 -0
- package/build/generateEntityTestFile.js +10 -7
- package/build/generateEntityTestFile.js.map +1 -1
- package/build/generateEnumFile.cjs +73 -0
- package/build/generateEnumFile.cjs.map +1 -0
- package/build/generateEnumFile.d.cts +9 -0
- package/build/generateEnumFile.d.cts.map +1 -0
- package/build/generateEnumFile.d.mts +9 -0
- package/build/generateEnumFile.d.mts.map +1 -0
- package/build/generateEnumFile.js +33 -43
- package/build/generateEnumFile.js.map +1 -1
- package/build/generateFactoriesFiles.cjs +28 -0
- package/build/generateFactoriesFiles.cjs.map +1 -0
- package/build/generateFactoriesFiles.d.cts +7 -0
- package/build/generateFactoriesFiles.d.cts.map +1 -0
- package/build/generateFactoriesFiles.d.mts +7 -0
- package/build/generateFactoriesFiles.d.mts.map +1 -0
- package/build/generateFactoriesFiles.js +21 -16
- package/build/generateFactoriesFiles.js.map +1 -1
- package/build/generateFlushFunction.cjs +61 -0
- package/build/generateFlushFunction.cjs.map +1 -0
- package/build/{generateFlushFunction.d.ts → generateFlushFunction.d.cts} +8 -5
- package/build/generateFlushFunction.d.cts.map +1 -0
- package/build/generateFlushFunction.d.mts +23 -0
- package/build/generateFlushFunction.d.mts.map +1 -0
- package/build/generateFlushFunction.js +32 -78
- package/build/generateFlushFunction.js.map +1 -1
- package/build/generateMetadataFile.cjs +307 -0
- package/build/generateMetadataFile.cjs.map +1 -0
- package/build/generateMetadataFile.d.cts +10 -0
- package/build/generateMetadataFile.d.cts.map +1 -0
- package/build/generateMetadataFile.d.mts +10 -0
- package/build/generateMetadataFile.d.mts.map +1 -0
- package/build/generateMetadataFile.js +148 -156
- package/build/generateMetadataFile.js.map +1 -1
- package/build/generatePgEnumFile.cjs +21 -0
- package/build/generatePgEnumFile.cjs.map +1 -0
- package/build/generatePgEnumFile.d.cts +9 -0
- package/build/generatePgEnumFile.d.cts.map +1 -0
- package/build/generatePgEnumFile.d.mts +9 -0
- package/build/generatePgEnumFile.d.mts.map +1 -0
- package/build/generatePgEnumFile.js +12 -9
- package/build/generatePgEnumFile.js.map +1 -1
- package/build/index.cjs +135 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.cts +12 -0
- package/build/index.d.cts.map +1 -0
- package/build/index.d.mts +12 -0
- package/build/index.d.mts.map +1 -0
- package/build/index.js +108 -127
- package/build/index.js.map +1 -1
- package/build/inheritance.cjs +241 -0
- package/build/inheritance.cjs.map +1 -0
- package/build/inheritance.d.cts +13 -0
- package/build/inheritance.d.cts.map +1 -0
- package/build/inheritance.d.mts +13 -0
- package/build/inheritance.d.mts.map +1 -0
- package/build/inheritance.js +221 -247
- package/build/inheritance.js.map +1 -1
- package/build/installSkills.cjs +68 -0
- package/build/installSkills.cjs.map +1 -0
- package/build/installSkills.d.cts +16 -0
- package/build/installSkills.d.cts.map +1 -0
- package/build/installSkills.d.mts +16 -0
- package/build/installSkills.d.mts.map +1 -0
- package/build/installSkills.js +67 -0
- package/build/installSkills.js.map +1 -0
- package/build/keywords.cjs +7 -0
- package/build/keywords.cjs.map +1 -0
- package/build/keywords.d.cts +5 -0
- package/build/keywords.d.cts.map +1 -0
- package/build/keywords.d.mts +5 -0
- package/build/keywords.d.mts.map +1 -0
- package/build/keywords.js +5 -4
- package/build/keywords.js.map +1 -1
- package/build/loadMetadata.cjs +39 -0
- package/build/loadMetadata.cjs.map +1 -0
- package/build/loadMetadata.d.cts +31 -0
- package/build/loadMetadata.d.cts.map +1 -0
- package/build/loadMetadata.d.mts +31 -0
- package/build/loadMetadata.d.mts.map +1 -0
- package/build/loadMetadata.js +32 -39
- package/build/loadMetadata.js.map +1 -1
- package/build/logger.cjs +28 -0
- package/build/logger.cjs.map +1 -0
- package/build/logger.d.cts +13 -0
- package/build/logger.d.cts.map +1 -0
- package/build/logger.d.mts +13 -0
- package/build/logger.d.mts.map +1 -0
- package/build/logger.js +17 -16
- package/build/logger.js.map +1 -1
- package/build/scanEntityFiles.cjs +46 -0
- package/build/scanEntityFiles.cjs.map +1 -0
- package/build/scanEntityFiles.d.cts +8 -0
- package/build/scanEntityFiles.d.cts.map +1 -0
- package/build/scanEntityFiles.d.mts +8 -0
- package/build/scanEntityFiles.d.mts.map +1 -0
- package/build/scanEntityFiles.js +37 -42
- package/build/scanEntityFiles.js.map +1 -1
- package/build/sortForeignKeys.cjs +99 -0
- package/build/sortForeignKeys.cjs.map +1 -0
- package/build/{sortForeignKeys.d.ts → sortForeignKeys.d.cts} +8 -5
- package/build/sortForeignKeys.d.cts.map +1 -0
- package/build/sortForeignKeys.d.mts +35 -0
- package/build/sortForeignKeys.d.mts.map +1 -0
- package/build/sortForeignKeys.js +88 -117
- package/build/sortForeignKeys.js.map +1 -1
- package/build/symbols.cjs +238 -0
- package/build/symbols.cjs.map +1 -0
- package/build/symbols.d.cts +120 -0
- package/build/symbols.d.cts.map +1 -0
- package/build/symbols.d.mts +120 -0
- package/build/symbols.d.mts.map +1 -0
- package/build/symbols.js +121 -113
- package/build/symbols.js.map +1 -1
- package/build/tsdoc.cjs +22 -0
- package/build/tsdoc.cjs.map +1 -0
- package/build/tsdoc.d.cts +15 -0
- package/build/tsdoc.d.cts.map +1 -0
- package/build/tsdoc.d.mts +15 -0
- package/build/tsdoc.d.mts.map +1 -0
- package/build/tsdoc.js +18 -15
- package/build/tsdoc.js.map +1 -1
- package/build/utils.cjs +173 -0
- package/build/utils.cjs.map +1 -0
- package/build/utils.d.cts +34 -0
- package/build/utils.d.cts.map +1 -0
- package/build/utils.d.mts +34 -0
- package/build/utils.d.mts.map +1 -0
- package/build/utils.js +112 -166
- package/build/utils.js.map +1 -1
- package/build/write-json-schema.cjs +23 -0
- package/build/write-json-schema.cjs.map +1 -0
- package/build/write-json-schema.d.cts +1 -0
- package/build/write-json-schema.d.mts +1 -0
- package/build/write-json-schema.js +19 -13
- package/build/write-json-schema.js.map +1 -1
- package/package.json +37 -17
- package/skills/joist-docs/SKILL.md +133 -0
- package/skills/joist-em-basics/SKILL.md +114 -0
- package/skills/joist-partial-updates/SKILL.md +352 -0
- package/skills/joist-reactive-hints/SKILL.md +150 -0
- package/skills/joist-test-factories/SKILL.md +397 -0
- package/skills/joist-upsert/SKILL.md +95 -0
- package/build/EntityDbMetadata.d.ts +0 -269
- package/build/EntityDbMetadata.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.d.ts +0 -2
- package/build/EntityDbMetadata.test.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.js +0 -211
- package/build/EntityDbMetadata.test.js.map +0 -1
- package/build/assignTags.d.ts.map +0 -1
- package/build/codemods/Codemod.d.ts +0 -14
- package/build/codemods/Codemod.d.ts.map +0 -1
- package/build/codemods/Codemod.js.map +0 -1
- package/build/codemods/JscodeshiftMod.d.ts +0 -11
- package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -7
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -7
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -7
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
- package/build/codemods/index.d.ts +0 -9
- package/build/codemods/index.d.ts.map +0 -1
- package/build/codemods/index.test.d.ts +0 -2
- package/build/codemods/index.test.d.ts.map +0 -1
- package/build/codemods/index.test.js +0 -24
- package/build/codemods/index.test.js.map +0 -1
- package/build/config.d.ts +0 -167
- package/build/config.d.ts.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -78
- package/build/config.test.js.map +0 -1
- package/build/docs/cache.d.ts +0 -14
- package/build/docs/cache.d.ts.map +0 -1
- package/build/docs/cache.test.d.ts +0 -2
- package/build/docs/cache.test.d.ts.map +0 -1
- package/build/docs/cache.test.js +0 -47
- package/build/docs/cache.test.js.map +0 -1
- package/build/docs/generate-metadata-docs.d.ts +0 -6
- package/build/docs/generate-metadata-docs.d.ts.map +0 -1
- package/build/docs/index.d.ts +0 -9
- package/build/docs/index.d.ts.map +0 -1
- package/build/docs/index.test.d.ts +0 -2
- package/build/docs/index.test.d.ts.map +0 -1
- package/build/docs/index.test.js +0 -100
- package/build/docs/index.test.js.map +0 -1
- package/build/docs/markdown.d.ts.map +0 -1
- package/build/docs/markdown.test.d.ts +0 -2
- package/build/docs/markdown.test.d.ts.map +0 -1
- package/build/docs/markdown.test.js +0 -280
- package/build/docs/markdown.test.js.map +0 -1
- package/build/docs/parsing.d.ts +0 -42
- package/build/docs/parsing.d.ts.map +0 -1
- package/build/docs/parsing.test.d.ts +0 -2
- package/build/docs/parsing.test.d.ts.map +0 -1
- package/build/docs/parsing.test.js +0 -190
- package/build/docs/parsing.test.js.map +0 -1
- package/build/findEntityScopes.d.ts +0 -11
- package/build/findEntityScopes.d.ts.map +0 -1
- package/build/foreignKeyOrdering.d.ts +0 -3
- package/build/foreignKeyOrdering.d.ts.map +0 -1
- package/build/generate.d.ts +0 -12
- package/build/generate.d.ts.map +0 -1
- package/build/generateEntitiesFile.d.ts +0 -7
- package/build/generateEntitiesFile.d.ts.map +0 -1
- package/build/generateEntityCodegenFile.d.ts +0 -11
- package/build/generateEntityCodegenFile.d.ts.map +0 -1
- package/build/generateEntityFile.d.ts +0 -6
- package/build/generateEntityFile.d.ts.map +0 -1
- package/build/generateEntityTestFile.d.ts +0 -6
- package/build/generateEntityTestFile.d.ts.map +0 -1
- package/build/generateEnumFile.d.ts +0 -5
- package/build/generateEnumFile.d.ts.map +0 -1
- package/build/generateFactoriesFiles.d.ts +0 -4
- package/build/generateFactoriesFiles.d.ts.map +0 -1
- package/build/generateFlushFunction.d.ts.map +0 -1
- package/build/generateMetadataFile.d.ts +0 -5
- package/build/generateMetadataFile.d.ts.map +0 -1
- package/build/generatePgEnumFile.d.ts +0 -5
- package/build/generatePgEnumFile.d.ts.map +0 -1
- package/build/index.d.ts +0 -11
- package/build/index.d.ts.map +0 -1
- package/build/inheritance.d.ts +0 -10
- package/build/inheritance.d.ts.map +0 -1
- package/build/keywords.d.ts +0 -2
- package/build/keywords.d.ts.map +0 -1
- package/build/loadMetadata.d.ts +0 -26
- package/build/loadMetadata.d.ts.map +0 -1
- package/build/logger.d.ts +0 -10
- package/build/logger.d.ts.map +0 -1
- package/build/scanEntityFiles.d.ts +0 -5
- package/build/scanEntityFiles.d.ts.map +0 -1
- package/build/sortForeignKeys.d.ts.map +0 -1
- package/build/symbols.d.ts +0 -108
- package/build/symbols.d.ts.map +0 -1
- package/build/tsdoc.d.ts +0 -12
- package/build/tsdoc.d.ts.map +0 -1
- package/build/utils.d.ts +0 -31
- package/build/utils.d.ts.map +0 -1
- package/build/write-json-schema.d.ts +0 -2
- 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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 ${
|
|
71
|
+
export class ${def("EntityManager")} extends ${JoistEntityManager}<${contextType}, Entity, ${txnType}> {}
|
|
83
72
|
|
|
84
|
-
export interface ${
|
|
85
|
-
id: ${
|
|
73
|
+
export interface ${def("Entity")} extends ${Entity} {
|
|
74
|
+
id: ${getIdType(config)};
|
|
86
75
|
em: EntityManager;
|
|
87
76
|
}
|
|
88
77
|
|
|
89
|
-
${entities.map((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
|
-
${
|
|
82
|
+
${configureMetadata}(allMetadata);
|
|
93
83
|
`,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
package/build/generate.js.map
CHANGED
|
@@ -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"}
|