kysely-kodegen 0.18.6

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 (281) hide show
  1. package/.cspell.json +88 -0
  2. package/.github/FUNDING.yml +1 -0
  3. package/.kysely-codegenrc.ts +30 -0
  4. package/.ncurc.json +3 -0
  5. package/.prettierignore +1 -0
  6. package/LICENSE +18 -0
  7. package/README.md +373 -0
  8. package/assets/kysely-codegen-logo.svg +28 -0
  9. package/dist/cli/bin.d.ts +2 -0
  10. package/dist/cli/bin.js +6 -0
  11. package/dist/cli/bin.js.map +1 -0
  12. package/dist/cli/cli.d.ts +17 -0
  13. package/dist/cli/cli.js +238 -0
  14. package/dist/cli/cli.js.map +1 -0
  15. package/dist/cli/config-error.d.ts +6 -0
  16. package/dist/cli/config-error.js +11 -0
  17. package/dist/cli/config-error.js.map +1 -0
  18. package/dist/cli/config.d.ts +167 -0
  19. package/dist/cli/config.js +85 -0
  20. package/dist/cli/config.js.map +1 -0
  21. package/dist/cli/constants.d.ts +5 -0
  22. package/dist/cli/constants.js +23 -0
  23. package/dist/cli/constants.js.map +1 -0
  24. package/dist/cli/flags.d.ts +76 -0
  25. package/dist/cli/flags.js +142 -0
  26. package/dist/cli/flags.js.map +1 -0
  27. package/dist/cli/index.d.ts +4 -0
  28. package/dist/cli/index.js +21 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/db.d.ts +1 -0
  31. package/dist/db.js +3 -0
  32. package/dist/db.js.map +1 -0
  33. package/dist/generator/adapter.d.ts +16 -0
  34. package/dist/generator/adapter.js +18 -0
  35. package/dist/generator/adapter.js.map +1 -0
  36. package/dist/generator/ast/alias-declaration-node.d.ts +9 -0
  37. package/dist/generator/ast/alias-declaration-node.js +13 -0
  38. package/dist/generator/ast/alias-declaration-node.js.map +1 -0
  39. package/dist/generator/ast/array-expression-node.d.ts +6 -0
  40. package/dist/generator/ast/array-expression-node.js +11 -0
  41. package/dist/generator/ast/array-expression-node.js.map +1 -0
  42. package/dist/generator/ast/column-type-node.d.ts +5 -0
  43. package/dist/generator/ast/column-type-node.js +11 -0
  44. package/dist/generator/ast/column-type-node.js.map +1 -0
  45. package/dist/generator/ast/definition-node.d.ts +3 -0
  46. package/dist/generator/ast/definition-node.js +3 -0
  47. package/dist/generator/ast/definition-node.js.map +1 -0
  48. package/dist/generator/ast/export-statement-node.d.ts +8 -0
  49. package/dist/generator/ast/export-statement-node.js +11 -0
  50. package/dist/generator/ast/export-statement-node.js.map +1 -0
  51. package/dist/generator/ast/expression-node.d.ts +11 -0
  52. package/dist/generator/ast/expression-node.js +3 -0
  53. package/dist/generator/ast/expression-node.js.map +1 -0
  54. package/dist/generator/ast/extends-clause-node.d.ts +9 -0
  55. package/dist/generator/ast/extends-clause-node.js +14 -0
  56. package/dist/generator/ast/extends-clause-node.js.map +1 -0
  57. package/dist/generator/ast/generic-expression-node.d.ts +7 -0
  58. package/dist/generator/ast/generic-expression-node.js +12 -0
  59. package/dist/generator/ast/generic-expression-node.js.map +1 -0
  60. package/dist/generator/ast/identifier-node.d.ts +11 -0
  61. package/dist/generator/ast/identifier-node.js +18 -0
  62. package/dist/generator/ast/identifier-node.js.map +1 -0
  63. package/dist/generator/ast/import-clause-node.d.ts +6 -0
  64. package/dist/generator/ast/import-clause-node.js +12 -0
  65. package/dist/generator/ast/import-clause-node.js.map +1 -0
  66. package/dist/generator/ast/import-statement-node.d.ts +7 -0
  67. package/dist/generator/ast/import-statement-node.js +12 -0
  68. package/dist/generator/ast/import-statement-node.js.map +1 -0
  69. package/dist/generator/ast/infer-clause-node.d.ts +5 -0
  70. package/dist/generator/ast/infer-clause-node.js +11 -0
  71. package/dist/generator/ast/infer-clause-node.js.map +1 -0
  72. package/dist/generator/ast/interface-declaration-node.d.ts +8 -0
  73. package/dist/generator/ast/interface-declaration-node.js +12 -0
  74. package/dist/generator/ast/interface-declaration-node.js.map +1 -0
  75. package/dist/generator/ast/json-column-type-node.d.ts +5 -0
  76. package/dist/generator/ast/json-column-type-node.js +11 -0
  77. package/dist/generator/ast/json-column-type-node.js.map +1 -0
  78. package/dist/generator/ast/literal-node.d.ts +7 -0
  79. package/dist/generator/ast/literal-node.js +11 -0
  80. package/dist/generator/ast/literal-node.js.map +1 -0
  81. package/dist/generator/ast/mapped-type-node.d.ts +6 -0
  82. package/dist/generator/ast/mapped-type-node.js +11 -0
  83. package/dist/generator/ast/mapped-type-node.js.map +1 -0
  84. package/dist/generator/ast/module-reference-node.d.ts +5 -0
  85. package/dist/generator/ast/module-reference-node.js +11 -0
  86. package/dist/generator/ast/module-reference-node.js.map +1 -0
  87. package/dist/generator/ast/object-expression-node.d.ts +6 -0
  88. package/dist/generator/ast/object-expression-node.js +11 -0
  89. package/dist/generator/ast/object-expression-node.js.map +1 -0
  90. package/dist/generator/ast/property-node.d.ts +8 -0
  91. package/dist/generator/ast/property-node.js +13 -0
  92. package/dist/generator/ast/property-node.js.map +1 -0
  93. package/dist/generator/ast/raw-expression-node.d.ts +5 -0
  94. package/dist/generator/ast/raw-expression-node.js +11 -0
  95. package/dist/generator/ast/raw-expression-node.js.map +1 -0
  96. package/dist/generator/ast/runtime-enum-declaration-node.d.ts +13 -0
  97. package/dist/generator/ast/runtime-enum-declaration-node.js +28 -0
  98. package/dist/generator/ast/runtime-enum-declaration-node.js.map +1 -0
  99. package/dist/generator/ast/statement-node.d.ts +3 -0
  100. package/dist/generator/ast/statement-node.js +3 -0
  101. package/dist/generator/ast/statement-node.js.map +1 -0
  102. package/dist/generator/ast/template-node.d.ts +7 -0
  103. package/dist/generator/ast/template-node.js +12 -0
  104. package/dist/generator/ast/template-node.js.map +1 -0
  105. package/dist/generator/ast/union-expression-node.d.ts +6 -0
  106. package/dist/generator/ast/union-expression-node.js +11 -0
  107. package/dist/generator/ast/union-expression-node.js.map +1 -0
  108. package/dist/generator/connection-string-parser.d.ts +24 -0
  109. package/dist/generator/connection-string-parser.js +94 -0
  110. package/dist/generator/connection-string-parser.js.map +1 -0
  111. package/dist/generator/constants.d.ts +1 -0
  112. package/dist/generator/constants.js +6 -0
  113. package/dist/generator/constants.js.map +1 -0
  114. package/dist/generator/dialect.d.ts +11 -0
  115. package/dist/generator/dialect.js +38 -0
  116. package/dist/generator/dialect.js.map +1 -0
  117. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-adapter.d.ts +3 -0
  118. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-adapter.js +8 -0
  119. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-adapter.js.map +1 -0
  120. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.d.ts +6 -0
  121. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.js +13 -0
  122. package/dist/generator/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.js.map +1 -0
  123. package/dist/generator/dialects/libsql/libsql-adapter.d.ts +3 -0
  124. package/dist/generator/dialects/libsql/libsql-adapter.js +8 -0
  125. package/dist/generator/dialects/libsql/libsql-adapter.js.map +1 -0
  126. package/dist/generator/dialects/libsql/libsql-dialect.d.ts +6 -0
  127. package/dist/generator/dialects/libsql/libsql-dialect.js +13 -0
  128. package/dist/generator/dialects/libsql/libsql-dialect.js.map +1 -0
  129. package/dist/generator/dialects/mssql/mssql-adapter.d.ts +36 -0
  130. package/dist/generator/dialects/mssql/mssql-adapter.js +45 -0
  131. package/dist/generator/dialects/mssql/mssql-adapter.js.map +1 -0
  132. package/dist/generator/dialects/mssql/mssql-dialect.d.ts +7 -0
  133. package/dist/generator/dialects/mssql/mssql-dialect.js +69 -0
  134. package/dist/generator/dialects/mssql/mssql-dialect.js.map +1 -0
  135. package/dist/generator/dialects/mysql/mysql-adapter.d.ts +58 -0
  136. package/dist/generator/dialects/mysql/mysql-adapter.js +80 -0
  137. package/dist/generator/dialects/mysql/mysql-adapter.js.map +1 -0
  138. package/dist/generator/dialects/mysql/mysql-dialect.d.ts +6 -0
  139. package/dist/generator/dialects/mysql/mysql-dialect.js +13 -0
  140. package/dist/generator/dialects/mysql/mysql-dialect.js.map +1 -0
  141. package/dist/generator/dialects/postgres/postgres-adapter.d.ts +72 -0
  142. package/dist/generator/dialects/postgres/postgres-adapter.js +137 -0
  143. package/dist/generator/dialects/postgres/postgres-adapter.js.map +1 -0
  144. package/dist/generator/dialects/postgres/postgres-dialect.d.ts +16 -0
  145. package/dist/generator/dialects/postgres/postgres-dialect.js +22 -0
  146. package/dist/generator/dialects/postgres/postgres-dialect.js.map +1 -0
  147. package/dist/generator/dialects/sqlite/sqlite-adapter.d.ts +14 -0
  148. package/dist/generator/dialects/sqlite/sqlite-adapter.js +22 -0
  149. package/dist/generator/dialects/sqlite/sqlite-adapter.js.map +1 -0
  150. package/dist/generator/dialects/sqlite/sqlite-dialect.d.ts +6 -0
  151. package/dist/generator/dialects/sqlite/sqlite-dialect.js +13 -0
  152. package/dist/generator/dialects/sqlite/sqlite-dialect.js.map +1 -0
  153. package/dist/generator/dialects/worker-bun-sqlite/worker-bun-sqlite-dialect.d.ts +6 -0
  154. package/dist/generator/dialects/worker-bun-sqlite/worker-bun-sqlite-dialect.js +13 -0
  155. package/dist/generator/dialects/worker-bun-sqlite/worker-bun-sqlite-dialect.js.map +1 -0
  156. package/dist/generator/generator/diff-checker.d.ts +4 -0
  157. package/dist/generator/generator/diff-checker.js +27 -0
  158. package/dist/generator/generator/diff-checker.js.map +1 -0
  159. package/dist/generator/generator/generate.d.ts +32 -0
  160. package/dist/generator/generator/generate.js +82 -0
  161. package/dist/generator/generator/generate.js.map +1 -0
  162. package/dist/generator/generator/runtime-enums-style.d.ts +1 -0
  163. package/dist/generator/generator/runtime-enums-style.js +3 -0
  164. package/dist/generator/generator/runtime-enums-style.js.map +1 -0
  165. package/dist/generator/generator/serializer.d.ts +66 -0
  166. package/dist/generator/generator/serializer.js +309 -0
  167. package/dist/generator/generator/serializer.js.map +1 -0
  168. package/dist/generator/generator/singularizer.d.ts +1 -0
  169. package/dist/generator/generator/singularizer.js +32 -0
  170. package/dist/generator/generator/singularizer.js.map +1 -0
  171. package/dist/generator/index.d.ts +50 -0
  172. package/dist/generator/index.js +67 -0
  173. package/dist/generator/index.js.map +1 -0
  174. package/dist/generator/logger/log-level.d.ts +8 -0
  175. package/dist/generator/logger/log-level.js +14 -0
  176. package/dist/generator/logger/log-level.js.map +1 -0
  177. package/dist/generator/logger/logger.d.ts +12 -0
  178. package/dist/generator/logger/logger.js +62 -0
  179. package/dist/generator/logger/logger.js.map +1 -0
  180. package/dist/generator/transformer/definitions.d.ts +18 -0
  181. package/dist/generator/transformer/definitions.js +44 -0
  182. package/dist/generator/transformer/definitions.js.map +1 -0
  183. package/dist/generator/transformer/identifier-style.d.ts +1 -0
  184. package/dist/generator/transformer/identifier-style.js +3 -0
  185. package/dist/generator/transformer/identifier-style.js.map +1 -0
  186. package/dist/generator/transformer/imports.d.ts +5 -0
  187. package/dist/generator/transformer/imports.js +9 -0
  188. package/dist/generator/transformer/imports.js.map +1 -0
  189. package/dist/generator/transformer/symbol-collection.d.ts +44 -0
  190. package/dist/generator/transformer/symbol-collection.js +59 -0
  191. package/dist/generator/transformer/symbol-collection.js.map +1 -0
  192. package/dist/generator/transformer/transformer.d.ts +33 -0
  193. package/dist/generator/transformer/transformer.js +311 -0
  194. package/dist/generator/transformer/transformer.js.map +1 -0
  195. package/dist/generator/utils/case-converter.d.ts +30 -0
  196. package/dist/generator/utils/case-converter.js +67 -0
  197. package/dist/generator/utils/case-converter.js.map +1 -0
  198. package/dist/index.d.ts +4 -0
  199. package/dist/index.js +21 -0
  200. package/dist/index.js.map +1 -0
  201. package/dist/introspector/dialect.d.ts +19 -0
  202. package/dist/introspector/dialect.js +10 -0
  203. package/dist/introspector/dialect.js.map +1 -0
  204. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.d.ts +7 -0
  205. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.js +56 -0
  206. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-dialect.js.map +1 -0
  207. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-introspector.d.ts +6 -0
  208. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-introspector.js +15 -0
  209. package/dist/introspector/dialects/kysely-bun-sqlite/kysely-bun-sqlite-introspector.js.map +1 -0
  210. package/dist/introspector/dialects/libsql/libsql-dialect.d.ts +7 -0
  211. package/dist/introspector/dialects/libsql/libsql-dialect.js +59 -0
  212. package/dist/introspector/dialects/libsql/libsql-dialect.js.map +1 -0
  213. package/dist/introspector/dialects/libsql/libsql-introspector.d.ts +6 -0
  214. package/dist/introspector/dialects/libsql/libsql-introspector.js +15 -0
  215. package/dist/introspector/dialects/libsql/libsql-introspector.js.map +1 -0
  216. package/dist/introspector/dialects/mssql/mssql-dialect.d.ts +9 -0
  217. package/dist/introspector/dialects/mssql/mssql-dialect.js +112 -0
  218. package/dist/introspector/dialects/mssql/mssql-dialect.js.map +1 -0
  219. package/dist/introspector/dialects/mssql/mssql-introspector.d.ts +6 -0
  220. package/dist/introspector/dialects/mssql/mssql-introspector.js +15 -0
  221. package/dist/introspector/dialects/mssql/mssql-introspector.js.map +1 -0
  222. package/dist/introspector/dialects/mysql/mysql-db.d.ts +8 -0
  223. package/dist/introspector/dialects/mysql/mysql-db.js +3 -0
  224. package/dist/introspector/dialects/mysql/mysql-db.js.map +1 -0
  225. package/dist/introspector/dialects/mysql/mysql-dialect.d.ts +8 -0
  226. package/dist/introspector/dialects/mysql/mysql-dialect.js +61 -0
  227. package/dist/introspector/dialects/mysql/mysql-dialect.js.map +1 -0
  228. package/dist/introspector/dialects/mysql/mysql-introspector.d.ts +14 -0
  229. package/dist/introspector/dialects/mysql/mysql-introspector.js +46 -0
  230. package/dist/introspector/dialects/mysql/mysql-introspector.js.map +1 -0
  231. package/dist/introspector/dialects/mysql/mysql-parser.d.ts +7 -0
  232. package/dist/introspector/dialects/mysql/mysql-parser.js +66 -0
  233. package/dist/introspector/dialects/mysql/mysql-parser.js.map +1 -0
  234. package/dist/introspector/dialects/postgres/date-parser.d.ts +2 -0
  235. package/dist/introspector/dialects/postgres/date-parser.js +5 -0
  236. package/dist/introspector/dialects/postgres/date-parser.js.map +1 -0
  237. package/dist/introspector/dialects/postgres/numeric-parser.d.ts +2 -0
  238. package/dist/introspector/dialects/postgres/numeric-parser.js +5 -0
  239. package/dist/introspector/dialects/postgres/numeric-parser.js.map +1 -0
  240. package/dist/introspector/dialects/postgres/postgres-db.d.ts +15 -0
  241. package/dist/introspector/dialects/postgres/postgres-db.js +3 -0
  242. package/dist/introspector/dialects/postgres/postgres-db.js.map +1 -0
  243. package/dist/introspector/dialects/postgres/postgres-dialect.d.ts +20 -0
  244. package/dist/introspector/dialects/postgres/postgres-dialect.js +83 -0
  245. package/dist/introspector/dialects/postgres/postgres-dialect.js.map +1 -0
  246. package/dist/introspector/dialects/postgres/postgres-introspector.d.ts +35 -0
  247. package/dist/introspector/dialects/postgres/postgres-introspector.js +128 -0
  248. package/dist/introspector/dialects/postgres/postgres-introspector.js.map +1 -0
  249. package/dist/introspector/dialects/sqlite/sqlite-dialect.d.ts +8 -0
  250. package/dist/introspector/dialects/sqlite/sqlite-dialect.js +53 -0
  251. package/dist/introspector/dialects/sqlite/sqlite-dialect.js.map +1 -0
  252. package/dist/introspector/dialects/sqlite/sqlite-introspector.d.ts +6 -0
  253. package/dist/introspector/dialects/sqlite/sqlite-introspector.js +15 -0
  254. package/dist/introspector/dialects/sqlite/sqlite-introspector.js.map +1 -0
  255. package/dist/introspector/enum-collection.d.ts +10 -0
  256. package/dist/introspector/enum-collection.js +26 -0
  257. package/dist/introspector/enum-collection.js.map +1 -0
  258. package/dist/introspector/index.d.ts +24 -0
  259. package/dist/introspector/index.js +41 -0
  260. package/dist/introspector/index.js.map +1 -0
  261. package/dist/introspector/introspector.d.ts +23 -0
  262. package/dist/introspector/introspector.fixtures.d.ts +4 -0
  263. package/dist/introspector/introspector.fixtures.js +128 -0
  264. package/dist/introspector/introspector.fixtures.js.map +1 -0
  265. package/dist/introspector/introspector.js +50 -0
  266. package/dist/introspector/introspector.js.map +1 -0
  267. package/dist/introspector/metadata/column-metadata.d.ts +23 -0
  268. package/dist/introspector/metadata/column-metadata.js +18 -0
  269. package/dist/introspector/metadata/column-metadata.js.map +1 -0
  270. package/dist/introspector/metadata/database-metadata.d.ts +12 -0
  271. package/dist/introspector/metadata/database-metadata.js +13 -0
  272. package/dist/introspector/metadata/database-metadata.js.map +1 -0
  273. package/dist/introspector/metadata/table-metadata.d.ts +17 -0
  274. package/dist/introspector/metadata/table-metadata.js +15 -0
  275. package/dist/introspector/metadata/table-metadata.js.map +1 -0
  276. package/dist/introspector/table-matcher.d.ts +6 -0
  277. package/dist/introspector/table-matcher.js +16 -0
  278. package/dist/introspector/table-matcher.js.map +1 -0
  279. package/package.json +186 -0
  280. package/pnpm-workspace.yaml +3 -0
  281. package/tsconfig.build.json +5 -0
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Introspector = void 0;
4
+ const kysely_1 = require("kysely");
5
+ const table_matcher_1 = require("./table-matcher");
6
+ /**
7
+ * Analyzes and returns metadata for a connected database.
8
+ */
9
+ class Introspector {
10
+ async establishDatabaseConnection(db) {
11
+ return await (0, kysely_1.sql) `SELECT 1;`.execute(db);
12
+ }
13
+ async connect(options) {
14
+ // Insane solution in lieu of a better one.
15
+ // We'll create a database connection with SSL, and if it complains about SSL, try without it.
16
+ for (const ssl of [true, false]) {
17
+ try {
18
+ const dialect = await options.dialect.createKyselyDialect({
19
+ connectionString: options.connectionString,
20
+ ssl,
21
+ });
22
+ const db = new kysely_1.Kysely({ dialect });
23
+ await this.establishDatabaseConnection(db);
24
+ return db;
25
+ }
26
+ catch (error) {
27
+ const isSslError = error instanceof Error && /\bSSL\b/.test(error.message);
28
+ const isUnexpectedError = !ssl || !isSslError;
29
+ if (isUnexpectedError) {
30
+ throw error;
31
+ }
32
+ }
33
+ }
34
+ throw new Error('Failed to connect to database.');
35
+ }
36
+ async getTables(options) {
37
+ let tables = await options.db.introspection.getTables();
38
+ if (options.includePattern) {
39
+ const tableMatcher = new table_matcher_1.TableMatcher(options.includePattern);
40
+ tables = tables.filter(({ name, schema }) => tableMatcher.match(schema, name));
41
+ }
42
+ if (options.excludePattern) {
43
+ const tableMatcher = new table_matcher_1.TableMatcher(options.excludePattern);
44
+ tables = tables.filter(({ name, schema }) => !tableMatcher.match(schema, name));
45
+ }
46
+ return tables;
47
+ }
48
+ }
49
+ exports.Introspector = Introspector;
50
+ //# sourceMappingURL=introspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspector.js","sourceRoot":"","sources":["../../src/introspector/introspector.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAGrC,mDAA+C;AAc/C;;GAEG;AACH,MAAsB,YAAY;IACxB,KAAK,CAAC,2BAA2B,CAAC,EAAc;QACtD,OAAO,MAAM,IAAA,YAAG,EAAA,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,2CAA2C;QAC3C,8FAA8F;QAC9F,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;oBACxD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,GAAG;iBACJ,CAAC,CAAC;gBAEH,MAAM,EAAE,GAAG,IAAI,eAAM,CAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAEvC,MAAM,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBAE3C,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GACd,KAAK,YAAY,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1D,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;gBAE9C,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,OAA8B;QACtD,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAExD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAC1C,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CACjC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CACxD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CAKF;AAzDD,oCAyDC"}
@@ -0,0 +1,23 @@
1
+ export type ColumnMetadataOptions = {
2
+ comment?: string | null;
3
+ dataType: string;
4
+ dataTypeSchema?: string;
5
+ enumValues?: string[] | null;
6
+ hasDefaultValue?: boolean;
7
+ isArray?: boolean;
8
+ isAutoIncrementing?: boolean;
9
+ isNullable?: boolean;
10
+ name: string;
11
+ };
12
+ export declare class ColumnMetadata {
13
+ comment: string | null;
14
+ dataType: string;
15
+ dataTypeSchema: string | undefined;
16
+ enumValues: string[] | null;
17
+ hasDefaultValue: boolean;
18
+ isArray: boolean;
19
+ isAutoIncrementing: boolean;
20
+ isNullable: boolean;
21
+ name: string;
22
+ constructor(options: ColumnMetadataOptions);
23
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ColumnMetadata = void 0;
4
+ class ColumnMetadata {
5
+ constructor(options) {
6
+ this.comment = options.comment ?? null;
7
+ this.dataType = options.dataType;
8
+ this.dataTypeSchema = options.dataTypeSchema;
9
+ this.enumValues = options.enumValues ?? null;
10
+ this.hasDefaultValue = options.hasDefaultValue ?? false;
11
+ this.isArray = options.isArray ?? false;
12
+ this.isAutoIncrementing = options.isAutoIncrementing ?? false;
13
+ this.isNullable = options.isNullable ?? false;
14
+ this.name = options.name;
15
+ }
16
+ }
17
+ exports.ColumnMetadata = ColumnMetadata;
18
+ //# sourceMappingURL=column-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-metadata.js","sourceRoot":"","sources":["../../../src/introspector/metadata/column-metadata.ts"],"names":[],"mappings":";;;AAYA,MAAa,cAAc;IAWzB,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF;AAtBD,wCAsBC"}
@@ -0,0 +1,12 @@
1
+ import { EnumCollection } from '../enum-collection';
2
+ import type { TableMetadataOptions } from './table-metadata';
3
+ import { TableMetadata } from './table-metadata';
4
+ export type DatabaseMetadataOptions = {
5
+ enums?: EnumCollection;
6
+ tables: TableMetadataOptions[];
7
+ };
8
+ export declare class DatabaseMetadata {
9
+ enums: EnumCollection;
10
+ tables: TableMetadata[];
11
+ constructor({ enums, tables }: DatabaseMetadataOptions);
12
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseMetadata = void 0;
4
+ const enum_collection_1 = require("../enum-collection");
5
+ const table_metadata_1 = require("./table-metadata");
6
+ class DatabaseMetadata {
7
+ constructor({ enums, tables }) {
8
+ this.enums = enums ?? new enum_collection_1.EnumCollection();
9
+ this.tables = tables.map((table) => new table_metadata_1.TableMetadata(table));
10
+ }
11
+ }
12
+ exports.DatabaseMetadata = DatabaseMetadata;
13
+ //# sourceMappingURL=database-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-metadata.js","sourceRoot":"","sources":["../../../src/introspector/metadata/database-metadata.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,qDAAiD;AAOjD,MAAa,gBAAgB;IAI3B,YAAY,EAAE,KAAK,EAAE,MAAM,EAA2B;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,gCAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,8BAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;CACF;AARD,4CAQC"}
@@ -0,0 +1,17 @@
1
+ import type { ColumnMetadataOptions } from './column-metadata';
2
+ import { ColumnMetadata } from './column-metadata';
3
+ export type TableMetadataOptions = {
4
+ columns: ColumnMetadataOptions[];
5
+ isPartition?: boolean;
6
+ isView?: boolean;
7
+ name: string;
8
+ schema?: string;
9
+ };
10
+ export declare class TableMetadata {
11
+ columns: ColumnMetadata[];
12
+ isPartition: boolean;
13
+ isView: boolean;
14
+ name: string;
15
+ schema: string | undefined;
16
+ constructor(options: TableMetadataOptions);
17
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableMetadata = void 0;
4
+ const column_metadata_1 = require("./column-metadata");
5
+ class TableMetadata {
6
+ constructor(options) {
7
+ this.columns = options.columns.map((column) => new column_metadata_1.ColumnMetadata(column));
8
+ this.isPartition = !!options.isPartition;
9
+ this.isView = !!options.isView;
10
+ this.name = options.name;
11
+ this.schema = options.schema;
12
+ }
13
+ }
14
+ exports.TableMetadata = TableMetadata;
15
+ //# sourceMappingURL=table-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-metadata.js","sourceRoot":"","sources":["../../../src/introspector/metadata/table-metadata.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAUnD,MAAa,aAAa;IAOxB,YAAY,OAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF;AAdD,sCAcC"}
@@ -0,0 +1,6 @@
1
+ export declare class TableMatcher {
2
+ isMatch: (string: string) => boolean;
3
+ isSimpleGlob: boolean;
4
+ constructor(pattern: string);
5
+ match(schema: string | undefined, name: string): boolean;
6
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableMatcher = void 0;
4
+ const micromatch_1 = require("micromatch");
5
+ class TableMatcher {
6
+ constructor(pattern) {
7
+ this.isMatch = (0, micromatch_1.matcher)(pattern, { nocase: true });
8
+ this.isSimpleGlob = !pattern.includes('.');
9
+ }
10
+ match(schema, name) {
11
+ const string = this.isSimpleGlob ? name : `${schema ?? '*'}.${name}`;
12
+ return this.isMatch(string);
13
+ }
14
+ }
15
+ exports.TableMatcher = TableMatcher;
16
+ //# sourceMappingURL=table-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-matcher.js","sourceRoot":"","sources":["../../src/introspector/table-matcher.ts"],"names":[],"mappings":";;;AAAA,2CAAqC;AAErC,MAAa,YAAY;IAIvB,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAO,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAA0B,EAAE,IAAY;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF;AAbD,oCAaC"}
package/package.json ADDED
@@ -0,0 +1,186 @@
1
+ {
2
+ "name": "kysely-kodegen",
3
+ "version": "0.18.6",
4
+ "author": "Robin Blomberg",
5
+ "license": "MIT",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "kysely-codegen": "./dist/cli/bin.js"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/RobinBlomberg/kysely-codegen.git"
14
+ },
15
+ "bugs": {
16
+ "url": "https://github.com/RobinBlomberg/kysely-codegen/issues"
17
+ },
18
+ "homepage": "https://github.com/RobinBlomberg/kysely-codegen#readme",
19
+ "dependencies": {
20
+ "chalk": "4.1.2",
21
+ "cosmiconfig": "^9.0.0",
22
+ "dotenv": "^16.5.0",
23
+ "dotenv-expand": "^12.0.2",
24
+ "git-diff": "^2.0.6",
25
+ "micromatch": "^4.0.8",
26
+ "minimist": "^1.2.8",
27
+ "pluralize": "^8.0.0",
28
+ "zod": "^3.24.4"
29
+ },
30
+ "devDependencies": {
31
+ "@libsql/kysely-libsql": "^0.4.1",
32
+ "@robinblomberg/eslint-config-prettier": "^0.1.4",
33
+ "@robinblomberg/eslint-config-robinblomberg": "0.28.0",
34
+ "@robinblomberg/prettier-config": "^0.2.0",
35
+ "@types/better-sqlite3": "^7.6.13",
36
+ "@types/bun": "^1.2.13",
37
+ "@types/git-diff": "^2.0.7",
38
+ "@types/micromatch": "^4.0.9",
39
+ "@types/minimist": "^1.2.5",
40
+ "@types/node": "^22.15.17",
41
+ "@types/pg": "^8.15.1",
42
+ "@types/pluralize": "^0.0.33",
43
+ "better-sqlite3": "^11.10.0",
44
+ "eslint": "^8.57.0",
45
+ "eslint-plugin-import": "^2.31.0",
46
+ "execa": "^9.5.3",
47
+ "knip": "^5.55.1",
48
+ "kysely": "^0.28.2",
49
+ "madge": "^8.0.0",
50
+ "mysql2": "^3.14.1",
51
+ "npm-run-all": "^4.1.5",
52
+ "pg": "^8.15.6",
53
+ "postgres-interval": "^4.0.2",
54
+ "prettier": "^3.5.3",
55
+ "rimraf": "^6.0.1",
56
+ "tedious": "^19.0.0",
57
+ "ts-dedent": "^2.2.0",
58
+ "tsx": "^4.19.4",
59
+ "typescript": "^5.8.3",
60
+ "vitest": "^3.1.3"
61
+ },
62
+ "peerDependencies": {
63
+ "@libsql/kysely-libsql": ">=0.3.0 <0.5.0",
64
+ "@tediousjs/connection-string": ">=0.5.0 <0.6.0",
65
+ "better-sqlite3": ">=7.6.2 <8.0.0",
66
+ "kysely": ">=0.27.0 <1.0.0",
67
+ "kysely-bun-sqlite": ">=0.3.2 <1.0.0",
68
+ "kysely-bun-worker": ">=1.2.0 <2.0.0",
69
+ "mysql2": ">=2.3.3 <4.0.0",
70
+ "pg": ">=8.8.0 <9.0.0",
71
+ "tarn": ">=3.0.0 <4.0.0",
72
+ "tedious": ">=18.0.0 <20.0.0"
73
+ },
74
+ "peerDependenciesMeta": {
75
+ "@libsql/kysely-libsql": {
76
+ "optional": true
77
+ },
78
+ "@tediousjs/connection-string": {
79
+ "optional": true
80
+ },
81
+ "better-sqlite3": {
82
+ "optional": true
83
+ },
84
+ "kysely": {
85
+ "optional": false
86
+ },
87
+ "kysely-bun-sqlite": {
88
+ "optional": true
89
+ },
90
+ "kysely-bun-worker": {
91
+ "optional": true
92
+ },
93
+ "mysql2": {
94
+ "optional": true
95
+ },
96
+ "pg": {
97
+ "optional": true
98
+ },
99
+ "tarn": {
100
+ "optional": true
101
+ },
102
+ "tedious": {
103
+ "optional": true
104
+ }
105
+ },
106
+ "engines": {
107
+ "node": ">=20.0.0"
108
+ },
109
+ "eslintConfig": {
110
+ "extends": [
111
+ "@robinblomberg/robinblomberg",
112
+ "@robinblomberg/prettier"
113
+ ],
114
+ "ignorePatterns": "**/*.snapshot.ts",
115
+ "rules": {
116
+ "@typescript-eslint/consistent-type-imports": [
117
+ 1,
118
+ {
119
+ "disallowTypeAnnotations": false,
120
+ "fixStyle": "separate-type-imports",
121
+ "prefer": "type-imports"
122
+ }
123
+ ],
124
+ "unicorn/no-typeof-undefined": [
125
+ 1,
126
+ {
127
+ "checkGlobalVariables": false
128
+ }
129
+ ],
130
+ "unicorn/prefer-node-protocol": 0
131
+ }
132
+ },
133
+ "knip": {
134
+ "ignore": [
135
+ "src/cli/test/config-with-custom-serializer.ts",
136
+ "src/cli/test/config.cjs",
137
+ "src/db.ts",
138
+ "**/*.snapshot.ts"
139
+ ],
140
+ "ignoreBinaries": [
141
+ "docker-compose",
142
+ "ncu"
143
+ ],
144
+ "ignoreDependencies": [
145
+ "@libsql/kysely-libsql",
146
+ "@tediousjs/connection-string",
147
+ "better-sqlite3",
148
+ "eslint-plugin-import",
149
+ "kysely-bun-sqlite",
150
+ "mysql2",
151
+ "pg",
152
+ "tarn",
153
+ "tedious"
154
+ ]
155
+ },
156
+ "madge": {
157
+ "detectiveOptions": {
158
+ "ts": {
159
+ "skipTypeImports": true
160
+ }
161
+ }
162
+ },
163
+ "prettier": "@robinblomberg/prettier-config",
164
+ "scripts": {
165
+ "build": "rimraf dist && tsc --project ./tsconfig.build.json",
166
+ "check:types": "tsc --noEmit",
167
+ "ci": "run-s ci:*",
168
+ "ci:build": "pnpm build",
169
+ "ci:circular-imports": "madge -c ./src/index.ts",
170
+ "ci:eslint": "pnpm lint:eslint --max-warnings=0 --report-unused-disable-directives",
171
+ "ci:prettier": "pnpm lint:prettier",
172
+ "ci:unused": "knip",
173
+ "dev": "tsx watch ./src/cli/bin.ts",
174
+ "docker:up": "docker-compose up -d",
175
+ "fix": "run-s fix:*",
176
+ "fix:eslint": "eslint --fix src",
177
+ "fix:prettier": "prettier --write src",
178
+ "lint": "run-p lint:*",
179
+ "lint:eslint": "eslint src",
180
+ "lint:prettier": "prettier --check src",
181
+ "start": "pnpm build && DATABASE_URL=postgres://user:password@localhost:5433/database node ./dist/cli/bin.js",
182
+ "test": "vitest run --globals --fileParallelism=false --maxConcurrency=1 --maxWorkers=1 --sequence.seed=1",
183
+ "test:watch": "vitest watch --globals --fileParallelism=false --maxConcurrency=1 --maxWorkers=1 --sequence.seed=1",
184
+ "upgrade": "ncu -u"
185
+ }
186
+ }
@@ -0,0 +1,3 @@
1
+ onlyBuiltDependencies:
2
+ - better-sqlite3
3
+ - esbuild
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["src"],
4
+ "exclude": ["**/*.snapshot.ts", "**/test", "**/*.test.ts"]
5
+ }