@danielfgray/pg-sourcerer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +104 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/config.d.ts +133 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +47 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/errors.d.ts +129 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +41 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/generate.d.ts +75 -0
  14. package/dist/generate.d.ts.map +1 -0
  15. package/dist/generate.js +183 -0
  16. package/dist/generate.js.map +1 -0
  17. package/dist/index.d.ts +35 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +62 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/init.d.ts +4 -0
  22. package/dist/init.d.ts.map +1 -0
  23. package/dist/init.js +229 -0
  24. package/dist/init.js.map +1 -0
  25. package/dist/ir/index.d.ts +7 -0
  26. package/dist/ir/index.d.ts.map +1 -0
  27. package/dist/ir/index.js +7 -0
  28. package/dist/ir/index.js.map +1 -0
  29. package/dist/ir/relation-graph.d.ts +113 -0
  30. package/dist/ir/relation-graph.d.ts.map +1 -0
  31. package/dist/ir/relation-graph.js +232 -0
  32. package/dist/ir/relation-graph.js.map +1 -0
  33. package/dist/ir/semantic-ir.d.ts +448 -0
  34. package/dist/ir/semantic-ir.d.ts.map +1 -0
  35. package/dist/ir/semantic-ir.js +138 -0
  36. package/dist/ir/semantic-ir.js.map +1 -0
  37. package/dist/ir/smart-tags.d.ts +24 -0
  38. package/dist/ir/smart-tags.d.ts.map +1 -0
  39. package/dist/ir/smart-tags.js +30 -0
  40. package/dist/ir/smart-tags.js.map +1 -0
  41. package/dist/lib/conjure.d.ts +431 -0
  42. package/dist/lib/conjure.d.ts.map +1 -0
  43. package/dist/lib/conjure.js +697 -0
  44. package/dist/lib/conjure.js.map +1 -0
  45. package/dist/lib/field-utils.d.ts +61 -0
  46. package/dist/lib/field-utils.d.ts.map +1 -0
  47. package/dist/lib/field-utils.js +132 -0
  48. package/dist/lib/field-utils.js.map +1 -0
  49. package/dist/lib/hex.d.ts +117 -0
  50. package/dist/lib/hex.d.ts.map +1 -0
  51. package/dist/lib/hex.js +185 -0
  52. package/dist/lib/hex.js.map +1 -0
  53. package/dist/plugins/arktype.d.ts +11 -0
  54. package/dist/plugins/arktype.d.ts.map +1 -0
  55. package/dist/plugins/arktype.js +207 -0
  56. package/dist/plugins/arktype.js.map +1 -0
  57. package/dist/plugins/effect-model.d.ts +10 -0
  58. package/dist/plugins/effect-model.d.ts.map +1 -0
  59. package/dist/plugins/effect-model.js +261 -0
  60. package/dist/plugins/effect-model.js.map +1 -0
  61. package/dist/plugins/kysely-queries.d.ts +7 -0
  62. package/dist/plugins/kysely-queries.d.ts.map +1 -0
  63. package/dist/plugins/kysely-queries.js +380 -0
  64. package/dist/plugins/kysely-queries.js.map +1 -0
  65. package/dist/plugins/sql-queries.d.ts +6 -0
  66. package/dist/plugins/sql-queries.d.ts.map +1 -0
  67. package/dist/plugins/sql-queries.js +249 -0
  68. package/dist/plugins/sql-queries.js.map +1 -0
  69. package/dist/plugins/types.d.ts +18 -0
  70. package/dist/plugins/types.d.ts.map +1 -0
  71. package/dist/plugins/types.js +263 -0
  72. package/dist/plugins/types.js.map +1 -0
  73. package/dist/plugins/zod.d.ts +11 -0
  74. package/dist/plugins/zod.d.ts.map +1 -0
  75. package/dist/plugins/zod.js +180 -0
  76. package/dist/plugins/zod.js.map +1 -0
  77. package/dist/services/artifact-store.d.ts +55 -0
  78. package/dist/services/artifact-store.d.ts.map +1 -0
  79. package/dist/services/artifact-store.js +51 -0
  80. package/dist/services/artifact-store.js.map +1 -0
  81. package/dist/services/config-loader.d.ts +45 -0
  82. package/dist/services/config-loader.d.ts.map +1 -0
  83. package/dist/services/config-loader.js +113 -0
  84. package/dist/services/config-loader.js.map +1 -0
  85. package/dist/services/emissions.d.ts +89 -0
  86. package/dist/services/emissions.d.ts.map +1 -0
  87. package/dist/services/emissions.js +194 -0
  88. package/dist/services/emissions.js.map +1 -0
  89. package/dist/services/file-builder.d.ts +81 -0
  90. package/dist/services/file-builder.d.ts.map +1 -0
  91. package/dist/services/file-builder.js +112 -0
  92. package/dist/services/file-builder.js.map +1 -0
  93. package/dist/services/file-writer.d.ts +57 -0
  94. package/dist/services/file-writer.d.ts.map +1 -0
  95. package/dist/services/file-writer.js +76 -0
  96. package/dist/services/file-writer.js.map +1 -0
  97. package/dist/services/inflection.d.ts +227 -0
  98. package/dist/services/inflection.d.ts.map +1 -0
  99. package/dist/services/inflection.js +350 -0
  100. package/dist/services/inflection.js.map +1 -0
  101. package/dist/services/introspection.d.ts +46 -0
  102. package/dist/services/introspection.d.ts.map +1 -0
  103. package/dist/services/introspection.js +99 -0
  104. package/dist/services/introspection.js.map +1 -0
  105. package/dist/services/ir-builder.d.ts +46 -0
  106. package/dist/services/ir-builder.d.ts.map +1 -0
  107. package/dist/services/ir-builder.js +923 -0
  108. package/dist/services/ir-builder.js.map +1 -0
  109. package/dist/services/ir.d.ts +28 -0
  110. package/dist/services/ir.d.ts.map +1 -0
  111. package/dist/services/ir.js +25 -0
  112. package/dist/services/ir.js.map +1 -0
  113. package/dist/services/pg-types.d.ts +197 -0
  114. package/dist/services/pg-types.d.ts.map +1 -0
  115. package/dist/services/pg-types.js +274 -0
  116. package/dist/services/pg-types.js.map +1 -0
  117. package/dist/services/plugin-meta.d.ts +33 -0
  118. package/dist/services/plugin-meta.d.ts.map +1 -0
  119. package/dist/services/plugin-meta.js +24 -0
  120. package/dist/services/plugin-meta.js.map +1 -0
  121. package/dist/services/plugin-runner.d.ts +52 -0
  122. package/dist/services/plugin-runner.d.ts.map +1 -0
  123. package/dist/services/plugin-runner.js +182 -0
  124. package/dist/services/plugin-runner.js.map +1 -0
  125. package/dist/services/plugin.d.ts +286 -0
  126. package/dist/services/plugin.d.ts.map +1 -0
  127. package/dist/services/plugin.js +132 -0
  128. package/dist/services/plugin.js.map +1 -0
  129. package/dist/services/smart-tags-parser.d.ts +37 -0
  130. package/dist/services/smart-tags-parser.d.ts.map +1 -0
  131. package/dist/services/smart-tags-parser.js +79 -0
  132. package/dist/services/smart-tags-parser.js.map +1 -0
  133. package/dist/services/symbols.d.ts +85 -0
  134. package/dist/services/symbols.d.ts.map +1 -0
  135. package/dist/services/symbols.js +128 -0
  136. package/dist/services/symbols.js.map +1 -0
  137. package/dist/services/type-hints.d.ts +62 -0
  138. package/dist/services/type-hints.d.ts.map +1 -0
  139. package/dist/services/type-hints.js +117 -0
  140. package/dist/services/type-hints.js.map +1 -0
  141. package/dist/testing.d.ts +77 -0
  142. package/dist/testing.d.ts.map +1 -0
  143. package/dist/testing.js +84 -0
  144. package/dist/testing.js.map +1 -0
  145. package/package.json +74 -0
