@danielfgray/pg-sourcerer 0.1.8 → 0.1.9
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/dist/cli.js +30 -105
- package/dist/cli.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +4 -8
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +4 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +207 -86
- package/dist/init.js.map +1 -1
- package/dist/lib/conjure.d.ts +15 -2
- package/dist/lib/conjure.d.ts.map +1 -1
- package/dist/lib/conjure.js +44 -3
- package/dist/lib/conjure.js.map +1 -1
- package/dist/lib/field-utils.js +5 -8
- package/dist/lib/field-utils.js.map +1 -1
- package/dist/plugins/arktype.d.ts +7 -0
- package/dist/plugins/arktype.d.ts.map +1 -1
- package/dist/plugins/arktype.js +219 -40
- package/dist/plugins/arktype.js.map +1 -1
- package/dist/plugins/effect-model.d.ts +8 -1
- package/dist/plugins/effect-model.d.ts.map +1 -1
- package/dist/plugins/effect-model.js +163 -15
- package/dist/plugins/effect-model.js.map +1 -1
- package/dist/plugins/kysely-queries.d.ts +7 -0
- package/dist/plugins/kysely-queries.d.ts.map +1 -1
- package/dist/plugins/kysely-queries.js +175 -74
- package/dist/plugins/kysely-queries.js.map +1 -1
- package/dist/plugins/sql-queries.d.ts +4 -0
- package/dist/plugins/sql-queries.d.ts.map +1 -1
- package/dist/plugins/sql-queries.js +81 -16
- package/dist/plugins/sql-queries.js.map +1 -1
- package/dist/plugins/types.d.ts +2 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/types.js +1 -1
- package/dist/plugins/types.js.map +1 -1
- package/dist/plugins/zod.d.ts +7 -0
- package/dist/plugins/zod.d.ts.map +1 -1
- package/dist/plugins/zod.js +169 -13
- package/dist/plugins/zod.js.map +1 -1
- package/dist/services/artifact-store.d.ts.map +1 -1
- package/dist/services/artifact-store.js +2 -5
- package/dist/services/artifact-store.js.map +1 -1
- package/dist/services/inflection.d.ts +51 -30
- package/dist/services/inflection.d.ts.map +1 -1
- package/dist/services/inflection.js +86 -93
- package/dist/services/inflection.js.map +1 -1
- package/dist/services/plugin.d.ts +10 -10
- package/dist/services/plugin.d.ts.map +1 -1
- package/dist/services/plugin.js +16 -3
- package/dist/services/plugin.js.map +1 -1
- package/package.json +3 -2
|
@@ -16,20 +16,26 @@ const { toExpr } = cast;
|
|
|
16
16
|
// Configuration
|
|
17
17
|
// ============================================================================
|
|
18
18
|
const KyselyQueriesPluginConfig = S.Struct({
|
|
19
|
-
outputDir: S.String,
|
|
19
|
+
outputDir: S.optionalWith(S.String, { default: () => "kysely-queries" }),
|
|
20
20
|
header: S.optional(S.String),
|
|
21
21
|
/**
|
|
22
22
|
* Path to import DB type from (relative to outputDir).
|
|
23
23
|
* Defaults to "../DB.js" which works with kysely-codegen's DB.d.ts output.
|
|
24
24
|
* For node16/nodenext module resolution, use ".js" extension even for .d.ts files.
|
|
25
25
|
*/
|
|
26
|
-
dbTypesPath: S.
|
|
26
|
+
dbTypesPath: S.optionalWith(S.String, { default: () => "../DB.js" }),
|
|
27
27
|
/**
|
|
28
28
|
* Whether to call .execute() / .executeTakeFirst() on queries.
|
|
29
29
|
* When true (default), methods return Promise<Row> or Promise<Row[]>.
|
|
30
30
|
* When false, methods return the query builder for further customization.
|
|
31
31
|
*/
|
|
32
|
-
executeQueries: S.
|
|
32
|
+
executeQueries: S.optionalWith(S.Boolean, { default: () => true }),
|
|
33
|
+
/**
|
|
34
|
+
* Whether to generate listMany() method for unfiltered table scans.
|
|
35
|
+
* Disabled by default since unfiltered scans don't use indexes.
|
|
36
|
+
* When enabled, generates: listMany(db, limit = 50, offset = 0)
|
|
37
|
+
*/
|
|
38
|
+
generateListMany: S.optionalWith(S.Boolean, { default: () => false }),
|
|
33
39
|
});
|
|
34
40
|
/**
|
|
35
41
|
* Get the Kysely table interface name from the entity.
|
|
@@ -49,6 +55,41 @@ const getFieldTypeAst = (field, ctx) => {
|
|
|
49
55
|
return resolved.enumDef ? ts.ref(resolved.enumDef.name) : tsTypeToAst(resolved.tsType);
|
|
50
56
|
};
|
|
51
57
|
// ============================================================================
|
|
58
|
+
// FK Semantic Naming Helpers
|
|
59
|
+
// ============================================================================
|
|
60
|
+
/**
|
|
61
|
+
* Find a belongsTo relation that uses the given column as its local FK column.
|
|
62
|
+
* For single-column indexes only.
|
|
63
|
+
*/
|
|
64
|
+
const findRelationForColumn = (entity, columnName) => entity.relations.find(r => r.kind === "belongsTo" && r.columns.length === 1 && r.columns[0]?.local === columnName);
|
|
65
|
+
/**
|
|
66
|
+
* Derive semantic name for an FK-based lookup.
|
|
67
|
+
* Priority: @fieldName tag → column minus _id suffix → target entity name
|
|
68
|
+
*/
|
|
69
|
+
const deriveSemanticName = (relation, columnName) => {
|
|
70
|
+
// 1. Check for @fieldName smart tag
|
|
71
|
+
if (relation.tags.fieldName && typeof relation.tags.fieldName === "string") {
|
|
72
|
+
return relation.tags.fieldName;
|
|
73
|
+
}
|
|
74
|
+
// 2. Strip common FK suffixes from column name
|
|
75
|
+
const suffixes = ["_id", "_fk", "Id", "Fk"];
|
|
76
|
+
for (const suffix of suffixes) {
|
|
77
|
+
if (columnName.endsWith(suffix)) {
|
|
78
|
+
const stripped = columnName.slice(0, -suffix.length);
|
|
79
|
+
if (stripped.length > 0)
|
|
80
|
+
return stripped;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// 3. Fall back to target entity name (lowercased first char)
|
|
84
|
+
const target = relation.targetEntity;
|
|
85
|
+
return target.charAt(0).toLowerCase() + target.slice(1);
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Convert to PascalCase for use in method names.
|
|
89
|
+
* Handles snake_case (created_at → CreatedAt) and regular strings.
|
|
90
|
+
*/
|
|
91
|
+
const toPascalCase = (s) => inflect.pascalCase(s);
|
|
92
|
+
// ============================================================================
|
|
52
93
|
// AST Building Helpers
|
|
53
94
|
// ============================================================================
|
|
54
95
|
/** Create identifier */
|
|
@@ -131,59 +172,37 @@ const generateFindById = (ctx) => {
|
|
|
131
172
|
const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(fieldName, fieldType)], query);
|
|
132
173
|
return objProp("findById", fn);
|
|
133
174
|
};
|
|
175
|
+
/** Default limit for findMany queries */
|
|
176
|
+
const DEFAULT_LIMIT = 50;
|
|
177
|
+
/** Default offset for findMany queries */
|
|
178
|
+
const DEFAULT_OFFSET = 0;
|
|
179
|
+
/**
|
|
180
|
+
* Create a parameter with a default value: name = defaultValue
|
|
181
|
+
* Type is inferred from the default value, no explicit annotation.
|
|
182
|
+
*/
|
|
183
|
+
const paramWithDefault = (name, defaultValue) => b.assignmentPattern(id(name), toExpr(defaultValue));
|
|
134
184
|
/**
|
|
135
|
-
* Generate
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* .$if(opts?.offset != null, q => q.offset(opts!.offset!))
|
|
139
|
-
* .execute()
|
|
185
|
+
* Generate listMany method with pagination defaults:
|
|
186
|
+
* listMany: (db, limit = 50, offset = 0) => db.selectFrom('table').selectAll()
|
|
187
|
+
* .limit(limit).offset(offset).execute()
|
|
140
188
|
*/
|
|
141
|
-
const
|
|
189
|
+
const generateListMany = (ctx) => {
|
|
142
190
|
const { entity, executeQueries } = ctx;
|
|
143
191
|
if (!entity.permissions.canSelect)
|
|
144
192
|
return undefined;
|
|
145
193
|
const tableRef = getTableRef(entity);
|
|
146
|
-
// Build
|
|
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
|
-
]);
|
|
194
|
+
// Build query: db.selectFrom('table').selectAll().limit(limit).offset(offset)
|
|
195
|
+
let query = chain(chain(chain(selectFrom(tableRef), "selectAll"), "limit", [id("limit")]), "offset", [id("offset")]);
|
|
173
196
|
// Add .execute() if executeQueries is true
|
|
174
197
|
if (executeQueries) {
|
|
175
198
|
query = chain(query, "execute");
|
|
176
199
|
}
|
|
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
200
|
const fn = arrowFn([
|
|
183
201
|
typedParam("db", ts.ref("Kysely", [ts.ref("DB")])),
|
|
184
|
-
|
|
202
|
+
paramWithDefault("limit", b.numericLiteral(DEFAULT_LIMIT)),
|
|
203
|
+
paramWithDefault("offset", b.numericLiteral(DEFAULT_OFFSET)),
|
|
185
204
|
], query);
|
|
186
|
-
return objProp("
|
|
205
|
+
return objProp("listMany", fn);
|
|
187
206
|
};
|
|
188
207
|
/**
|
|
189
208
|
* Generate create method:
|
|
@@ -263,7 +282,7 @@ const generateDelete = (ctx) => {
|
|
|
263
282
|
/** Generate all CRUD methods for an entity */
|
|
264
283
|
const generateCrudMethods = (ctx) => [
|
|
265
284
|
generateFindById(ctx),
|
|
266
|
-
|
|
285
|
+
ctx.generateListMany ? generateListMany(ctx) : undefined,
|
|
267
286
|
generateCreate(ctx),
|
|
268
287
|
generateUpdate(ctx),
|
|
269
288
|
generateDelete(ctx),
|
|
@@ -277,42 +296,108 @@ const shouldGenerateLookup = (index) => !index.isPartial &&
|
|
|
277
296
|
index.columns.length === 1 &&
|
|
278
297
|
index.method !== "gin" &&
|
|
279
298
|
index.method !== "gist";
|
|
280
|
-
/**
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
299
|
+
/**
|
|
300
|
+
* Generate a method name for an index-based lookup.
|
|
301
|
+
* Uses semantic naming when the column corresponds to an FK relation.
|
|
302
|
+
*/
|
|
303
|
+
const generateLookupName = (entity, index, relation) => {
|
|
304
|
+
const isUnique = isUniqueLookup(entity, index);
|
|
305
|
+
// Kysely uses "findBy" prefix consistently, with "One" or "Many" suffix
|
|
306
|
+
const prefix = isUnique ? "findOneBy" : "findManyBy";
|
|
307
|
+
// Use semantic name if FK relation exists, otherwise fall back to column name
|
|
308
|
+
const columnName = index.columnNames[0];
|
|
309
|
+
const byName = relation
|
|
310
|
+
? deriveSemanticName(relation, columnName)
|
|
311
|
+
: index.columns[0];
|
|
312
|
+
return `${prefix}${toPascalCase(byName)}`;
|
|
285
313
|
};
|
|
286
|
-
/**
|
|
314
|
+
/**
|
|
315
|
+
* Generate a lookup method for a single-column index.
|
|
316
|
+
* Uses semantic parameter naming when the column corresponds to an FK relation.
|
|
317
|
+
*/
|
|
287
318
|
const generateLookupMethod = (index, ctx) => {
|
|
288
319
|
const { entity, executeQueries } = ctx;
|
|
289
320
|
const tableRef = getTableRef(entity);
|
|
290
321
|
const columnName = index.columnNames[0];
|
|
291
322
|
const field = findRowField(entity, columnName);
|
|
292
323
|
const fieldName = field?.name ?? index.columns[0];
|
|
293
|
-
const
|
|
294
|
-
|
|
324
|
+
const isUnique = isUniqueLookup(entity, index);
|
|
325
|
+
// Check if this index column corresponds to an FK relation
|
|
326
|
+
const relation = findRelationForColumn(entity, columnName);
|
|
327
|
+
// Use semantic param name if FK relation exists, otherwise use field name
|
|
328
|
+
const paramName = relation
|
|
329
|
+
? deriveSemanticName(relation, columnName)
|
|
330
|
+
: fieldName;
|
|
331
|
+
// For FK columns, use indexed access on Selectable<TableType> to get the unwrapped type
|
|
332
|
+
// (Kysely's Generated<T> types need Selectable to unwrap for use in where clauses)
|
|
333
|
+
// For regular columns, use the field's type directly
|
|
334
|
+
const useSemanticNaming = relation !== undefined && paramName !== fieldName;
|
|
335
|
+
const tableTypeName = getTableTypeName(entity);
|
|
336
|
+
const paramType = useSemanticNaming
|
|
337
|
+
? ts.indexedAccess(ts.ref("Selectable", [ts.ref(tableTypeName)]), ts.literal(fieldName))
|
|
338
|
+
: getFieldTypeAst(field, ctx);
|
|
295
339
|
// db.selectFrom('table').selectAll().where('col', '=', value)
|
|
296
|
-
let query = chain(chain(selectFrom(tableRef), "selectAll"), "where", [str(columnName), str("="), id(
|
|
340
|
+
let query = chain(chain(selectFrom(tableRef), "selectAll"), "where", [str(columnName), str("="), id(paramName)]);
|
|
297
341
|
if (executeQueries) {
|
|
298
342
|
query = chain(query, isUnique ? "executeTakeFirst" : "execute");
|
|
299
343
|
}
|
|
300
|
-
const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(
|
|
301
|
-
|
|
344
|
+
const fn = arrowFn([typedParam("db", ts.ref("Kysely", [ts.ref("DB")])), typedParam(paramName, paramType)], query);
|
|
345
|
+
const methodName = generateLookupName(entity, index, relation);
|
|
346
|
+
return objProp(methodName, fn);
|
|
302
347
|
};
|
|
303
|
-
/**
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
348
|
+
/**
|
|
349
|
+
* Check if a column is covered by a unique constraint (not just unique index).
|
|
350
|
+
* This helps determine if a non-unique B-tree index on the column still
|
|
351
|
+
* returns at most one row.
|
|
352
|
+
*/
|
|
353
|
+
const columnHasUniqueConstraint = (entity, columnName) => {
|
|
354
|
+
const constraints = entity.pgClass.getConstraints();
|
|
355
|
+
return constraints.some(c => {
|
|
356
|
+
// 'u' = unique constraint, 'p' = primary key
|
|
357
|
+
if (c.contype !== "u" && c.contype !== "p")
|
|
358
|
+
return false;
|
|
359
|
+
// Single-column constraint on our column?
|
|
360
|
+
const conkey = c.conkey ?? [];
|
|
361
|
+
if (conkey.length !== 1)
|
|
311
362
|
return false;
|
|
312
|
-
|
|
363
|
+
// Find the attribute with this attnum
|
|
364
|
+
const attrs = entity.pgClass.getAttributes();
|
|
365
|
+
const attr = attrs.find(a => a.attnum === conkey[0]);
|
|
366
|
+
return attr?.attname === columnName;
|
|
367
|
+
});
|
|
368
|
+
};
|
|
369
|
+
/**
|
|
370
|
+
* Determine if a lookup should be treated as unique (returns one row).
|
|
371
|
+
* True if: index is unique, index is primary, OR column has unique constraint.
|
|
372
|
+
*/
|
|
373
|
+
const isUniqueLookup = (entity, index) => {
|
|
374
|
+
if (index.isUnique || index.isPrimary)
|
|
313
375
|
return true;
|
|
314
|
-
|
|
315
|
-
|
|
376
|
+
// Check if the single column has a unique constraint
|
|
377
|
+
const columnName = index.columnNames[0];
|
|
378
|
+
return columnName ? columnHasUniqueConstraint(entity, columnName) : false;
|
|
379
|
+
};
|
|
380
|
+
/** Generate lookup methods for all eligible indexes, deduplicating by column */
|
|
381
|
+
const generateLookupMethods = (ctx) => {
|
|
382
|
+
const eligibleIndexes = ctx.entity.indexes
|
|
383
|
+
.filter(index => shouldGenerateLookup(index) && !index.isPrimary && ctx.entity.permissions.canSelect);
|
|
384
|
+
// Group by column name, keeping only one index per column
|
|
385
|
+
// Prefer unique indexes, but also consider columns with unique constraints
|
|
386
|
+
const byColumn = new Map();
|
|
387
|
+
for (const index of eligibleIndexes) {
|
|
388
|
+
const columnName = index.columnNames[0];
|
|
389
|
+
const existing = byColumn.get(columnName);
|
|
390
|
+
if (!existing) {
|
|
391
|
+
byColumn.set(columnName, index);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
// Prefer explicitly unique index over non-unique
|
|
395
|
+
if (index.isUnique && !existing.isUnique) {
|
|
396
|
+
byColumn.set(columnName, index);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return Array.from(byColumn.values()).map(index => generateLookupMethod(index, ctx));
|
|
316
401
|
};
|
|
317
402
|
// ============================================================================
|
|
318
403
|
// Plugin Definition
|
|
@@ -328,12 +413,11 @@ export const kyselyQueriesPlugin = definePlugin({
|
|
|
328
413
|
},
|
|
329
414
|
run: (ctx, config) => {
|
|
330
415
|
const enums = getEnumEntities(ctx.ir);
|
|
331
|
-
const dbTypesPath = config
|
|
332
|
-
const executeQueries = config.executeQueries ?? true;
|
|
416
|
+
const { dbTypesPath, executeQueries, generateListMany } = config;
|
|
333
417
|
getTableEntities(ctx.ir)
|
|
334
418
|
.filter(entity => entity.tags.omit !== true)
|
|
335
419
|
.forEach(entity => {
|
|
336
|
-
const genCtx = { entity, enums, ir: ctx.ir, dbTypesPath, executeQueries };
|
|
420
|
+
const genCtx = { entity, enums, ir: ctx.ir, dbTypesPath, executeQueries, generateListMany };
|
|
337
421
|
const methods = [...generateCrudMethods(genCtx), ...generateLookupMethods(genCtx)];
|
|
338
422
|
if (methods.length === 0)
|
|
339
423
|
return;
|
|
@@ -362,16 +446,33 @@ export const kyselyQueriesPlugin = definePlugin({
|
|
|
362
446
|
file.import({ kind: "relative", types: ["DB"], from: dbTypesPath });
|
|
363
447
|
// Import Insertable/Updateable helper types and table type if we generate create/update
|
|
364
448
|
const tableTypeName = getTableTypeName(entity);
|
|
449
|
+
// Check if any lookup methods use semantic naming (FK with Selectable indexed access)
|
|
450
|
+
const hasSemanticLookups = entity.indexes.some(index => {
|
|
451
|
+
if (!shouldGenerateLookup(index) || index.isPrimary)
|
|
452
|
+
return false;
|
|
453
|
+
const columnName = index.columnNames[0];
|
|
454
|
+
const relation = findRelationForColumn(entity, columnName);
|
|
455
|
+
if (!relation)
|
|
456
|
+
return false;
|
|
457
|
+
const paramName = deriveSemanticName(relation, columnName);
|
|
458
|
+
const field = findRowField(entity, columnName);
|
|
459
|
+
const fieldName = field?.name ?? index.columns[0];
|
|
460
|
+
return paramName !== fieldName;
|
|
461
|
+
});
|
|
462
|
+
// Import table type if needed for Insertable/Updateable or semantic lookups
|
|
463
|
+
const needsTableType = entity.permissions.canInsert || entity.permissions.canUpdate || hasSemanticLookups;
|
|
464
|
+
if (needsTableType) {
|
|
465
|
+
file.import({ kind: "relative", types: [tableTypeName], from: dbTypesPath });
|
|
466
|
+
}
|
|
467
|
+
// Import Selectable if we have semantic lookups (for unwrapping Generated<T>)
|
|
468
|
+
if (hasSemanticLookups) {
|
|
469
|
+
file.import({ kind: "package", types: ["Selectable"], from: "kysely" });
|
|
470
|
+
}
|
|
365
471
|
if (entity.permissions.canInsert) {
|
|
366
472
|
file.import({ kind: "package", types: ["Insertable"], from: "kysely" });
|
|
367
|
-
file.import({ kind: "relative", types: [tableTypeName], from: dbTypesPath });
|
|
368
473
|
}
|
|
369
474
|
if (entity.permissions.canUpdate) {
|
|
370
475
|
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
476
|
}
|
|
376
477
|
file.ast(conjure.program(exportDecl)).emit();
|
|
377
478
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely-queries.js","sourceRoot":"","sources":["../../src/plugins/kysely-queries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAEnD,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,CAAA;AACzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;AAEvB,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM;IACnB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5B;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACjC;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;CACtC,CAAC,CAAA;AAgBF;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAU,EAAE,CACvD,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;AAEhF,qDAAqD;AACrD,MAAM,WAAW,GAAG,CAAC,MAAmB,EAAU,EAAE,CAClD,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAA;AAEzC,mDAAmD;AACnD,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAqB,EAAE,CAClF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAA;AAEjE,8CAA8C;AAC9C,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAE,GAAsB,EAAY,EAAE;IACrF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAA;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IACtE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACxF,CAAC,CAAA;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,wBAAwB;AACxB,MAAM,EAAE,GAAG,CAAC,IAAY,EAAgB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAE7D,yCAAyC;AACzC,MAAM,MAAM,GAAG,CAAC,GAAiB,EAAE,IAAY,EAAsB,EAAE,CACrE,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3C,2CAA2C;AAC3C,MAAM,IAAI,GAAG,CAAC,GAAiB,EAAE,MAAc,EAAE,OAAuB,EAAE,EAAoB,EAAE,CAC9F,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAEzD,4BAA4B;AAC5B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAmB,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AAEtE,yCAAyC;AACzC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,IAAc,EAAgB,EAAE;IAChE,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,mDAAmD;AACnD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,IAAc,EAAgB,EAAE;IACxE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACpC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAoB,EAAE,CACxD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE/C;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAoB,EAAE,CACxD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAoB,EAAE,CACzD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEhD;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAoB,EAAE,CACxD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE/C;;GAEG;AACH,MAAM,KAAK,GAAG,CAAC,IAAkB,EAAE,MAAc,EAAE,OAAuB,EAAE,EAAoB,EAAE,CAChG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAE1B;;GAEG;AACH,MAAM,OAAO,GAAG,CACd,MAAsB,EACtB,IAAkB,EACS,EAAE;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,uBAAuB,CAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAuD,CAAC,EACxE,MAAM,CAAC,IAAI,CAAC,CACb,CAAA;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAmB,EAAoB,EAAE;IACrE,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAsB,EAAgC,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE/C,2DAA2D;IAC3D,IAAI,KAAK,GAAiB,KAAK,CAC7B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EACxC,OAAO,EACP,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAC1C,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAChB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EACtF,KAAK,CACN,CAAA;IAED,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAsB,EAAgC,EAAE;IAChF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEpC,uBAAuB;IACvB,IAAI,KAAK,GAAiB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAA;IAElE,oBAAoB;IACpB,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAC3B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EACT,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE;QACrB,MAAM,CACJ,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAClD,4DAA4D;QAC5D,iCAAiC;QACjC,EAAE,CACH;KACF,CAAC,CACH,CAAA;IACD,wFAAwF;IACxF,MAAM,UAAU,GAAG,CAAC,CAAC,gBAAgB,CACnC,IAAI,EACJ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EACpF,CAAC,CAAC,WAAW,EAAE,CAChB,CAAA;IAED,kDAAkD;IAClD,uDAAuD;IACvD,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,gBAAgB,CAChB,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EACxE,CAAC,CAAC,WAAW,EAAE,CAChB;QACD,OAAO,CACL,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EACT,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE;YACrB,CAAC,CAAC,mBAAmB,CACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CACnE;SACF,CAAC,CACH;KACF,CAAC,CAAA;IAEF,qBAAqB;IACrB,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;QACzB,CAAC,CAAC,gBAAgB,CAChB,IAAI,EACJ,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EACzE,CAAC,CAAC,WAAW,EAAE,CAChB;QACD,OAAO,CACL,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EACT,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE;YACtB,CAAC,CAAC,mBAAmB,CACnB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CACpE;SACF,CAAC,CACH;KACF,CAAC,CAAA;IAEF,2CAA2C;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;QAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACtD,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,OAAO,CAChB;QACE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;KACrC,EACD,KAAK,CACN,CAAA;IAED,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,GAAsB,EAAgC,EAAE;IAC9E,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE9C,qDAAqD;IACrD,IAAI,KAAK,GAAiB,KAAK,CAC7B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACnD,cAAc,CACf,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAA;IACjD,CAAC;IAED,uDAAuD;IACvD,MAAM,EAAE,GAAG,OAAO,CAChB;QACE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KAClE,EACD,KAAK,CACN,CAAA;IAED,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,GAAsB,EAAgC,EAAE;IAC9E,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE9C,wEAAwE;IACxE,IAAI,KAAK,GAAiB,KAAK,CAC7B,KAAK,CACH,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACjD,OAAO,EACP,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAC1C,EACD,cAAc,CACf,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAA;IACjD,CAAC;IAED,uDAAuD;IACvD,MAAM,EAAE,GAAG,OAAO,CAChB;QACE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC;QAChC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KAClE,EACD,KAAK,CACN,CAAA;IAED,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,GAAsB,EAAgC,EAAE;IAC9E,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAE/C,8CAA8C;IAC9C,IAAI,KAAK,GAAiB,KAAK,CAC7B,UAAU,CAAC,QAAQ,CAAC,EACpB,OAAO,EACP,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAC1C,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAChB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EACtF,KAAK,CACN,CAAA;IAED,iDAAiD;IACjD,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,8CAA8C;AAC9C,MAAM,mBAAmB,GAAG,CAAC,GAAsB,EAA+B,EAAE,CAClF;IACE,gBAAgB,CAAC,GAAG,CAAC;IACrB,gBAAgB,CAAC,GAAG,CAAC;IACrB,cAAc,CAAC,GAAG,CAAC;IACnB,cAAc,CAAC,GAAG,CAAC;IACnB,cAAc,CAAC,GAAG,CAAC;CACpB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAA;AAEnD,+EAA+E;AAC/E,+BAA+B;AAC/B,+EAA+E;AAE/E,0DAA0D;AAC1D,MAAM,oBAAoB,GAAG,CAAC,KAAe,EAAW,EAAE,CACxD,CAAC,KAAK,CAAC,SAAS;IAChB,CAAC,KAAK,CAAC,cAAc;IACrB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;IAC1B,KAAK,CAAC,MAAM,KAAK,KAAK;IACtB,KAAK,CAAC,MAAM,KAAK,MAAM,CAAA;AAEzB,uDAAuD;AACvD,MAAM,kBAAkB,GAAG,CAAC,KAAe,EAAU,EAAE;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;IACjC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzE,OAAO,SAAS,cAAc,EAAE,CAAA;AAClC,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,oBAAoB,GAAG,CAAC,KAAe,EAAE,GAAsB,EAAoB,EAAE;IACzF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAA;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAA;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAA;IAElD,8DAA8D;IAC9D,IAAI,KAAK,GAAiB,KAAK,CAC7B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EACxC,OAAO,EACP,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAC3C,CAAA;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAChB,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EACtF,KAAK,CACN,CAAA;IAED,OAAO,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,8EAA8E;AAC9E,MAAM,qBAAqB,GAAG,CAAC,GAAsB,EAA+B,EAAE;IACpF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO;SACtB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;SACpG,MAAM,CAAC,KAAK,CAAC,EAAE;QACd,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAA;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;IAC9C,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACvC,QAAQ,EAAE,EAAE,EAAG,6EAA6E;IAC5F,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,KAAK;QACzC,UAAU,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,UAAU,GAAG,YAAY,EAAE;KACzE;IAED,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAA;QACpD,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAA;QAEpD,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;aACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;aAC3C,OAAO,CAAC,MAAM,CAAC,EAAE;YAChB,MAAM,MAAM,GAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;YAE5F,MAAM,OAAO,GAAG,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA;YAElF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAEhC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACzE,MAAM,WAAW,GAAoB;gBACnC,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,UAAU;gBACzB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,MAAM;aACP,CAAA;YACD,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAA;YAEtF,+EAA+E;YAC/E,MAAM,YAAY,GAAG,CAAC,CAAC,gBAAgB,CACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgD,CAAC,CACnE,CAAA;YAED,mDAAmD;YACnD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAA;YAEnC,MAAM,SAAS,GAAG,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBAC/C,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;aACtD,CAAC,CAAA;YACF,MAAM,UAAU,GAAG,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAgB,CAAA;YAEzE,MAAM,IAAI,GAAG,GAAG;iBACb,IAAI,CAAC,QAAQ,CAAC;iBACd,MAAM,CACL,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,gDAAgD,CACxF,CAAA;YAEH,uDAAuD;YACvD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACnE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;YAEnE,wFAAwF;YACxF,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAC9C,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACvE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;YAC9E,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACvE,8DAA8D;gBAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC9E,CAAC;YACH,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC9C,CAAC,CAAC,CAAA;IACN,CAAC;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"kysely-queries.js","sourceRoot":"","sources":["../../src/plugins/kysely-queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export declare const sqlQueriesPlugin: import("../index.js").PluginFactory<{
|
|
2
2
|
readonly outputDir: string;
|
|
3
3
|
readonly header?: string | undefined;
|
|
4
|
+
readonly sqlStyle: "string" | "tag";
|
|
5
|
+
}, {
|
|
6
|
+
readonly outputDir?: string | undefined;
|
|
7
|
+
readonly header?: string | undefined;
|
|
4
8
|
readonly sqlStyle?: "string" | "tag" | undefined;
|
|
5
9
|
}>;
|
|
6
10
|
//# sourceMappingURL=sql-queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-queries.d.ts","sourceRoot":"","sources":["../../src/plugins/sql-queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sql-queries.d.ts","sourceRoot":"","sources":["../../src/plugins/sql-queries.ts"],"names":[],"mappings":"AA2VA,eAAO,MAAM,gBAAgB;;;;;;;;EAiE3B,CAAC"}
|
|
@@ -7,15 +7,16 @@ import { getTableEntities, getEnumEntities } from "../ir/semantic-ir.js";
|
|
|
7
7
|
import { conjure } from "../lib/conjure.js";
|
|
8
8
|
import { hex } from "../lib/hex.js";
|
|
9
9
|
import { resolveFieldType, tsTypeToAst } from "../lib/field-utils.js";
|
|
10
|
+
import { inflect } from "../services/inflection.js";
|
|
10
11
|
const { ts, b, param } = conjure;
|
|
11
12
|
// ============================================================================
|
|
12
13
|
// Configuration
|
|
13
14
|
// ============================================================================
|
|
14
15
|
const SqlQueriesPluginConfig = S.Struct({
|
|
15
|
-
outputDir: S.String,
|
|
16
|
+
outputDir: S.optionalWith(S.String, { default: () => "sql-queries" }),
|
|
16
17
|
header: S.optional(S.String),
|
|
17
18
|
/** SQL query style. Defaults to "tag" (tagged template literals) */
|
|
18
|
-
sqlStyle: S.
|
|
19
|
+
sqlStyle: S.optionalWith(S.Union(S.Literal("tag"), S.Literal("string")), { default: () => "tag" }),
|
|
19
20
|
});
|
|
20
21
|
/** Find a field in the row shape by column name */
|
|
21
22
|
const findRowField = (entity, columnName) => entity.shapes.row.fields.find(f => f.columnName === columnName);
|
|
@@ -27,6 +28,44 @@ const getFieldTypeAst = (field, ctx) => {
|
|
|
27
28
|
return resolved.enumDef ? ts.ref(resolved.enumDef.name) : tsTypeToAst(resolved.tsType);
|
|
28
29
|
};
|
|
29
30
|
// ============================================================================
|
|
31
|
+
// FK Semantic Naming Helpers
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* Find a belongsTo relation that uses the given column as its local FK column.
|
|
35
|
+
* For single-column indexes only.
|
|
36
|
+
*/
|
|
37
|
+
const findRelationForColumn = (entity, columnName) => entity.relations.find(r => r.kind === "belongsTo" && r.columns.length === 1 && r.columns[0]?.local === columnName);
|
|
38
|
+
/**
|
|
39
|
+
* Derive semantic name for an FK-based lookup.
|
|
40
|
+
* Priority: @fieldName tag → column minus _id suffix → target entity name
|
|
41
|
+
*/
|
|
42
|
+
const deriveSemanticName = (relation, columnName) => {
|
|
43
|
+
// 1. Check for @fieldName smart tag
|
|
44
|
+
if (relation.tags.fieldName && typeof relation.tags.fieldName === "string") {
|
|
45
|
+
return relation.tags.fieldName;
|
|
46
|
+
}
|
|
47
|
+
// 2. Strip common FK suffixes from column name
|
|
48
|
+
const suffixes = ["_id", "_fk", "Id", "Fk"];
|
|
49
|
+
for (const suffix of suffixes) {
|
|
50
|
+
if (columnName.endsWith(suffix)) {
|
|
51
|
+
const stripped = columnName.slice(0, -suffix.length);
|
|
52
|
+
if (stripped.length > 0)
|
|
53
|
+
return stripped;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// 3. Fall back to target entity name (lowercased first char)
|
|
57
|
+
const target = relation.targetEntity;
|
|
58
|
+
return target.charAt(0).toLowerCase() + target.slice(1);
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Capitalize first letter for use in function names
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* Convert to PascalCase for use in function names.
|
|
65
|
+
* Handles snake_case (created_at → CreatedAt) and regular strings.
|
|
66
|
+
*/
|
|
67
|
+
const toPascalCase = (s) => inflect.pascalCase(s);
|
|
68
|
+
// ============================================================================
|
|
30
69
|
// CRUD Function Generators
|
|
31
70
|
// ============================================================================
|
|
32
71
|
/** Generate findById function if entity has a primary key and canSelect permission */
|
|
@@ -139,15 +178,26 @@ const shouldGenerateLookup = (index) => !index.isPartial &&
|
|
|
139
178
|
index.columns.length === 1 &&
|
|
140
179
|
index.method !== "gin" &&
|
|
141
180
|
index.method !== "gist";
|
|
142
|
-
/**
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
181
|
+
/**
|
|
182
|
+
* Generate a function name for an index-based lookup.
|
|
183
|
+
* Uses semantic naming when the column corresponds to an FK relation.
|
|
184
|
+
*/
|
|
185
|
+
const generateLookupName = (entity, index, relation) => {
|
|
186
|
+
const isUnique = index.isUnique || index.isPrimary;
|
|
187
|
+
const entityName = isUnique
|
|
188
|
+
? entity.name.replace(/s$/, "") // singular for unique
|
|
189
|
+
: entity.name.replace(/s$/, "") + "s"; // plural for non-unique
|
|
190
|
+
// Use semantic name if FK relation exists, otherwise fall back to column name
|
|
191
|
+
const columnName = index.columnNames[0];
|
|
192
|
+
const byName = relation
|
|
193
|
+
? deriveSemanticName(relation, columnName)
|
|
194
|
+
: index.columns[0];
|
|
195
|
+
return `get${entityName}By${toPascalCase(byName)}`;
|
|
149
196
|
};
|
|
150
|
-
/**
|
|
197
|
+
/**
|
|
198
|
+
* Generate a lookup function for a single-column index.
|
|
199
|
+
* Uses semantic parameter naming when the column corresponds to an FK relation.
|
|
200
|
+
*/
|
|
151
201
|
const generateLookupFunction = (index, ctx) => {
|
|
152
202
|
const { entity, sqlStyle } = ctx;
|
|
153
203
|
const rowType = entity.shapes.row.name;
|
|
@@ -155,22 +205,35 @@ const generateLookupFunction = (index, ctx) => {
|
|
|
155
205
|
const field = findRowField(entity, columnName);
|
|
156
206
|
const fieldName = field?.name ?? index.columns[0];
|
|
157
207
|
const isUnique = index.isUnique || index.isPrimary;
|
|
208
|
+
// Check if this index column corresponds to an FK relation
|
|
209
|
+
const relation = findRelationForColumn(entity, columnName);
|
|
210
|
+
// Use semantic param name if FK relation exists, otherwise use field name
|
|
211
|
+
const paramName = relation
|
|
212
|
+
? deriveSemanticName(relation, columnName)
|
|
213
|
+
: fieldName;
|
|
214
|
+
// For semantic naming, use indexed access type (Post["userId"])
|
|
215
|
+
// For regular naming, use Pick<Post, "fieldName">
|
|
216
|
+
const useSemanticNaming = relation !== undefined && paramName !== fieldName;
|
|
158
217
|
const parts = {
|
|
159
218
|
templateParts: [`select * from ${entity.schemaName}.${entity.pgName} where ${columnName} = `, ""],
|
|
160
|
-
params: [b.identifier(
|
|
219
|
+
params: [b.identifier(paramName)],
|
|
161
220
|
};
|
|
162
|
-
const fnName = generateLookupName(entity, index);
|
|
221
|
+
const fnName = generateLookupName(entity, index, relation);
|
|
222
|
+
// Build the parameter - use indexed access type for semantic naming
|
|
223
|
+
const paramNode = useSemanticNaming
|
|
224
|
+
? param.typed(paramName, ts.indexedAccess(ts.ref(rowType), ts.literal(fieldName)))
|
|
225
|
+
: param.pick([fieldName], rowType);
|
|
163
226
|
if (isUnique) {
|
|
164
227
|
// Extract first row for unique lookups
|
|
165
228
|
const queryExpr = hex.query(sqlStyle, parts, ts.array(ts.ref(rowType)));
|
|
166
229
|
const varDecl = hex.firstRowDecl(sqlStyle, "result", queryExpr);
|
|
167
|
-
return hex.exportFn(hex.asyncFn(fnName, [
|
|
230
|
+
return hex.exportFn(hex.asyncFn(fnName, [paramNode], [
|
|
168
231
|
varDecl,
|
|
169
232
|
b.returnStatement(b.identifier("result")),
|
|
170
233
|
]));
|
|
171
234
|
}
|
|
172
235
|
// Non-unique: return all matching rows
|
|
173
|
-
return hex.exportFn(hex.asyncFn(fnName, [
|
|
236
|
+
return hex.exportFn(hex.asyncFn(fnName, [paramNode], hex.returnQuery(sqlStyle, parts, ts.array(ts.ref(rowType)))));
|
|
174
237
|
};
|
|
175
238
|
/** Generate lookup functions for all eligible indexes, deduplicating by name */
|
|
176
239
|
const generateLookupFunctions = (ctx) => {
|
|
@@ -178,7 +241,9 @@ const generateLookupFunctions = (ctx) => {
|
|
|
178
241
|
return ctx.entity.indexes
|
|
179
242
|
.filter(index => shouldGenerateLookup(index) && !index.isPrimary)
|
|
180
243
|
.filter(index => {
|
|
181
|
-
const
|
|
244
|
+
const columnName = index.columnNames[0];
|
|
245
|
+
const relation = findRelationForColumn(ctx.entity, columnName);
|
|
246
|
+
const name = generateLookupName(ctx.entity, index, relation);
|
|
182
247
|
if (seen.has(name))
|
|
183
248
|
return false;
|
|
184
249
|
seen.add(name);
|
|
@@ -200,7 +265,7 @@ export const sqlQueriesPlugin = definePlugin({
|
|
|
200
265
|
},
|
|
201
266
|
run: (ctx, config) => {
|
|
202
267
|
const enums = getEnumEntities(ctx.ir);
|
|
203
|
-
const sqlStyle = config
|
|
268
|
+
const { sqlStyle } = config;
|
|
204
269
|
getTableEntities(ctx.ir)
|
|
205
270
|
.filter(entity => entity.tags.omit !== true)
|
|
206
271
|
.forEach(entity => {
|