@@ -0,0 +1,380 @@
1
+ /**
2
+ * Kysely Queries Plugin - Generate type-safe Kysely query functions
3
+ *
4
+ * Generates permission-aware CRUD query functions using Kysely's query builder.
5
+ * Uses object namespace style with explicit `db: Kysely<DB>` first parameter.
6
+ */
7
+ import { Schema as S } from "effect";
8
+ import { definePlugin } from "../services/plugin.js";
9
+ import { getTableEntities, getEnumEntities } from "../ir/semantic-ir.js";
10
+ import { conjure, cast } from "../lib/conjure.js";
11
+ import { resolveFieldType, tsTypeToAst } from "../lib/field-utils.js";
12
+ import { inflect } from "../services/inflection.js";
13
+ const { ts, b } = conjure;
14
+ const { toExpr } = cast;
15
+ // ============================================================================
16
+ // Configuration
17
+ // ============================================================================
18
+ const KyselyQueriesPluginConfig = S.Struct({
19
+ outputDir: S.String,
20
+ header: S.optional(S.String),
21
+ /**
22
+ * Path to import DB type from (relative to outputDir).
23
+ * Defaults to "../DB.js" which works with kysely-codegen's DB.d.ts output.
24
+ * For node16/nodenext module resolution, use ".js" extension even for .d.ts files.
25
+ */
26
+ dbTypesPath: S.optional(S.String),
27
+ /**
28
+ * Whether to call .execute() / .executeTakeFirst() on queries.
29
+ * When true (default), methods return Promise<Row> or Promise<Row[]>.
30
+ * When false, methods return the query builder for further customization.
31
+ */
32
+ executeQueries: S.optional(S.Boolean),
33
+ });
34
+ /**
35
+ * Get the Kysely table interface name from the entity.
36
+ * Converts schema.table to PascalCase: app_public.users -> AppPublicUsers
37
+ * Uses the inflection utility to match kysely-codegen's naming convention.
38
+ */
39
+ const getTableTypeName = (entity) => `${inflect.pascalCase(entity.schemaName)}${inflect.pascalCase(entity.pgName)}`;
40
+ /** Get the schema-qualified table name for Kysely */
41
+ const getTableRef = (entity) => `${entity.schemaName}.${entity.pgName}`;
42
+ /** Find a field in the row shape by column name */
43
+ const findRowField = (entity, columnName) => entity.shapes.row.fields.find(f => f.columnName === columnName);
44
+ /** Get the TypeScript type AST for a field */
45
+ const getFieldTypeAst = (field, ctx) => {
46
+ if (!field)
47
+ return ts.string();
48
+ const resolved = resolveFieldType(field, ctx.enums, ctx.ir.extensions);
49
+ return resolved.enumDef ? ts.ref(resolved.enumDef.name) : tsTypeToAst(resolved.tsType);
50
+ };
51
+ // ============================================================================
52
+ // AST Building Helpers
53
+ // ============================================================================
54
+ /** Create identifier */
55
+ const id = (name) => b.identifier(name);
56
+ /** Create member expression: obj.prop */
57
+ const member = (obj, prop) => b.memberExpression(toExpr(obj), id(prop));
58
+ /** Create method call: obj.method(args) */
59
+ const call = (obj, method, args = []) => b.callExpression(member(obj, method), args.map(toExpr));
60
+ /** Create string literal */
61
+ const str = (value) => b.stringLiteral(value);
62
+ /** Create typed parameter: name: Type */
63
+ const typedParam = (name, type) => {
64
+ const param = id(name);
65
+ param.typeAnnotation = b.tsTypeAnnotation(cast.toTSType(type));
66
+ return param;
67
+ };
68
+ /** Create optional typed parameter: name?: Type */
69
+ const optionalTypedParam = (name, type) => {
70
+ const param = typedParam(name, type);
71
+ param.optional = true;
72
+ return param;
73
+ };
74
+ /**
75
+ * Build Kysely query chain starting with db.selectFrom('table')
76
+ */
77
+ const selectFrom = (tableRef) => call(id("db"), "selectFrom", [str(tableRef)]);
78
+ /**
79
+ * Build Kysely query chain: db.insertInto('table')
80
+ */
81
+ const insertInto = (tableRef) => call(id("db"), "insertInto", [str(tableRef)]);
82
+ /**
83
+ * Build Kysely query chain: db.updateTable('table')
84
+ */
85
+ const updateTable = (tableRef) => call(id("db"), "updateTable", [str(tableRef)]);
86
+ /**
87
+ * Build Kysely query chain: db.deleteFrom('table')
88
+ */
89
+ const deleteFrom = (tableRef) => call(id("db"), "deleteFrom", [str(tableRef)]);
90
+ /**
91
+ * Chain method call onto existing expression
92
+ */
93
+ const chain = (expr, method, args = []) => call(expr, method, args);
94
+ /**
95
+ * Build arrow function expression: (params) => body
96
+ */
97
+ const arrowFn = (params, body) => {
98
+ const fn = b.arrowFunctionExpression(params.map(p => p), toExpr(body));
99
+ return fn;
100
+ };
101
+ /**
102
+ * Build object property: key: value
103
+ */
104
+ const objProp = (key, value) => {
105
+ const prop = b.objectProperty(id(key), toExpr(value));
106
+ return prop;
107
+ };
108
+ // ============================================================================
109
+ // CRUD Method Generators
110
+ // ============================================================================
111
+ /**
112
+ * Generate findById method:
113
+ * findById: (db, id) => db.selectFrom('table').selectAll().where('id', '=', id).executeTakeFirst()
114
+ */
115
+ const generateFindById = (ctx) => {
116
+ const { entity, executeQueries } = ctx;
117
+ if (!entity.primaryKey || !entity.permissions.canSelect)
118
+ return undefined;
119
+ const pkColName = entity.primaryKey.columns[0];
120
+ const pkField = findRowField(entity, pkColName);
121
+ if (!pkField)
122
+ return undefined;
123
+ const tableRef = getTableRef(entity);
124
+ const fieldName = pkField.name;
125
+ const fieldType = getFieldTypeAst(pkField, ctx);
126
+ // db.selectFrom('table').selectAll().where('col', '=', id)
127
+ let query = chain(chain(selectFrom(tableRef), "selectAll"), "where", [str(pkColName), str("="), id(fieldName)]);
128
+ if (executeQueries) {
129
+ query = chain(query, "executeTakeFirst");
130
+ }
131
+ const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(fieldName, fieldType)], query);
132
+ return objProp("findById", fn);
133
+ };
134
+ /**
135
+ * Generate findMany method with optional pagination:
136
+ * findMany: (db, opts?) => db.selectFrom('table').selectAll()
137
+ * .$if(opts?.limit != null, q => q.limit(opts!.limit!))
138
+ * .$if(opts?.offset != null, q => q.offset(opts!.offset!))
139
+ * .execute()
140
+ */
141
+ const generateFindMany = (ctx) => {
142
+ const { entity, executeQueries } = ctx;
143
+ if (!entity.permissions.canSelect)
144
+ return undefined;
145
+ const tableRef = getTableRef(entity);
146
+ // Build the base query
147
+ let query = chain(selectFrom(tableRef), "selectAll");
148
+ // Add $if for limit
149
+ // q => q.limit(opts!.limit!)
150
+ const limitCallback = arrowFn([id("q")], call(id("q"), "limit", [
151
+ member(b.tsNonNullExpression(member(id("opts"), "limit")),
152
+ // This creates opts!.limit, we need to wrap the whole thing
153
+ // Actually we want: opts!.limit!
154
+ "")
155
+ ]));
156
+ // Simpler approach - just use opts?.limit directly with non-null assertion where needed
157
+ const limitCheck = b.binaryExpression("!=", toExpr(member(b.optionalMemberExpression(id("opts"), id("limit"), false, true), "")), b.nullLiteral());
158
+ // Actually let's simplify - use a cleaner pattern
159
+ // $if(opts?.limit != null, q => q.limit(opts!.limit!))
160
+ query = call(query, "$if", [
161
+ b.binaryExpression("!=", toExpr(b.optionalMemberExpression(id("opts"), id("limit"), false, true)), b.nullLiteral()),
162
+ arrowFn([id("q")], call(id("q"), "limit", [
163
+ b.tsNonNullExpression(toExpr(member(b.tsNonNullExpression(toExpr(id("opts"))), "limit")))
164
+ ]))
165
+ ]);
166
+ // Add $if for offset
167
+ query = call(query, "$if", [
168
+ b.binaryExpression("!=", toExpr(b.optionalMemberExpression(id("opts"), id("offset"), false, true)), b.nullLiteral()),
169
+ arrowFn([id("q")], call(id("q"), "offset", [
170
+ b.tsNonNullExpression(toExpr(member(b.tsNonNullExpression(toExpr(id("opts"))), "offset")))
171
+ ]))
172
+ ]);
173
+ // Add .execute() if executeQueries is true
174
+ if (executeQueries) {
175
+ query = chain(query, "execute");
176
+ }
177
+ // Build opts parameter type: { limit?: number; offset?: number }
178
+ const optsType = ts.objectType([
179
+ { name: "limit", type: ts.number(), optional: true },
180
+ { name: "offset", type: ts.number(), optional: true },
181
+ ]);
182
+ const fn = arrowFn([
183
+ typedParam("db", ts.ref("Kysely", [ts.ref("DB")])),
184
+ optionalTypedParam("opts", optsType),
185
+ ], query);
186
+ return objProp("findMany", fn);
187
+ };
188
+ /**
189
+ * Generate create method:
190
+ * create: (db, data) => db.insertInto('table').values(data).returningAll().executeTakeFirstOrThrow()
191
+ */
192
+ const generateCreate = (ctx) => {
193
+ const { entity, executeQueries } = ctx;
194
+ if (!entity.permissions.canInsert)
195
+ return undefined;
196
+ const tableRef = getTableRef(entity);
197
+ const tableTypeName = getTableTypeName(entity);
198
+ // db.insertInto('table').values(data).returningAll()
199
+ let query = chain(chain(insertInto(tableRef), "values", [id("data")]), "returningAll");
200
+ if (executeQueries) {
201
+ query = chain(query, "executeTakeFirstOrThrow");
202
+ }
203
+ // Use Insertable<TableTypeName> for the data parameter
204
+ const fn = arrowFn([
205
+ typedParam("db", ts.ref("Kysely", [ts.ref("DB")])),
206
+ typedParam("data", ts.ref("Insertable", [ts.ref(tableTypeName)])),
207
+ ], query);
208
+ return objProp("create", fn);
209
+ };
210
+ /**
211
+ * Generate update method:
212
+ * update: (db, id, data) => db.updateTable('table').set(data).where('id', '=', id).returningAll().executeTakeFirstOrThrow()
213
+ */
214
+ const generateUpdate = (ctx) => {
215
+ const { entity, executeQueries } = ctx;
216
+ if (!entity.primaryKey || !entity.permissions.canUpdate)
217
+ return undefined;
218
+ const pkColName = entity.primaryKey.columns[0];
219
+ const pkField = findRowField(entity, pkColName);
220
+ if (!pkField)
221
+ return undefined;
222
+ const tableRef = getTableRef(entity);
223
+ const fieldName = pkField.name;
224
+ const fieldType = getFieldTypeAst(pkField, ctx);
225
+ const tableTypeName = getTableTypeName(entity);
226
+ // db.updateTable('table').set(data).where('id', '=', id).returningAll()
227
+ let query = chain(chain(chain(updateTable(tableRef), "set", [id("data")]), "where", [str(pkColName), str("="), id(fieldName)]), "returningAll");
228
+ if (executeQueries) {
229
+ query = chain(query, "executeTakeFirstOrThrow");
230
+ }
231
+ // Use Updateable<TableTypeName> for the data parameter
232
+ const fn = arrowFn([
233
+ typedParam("db", ts.ref("Kysely", [ts.ref("DB")])),
234
+ typedParam(fieldName, fieldType),
235
+ typedParam("data", ts.ref("Updateable", [ts.ref(tableTypeName)])),
236
+ ], query);
237
+ return objProp("update", fn);
238
+ };
239
+ /**
240
+ * Generate delete method:
241
+ * delete: (db, id) => db.deleteFrom('table').where('id', '=', id).execute()
242
+ */
243
+ const generateDelete = (ctx) => {
244
+ const { entity, executeQueries } = ctx;
245
+ if (!entity.primaryKey || !entity.permissions.canDelete)
246
+ return undefined;
247
+ const pkColName = entity.primaryKey.columns[0];
248
+ const pkField = findRowField(entity, pkColName);
249
+ if (!pkField)
250
+ return undefined;
251
+ const tableRef = getTableRef(entity);
252
+ const fieldName = pkField.name;
253
+ const fieldType = getFieldTypeAst(pkField, ctx);
254
+ // db.deleteFrom('table').where('id', '=', id)
255
+ let query = chain(deleteFrom(tableRef), "where", [str(pkColName), str("="), id(fieldName)]);
256
+ if (executeQueries) {
257
+ query = chain(query, "execute");
258
+ }
259
+ const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(fieldName, fieldType)], query);
260
+ // Use 'remove' since 'delete' is a reserved word
261
+ return objProp("remove", fn);
262
+ };
263
+ /** Generate all CRUD methods for an entity */
264
+ const generateCrudMethods = (ctx) => [
265
+ generateFindById(ctx),
266
+ generateFindMany(ctx),
267
+ generateCreate(ctx),
268
+ generateUpdate(ctx),
269
+ generateDelete(ctx),
270
+ ].filter((p) => p != null);
271
+ // ============================================================================
272
+ // Index-based Lookup Functions
273
+ // ============================================================================
274
+ /** Check if an index should generate a lookup function */
275
+ const shouldGenerateLookup = (index) => !index.isPartial &&
276
+ !index.hasExpressions &&
277
+ index.columns.length === 1 &&
278
+ index.method !== "gin" &&
279
+ index.method !== "gist";
280
+ /** Generate a method name for an index-based lookup */
281
+ const generateLookupName = (index) => {
282
+ const colName = index.columns[0];
283
+ const capitalizedCol = colName.charAt(0).toUpperCase() + colName.slice(1);
284
+ return `findBy${capitalizedCol}`;
285
+ };
286
+ /** Generate a lookup method for a single-column index */
287
+ const generateLookupMethod = (index, ctx) => {
288
+ const { entity, executeQueries } = ctx;
289
+ const tableRef = getTableRef(entity);
290
+ const columnName = index.columnNames[0];
291
+ const field = findRowField(entity, columnName);
292
+ const fieldName = field?.name ?? index.columns[0];
293
+ const fieldType = getFieldTypeAst(field, ctx);
294
+ const isUnique = index.isUnique || index.isPrimary;
295
+ // db.selectFrom('table').selectAll().where('col', '=', value)
296
+ let query = chain(chain(selectFrom(tableRef), "selectAll"), "where", [str(columnName), str("="), id(fieldName)]);
297
+ if (executeQueries) {
298
+ query = chain(query, isUnique ? "executeTakeFirst" : "execute");
299
+ }
300
+ const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(fieldName, fieldType)], query);
301
+ return objProp(generateLookupName(index), fn);
302
+ };
303
+ /** Generate lookup methods for all eligible indexes, deduplicating by name */
304
+ const generateLookupMethods = (ctx) => {
305
+ const seen = new Set();
306
+ return ctx.entity.indexes
307
+ .filter(index => shouldGenerateLookup(index) && !index.isPrimary && ctx.entity.permissions.canSelect)
308
+ .filter(index => {
309
+ const name = generateLookupName(index);
310
+ if (seen.has(name))
311
+ return false;
312
+ seen.add(name);
313
+ return true;
314
+ })
315
+ .map(index => generateLookupMethod(index, ctx));
316
+ };
317
+ // ============================================================================
318
+ // Plugin Definition
319
+ // ============================================================================
320
+ export const kyselyQueriesPlugin = definePlugin({
321
+ name: "kysely-queries",
322
+ provides: ["queries", "queries:kysely"],
323
+ requires: [], // No dependency on types:kysely for now - uses external kysely-codegen types
324
+ configSchema: KyselyQueriesPluginConfig,
325
+ inflection: {
326
+ outputFile: ctx => `${ctx.entityName}.ts`,
327
+ symbolName: (entityName, artifactKind) => `${entityName}${artifactKind}`,
328
+ },
329
+ run: (ctx, config) => {
330
+ const enums = getEnumEntities(ctx.ir);
331
+ const dbTypesPath = config.dbTypesPath ?? "../DB.js";
332
+ const executeQueries = config.executeQueries ?? true;
333
+ getTableEntities(ctx.ir)
334
+ .filter(entity => entity.tags.omit !== true)
335
+ .forEach(entity => {
336
+ const genCtx = { entity, enums, ir: ctx.ir, dbTypesPath, executeQueries };
337
+ const methods = [...generateCrudMethods(genCtx), ...generateLookupMethods(genCtx)];
338
+ if (methods.length === 0)
339
+ return;
340
+ const entityName = ctx.inflection.entityName(entity.pgClass, entity.tags);
341
+ const fileNameCtx = {
342
+ entityName,
343
+ pgName: entity.pgName,
344
+ schema: entity.schemaName,
345
+ inflection: ctx.inflection,
346
+ entity,
347
+ };
348
+ const filePath = `${config.outputDir}/${ctx.pluginInflection.outputFile(fileNameCtx)}`;
349
+ // Build the namespace object: export const users = { findById, findMany, ... }
350
+ const namespaceObj = b.objectExpression(methods.map(m => m));
351
+ // Lowercase entity name for the namespace variable
352
+ const namespaceName = entity.pgName;
353
+ const constDecl = b.variableDeclaration("const", [
354
+ b.variableDeclarator(id(namespaceName), namespaceObj)
355
+ ]);
356
+ const exportDecl = b.exportNamedDeclaration(constDecl, []);
357
+ const file = ctx
358
+ .file(filePath)
359
+ .header(config.header ? `${config.header}\n` : "// This file is auto-generated. Do not edit.\n");
360
+ // Import Kysely type and DB from kysely-codegen output
361
+ file.import({ kind: "package", types: ["Kysely"], from: "kysely" });
362
+ file.import({ kind: "relative", types: ["DB"], from: dbTypesPath });
363
+ // Import Insertable/Updateable helper types and table type if we generate create/update
364
+ const tableTypeName = getTableTypeName(entity);
365
+ if (entity.permissions.canInsert) {
366
+ file.import({ kind: "package", types: ["Insertable"], from: "kysely" });
367
+ file.import({ kind: "relative", types: [tableTypeName], from: dbTypesPath });
368
+ }
369
+ if (entity.permissions.canUpdate) {
370
+ file.import({ kind: "package", types: ["Updateable"], from: "kysely" });
371
+ // Only import table type if not already imported by canInsert
372
+ if (!entity.permissions.canInsert) {
373
+ file.import({ kind: "relative", types: [tableTypeName], from: dbTypesPath });
374
+ }
375
+ }
376
+ file.ast(conjure.program(exportDecl)).emit();
377
+ });
378
+ },
379
+ });
380
+ //# sourceMappingURL=kysely-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kysely-queries.js","sourceRoot":"","sources":["../../src/plugins/kysely-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const sqlQueriesPlugin: import("../index.js").PluginFactory<{
2
+ readonly outputDir: string;
3
+ readonly header?: string | undefined;
4
+ readonly sqlStyle?: "string" | "tag" | undefined;
5
+ }>;
6
+ //# sourceMappingURL=sql-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-queries.d.ts","sourceRoot":"","sources":["../../src/plugins/sql-queries.ts"],"names":[],"mappings":"AAqQA,eAAO,MAAM,gBAAgB;;;;EAiE3B,CAAC"}