@constructive-io/graphql-codegen 4.9.0 → 4.13.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.
- package/core/codegen/cli/arg-mapper.d.ts +1 -1
- package/core/codegen/cli/arg-mapper.js +15 -11
- package/core/codegen/cli/command-map-generator.d.ts +1 -0
- package/core/codegen/cli/command-map-generator.js +4 -0
- package/core/codegen/cli/config-command-generator.d.ts +11 -0
- package/core/codegen/cli/config-command-generator.js +458 -0
- package/core/codegen/cli/custom-command-generator.js +4 -3
- package/core/codegen/cli/docs-generator.d.ts +6 -5
- package/core/codegen/cli/docs-generator.js +167 -64
- package/core/codegen/cli/helpers-generator.d.ts +15 -0
- package/core/codegen/cli/helpers-generator.js +119 -0
- package/core/codegen/cli/index.d.ts +4 -0
- package/core/codegen/cli/index.js +21 -3
- package/core/codegen/cli/table-command-generator.d.ts +15 -0
- package/core/codegen/cli/table-command-generator.js +20 -1
- package/core/codegen/docs-utils.d.ts +26 -1
- package/core/codegen/docs-utils.js +105 -0
- package/core/codegen/orm/index.js +3 -2
- package/core/codegen/orm/input-types-generator.d.ts +3 -1
- package/core/codegen/orm/input-types-generator.js +123 -17
- package/core/codegen/orm/model-generator.d.ts +6 -2
- package/core/codegen/orm/model-generator.js +59 -29
- package/core/codegen/orm/select-types.d.ts +4 -2
- package/core/codegen/scalars.js +8 -0
- package/core/codegen/templates/cli-entry.ts +2 -2
- package/core/codegen/templates/cli-utils.ts +28 -0
- package/core/codegen/templates/query-builder.ts +28 -5
- package/core/codegen/templates/select-types.ts +4 -2
- package/core/generate.js +14 -4
- package/esm/core/codegen/cli/arg-mapper.d.ts +1 -1
- package/esm/core/codegen/cli/arg-mapper.js +15 -11
- package/esm/core/codegen/cli/command-map-generator.d.ts +1 -0
- package/esm/core/codegen/cli/command-map-generator.js +4 -0
- package/esm/core/codegen/cli/config-command-generator.d.ts +11 -0
- package/esm/core/codegen/cli/config-command-generator.js +422 -0
- package/esm/core/codegen/cli/custom-command-generator.js +4 -3
- package/esm/core/codegen/cli/docs-generator.d.ts +6 -5
- package/esm/core/codegen/cli/docs-generator.js +168 -65
- package/esm/core/codegen/cli/helpers-generator.d.ts +15 -0
- package/esm/core/codegen/cli/helpers-generator.js +83 -0
- package/esm/core/codegen/cli/index.d.ts +4 -0
- package/esm/core/codegen/cli/index.js +18 -2
- package/esm/core/codegen/cli/table-command-generator.d.ts +15 -0
- package/esm/core/codegen/cli/table-command-generator.js +20 -3
- package/esm/core/codegen/docs-utils.d.ts +26 -1
- package/esm/core/codegen/docs-utils.js +102 -0
- package/esm/core/codegen/orm/index.js +3 -2
- package/esm/core/codegen/orm/input-types-generator.d.ts +3 -1
- package/esm/core/codegen/orm/input-types-generator.js +123 -17
- package/esm/core/codegen/orm/model-generator.d.ts +6 -2
- package/esm/core/codegen/orm/model-generator.js +59 -29
- package/esm/core/codegen/orm/select-types.d.ts +4 -2
- package/esm/core/codegen/scalars.js +8 -0
- package/esm/core/generate.js +14 -4
- package/esm/types/config.d.ts +9 -0
- package/esm/types/config.js +1 -0
- package/package.json +11 -11
- package/types/config.d.ts +9 -0
- package/types/config.js +1 -0
|
@@ -5,5 +5,9 @@ export interface GeneratedModelFile {
|
|
|
5
5
|
modelName: string;
|
|
6
6
|
tableName: string;
|
|
7
7
|
}
|
|
8
|
-
export declare function generateModelFile(table: CleanTable, _useSharedTypes: boolean
|
|
9
|
-
|
|
8
|
+
export declare function generateModelFile(table: CleanTable, _useSharedTypes: boolean, options?: {
|
|
9
|
+
condition?: boolean;
|
|
10
|
+
}): GeneratedModelFile;
|
|
11
|
+
export declare function generateAllModelFiles(tables: CleanTable[], useSharedTypes: boolean, options?: {
|
|
12
|
+
condition?: boolean;
|
|
13
|
+
}): GeneratedModelFile[];
|
|
@@ -65,7 +65,8 @@ function strictSelectGuard(selectTypeName) {
|
|
|
65
65
|
t.tsTypeReference(t.identifier(selectTypeName)),
|
|
66
66
|
]));
|
|
67
67
|
}
|
|
68
|
-
export function generateModelFile(table, _useSharedTypes) {
|
|
68
|
+
export function generateModelFile(table, _useSharedTypes, options) {
|
|
69
|
+
const conditionEnabled = options?.condition !== false;
|
|
69
70
|
const { typeName, singularName, pluralName } = getTableNames(table);
|
|
70
71
|
const modelName = `${typeName}Model`;
|
|
71
72
|
const baseFileName = lcFirst(typeName);
|
|
@@ -74,6 +75,7 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
74
75
|
const selectTypeName = `${typeName}Select`;
|
|
75
76
|
const relationTypeName = `${typeName}WithRelations`;
|
|
76
77
|
const whereTypeName = getFilterTypeName(table);
|
|
78
|
+
const conditionTypeName = conditionEnabled ? `${typeName}Condition` : undefined;
|
|
77
79
|
const orderByTypeName = getOrderByTypeName(table);
|
|
78
80
|
const createInputTypeName = `Create${typeName}Input`;
|
|
79
81
|
const updateInputTypeName = `Update${typeName}Input`;
|
|
@@ -108,16 +110,18 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
108
110
|
'InferSelectResult',
|
|
109
111
|
'StrictSelect',
|
|
110
112
|
], true));
|
|
111
|
-
|
|
113
|
+
const inputTypeImports = [
|
|
112
114
|
typeName,
|
|
113
115
|
relationTypeName,
|
|
114
116
|
selectTypeName,
|
|
115
117
|
whereTypeName,
|
|
118
|
+
...(conditionTypeName ? [conditionTypeName] : []),
|
|
116
119
|
orderByTypeName,
|
|
117
120
|
createInputTypeName,
|
|
118
121
|
updateInputTypeName,
|
|
119
122
|
patchTypeName,
|
|
120
|
-
]
|
|
123
|
+
];
|
|
124
|
+
statements.push(createImportDeclaration('../input-types', inputTypeImports, true));
|
|
121
125
|
statements.push(createImportDeclaration('../input-types', ['connectionFieldsMap']));
|
|
122
126
|
const classBody = [];
|
|
123
127
|
// Constructor
|
|
@@ -131,11 +135,15 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
131
135
|
const pkTsType = () => tsTypeFromPrimitive(pkField.tsType);
|
|
132
136
|
// ── findMany ───────────────────────────────────────────────────────────
|
|
133
137
|
{
|
|
134
|
-
const
|
|
135
|
-
sel,
|
|
136
|
-
t.tsTypeReference(t.identifier(whereTypeName)),
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
const findManyTypeArgs = [
|
|
139
|
+
(sel) => sel,
|
|
140
|
+
() => t.tsTypeReference(t.identifier(whereTypeName)),
|
|
141
|
+
...(conditionTypeName
|
|
142
|
+
? [() => t.tsTypeReference(t.identifier(conditionTypeName))]
|
|
143
|
+
: []),
|
|
144
|
+
() => t.tsTypeReference(t.identifier(orderByTypeName)),
|
|
145
|
+
];
|
|
146
|
+
const argsType = (sel) => t.tsTypeReference(t.identifier('FindManyArgs'), t.tsTypeParameterInstantiation(findManyTypeArgs.map(fn => fn(sel))));
|
|
139
147
|
const retType = (sel) => t.tsTypeAnnotation(t.tsTypeReference(t.identifier('QueryBuilder'), t.tsTypeParameterInstantiation([
|
|
140
148
|
t.tsTypeLiteral([
|
|
141
149
|
t.tsPropertySignature(t.identifier(pluralQueryName), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('ConnectionResult'), t.tsTypeParameterInstantiation([
|
|
@@ -153,34 +161,47 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
153
161
|
strictSelectGuard(selectTypeName),
|
|
154
162
|
]));
|
|
155
163
|
const selectExpr = t.memberExpression(t.identifier('args'), t.identifier('select'));
|
|
164
|
+
const findManyObjProps = [
|
|
165
|
+
t.objectProperty(t.identifier('where'), t.optionalMemberExpression(t.identifier('args'), t.identifier('where'), false, true)),
|
|
166
|
+
...(conditionTypeName
|
|
167
|
+
? [
|
|
168
|
+
t.objectProperty(t.identifier('condition'), t.optionalMemberExpression(t.identifier('args'), t.identifier('condition'), false, true)),
|
|
169
|
+
]
|
|
170
|
+
: []),
|
|
171
|
+
t.objectProperty(t.identifier('orderBy'), t.tsAsExpression(t.optionalMemberExpression(t.identifier('args'), t.identifier('orderBy'), false, true), t.tsUnionType([
|
|
172
|
+
t.tsArrayType(t.tsStringKeyword()),
|
|
173
|
+
t.tsUndefinedKeyword(),
|
|
174
|
+
]))),
|
|
175
|
+
t.objectProperty(t.identifier('first'), t.optionalMemberExpression(t.identifier('args'), t.identifier('first'), false, true)),
|
|
176
|
+
t.objectProperty(t.identifier('last'), t.optionalMemberExpression(t.identifier('args'), t.identifier('last'), false, true)),
|
|
177
|
+
t.objectProperty(t.identifier('after'), t.optionalMemberExpression(t.identifier('args'), t.identifier('after'), false, true)),
|
|
178
|
+
t.objectProperty(t.identifier('before'), t.optionalMemberExpression(t.identifier('args'), t.identifier('before'), false, true)),
|
|
179
|
+
t.objectProperty(t.identifier('offset'), t.optionalMemberExpression(t.identifier('args'), t.identifier('offset'), false, true)),
|
|
180
|
+
];
|
|
156
181
|
const bodyArgs = [
|
|
157
182
|
t.stringLiteral(typeName),
|
|
158
183
|
t.stringLiteral(pluralQueryName),
|
|
159
184
|
selectExpr,
|
|
160
|
-
t.objectExpression(
|
|
161
|
-
t.objectProperty(t.identifier('where'), t.optionalMemberExpression(t.identifier('args'), t.identifier('where'), false, true)),
|
|
162
|
-
t.objectProperty(t.identifier('orderBy'), t.tsAsExpression(t.optionalMemberExpression(t.identifier('args'), t.identifier('orderBy'), false, true), t.tsUnionType([
|
|
163
|
-
t.tsArrayType(t.tsStringKeyword()),
|
|
164
|
-
t.tsUndefinedKeyword(),
|
|
165
|
-
]))),
|
|
166
|
-
t.objectProperty(t.identifier('first'), t.optionalMemberExpression(t.identifier('args'), t.identifier('first'), false, true)),
|
|
167
|
-
t.objectProperty(t.identifier('last'), t.optionalMemberExpression(t.identifier('args'), t.identifier('last'), false, true)),
|
|
168
|
-
t.objectProperty(t.identifier('after'), t.optionalMemberExpression(t.identifier('args'), t.identifier('after'), false, true)),
|
|
169
|
-
t.objectProperty(t.identifier('before'), t.optionalMemberExpression(t.identifier('args'), t.identifier('before'), false, true)),
|
|
170
|
-
t.objectProperty(t.identifier('offset'), t.optionalMemberExpression(t.identifier('args'), t.identifier('offset'), false, true)),
|
|
171
|
-
]),
|
|
185
|
+
t.objectExpression(findManyObjProps),
|
|
172
186
|
t.stringLiteral(whereTypeName),
|
|
173
187
|
t.stringLiteral(orderByTypeName),
|
|
174
188
|
t.identifier('connectionFieldsMap'),
|
|
189
|
+
...(conditionTypeName
|
|
190
|
+
? [t.stringLiteral(conditionTypeName)]
|
|
191
|
+
: []),
|
|
175
192
|
];
|
|
176
193
|
classBody.push(createClassMethod('findMany', createTypeParam(selectTypeName), [implParam], retType(sRef()), buildMethodBody('buildFindManyDocument', bodyArgs, 'query', typeName, pluralQueryName)));
|
|
177
194
|
}
|
|
178
195
|
// ── findFirst ──────────────────────────────────────────────────────────
|
|
179
196
|
{
|
|
180
|
-
const
|
|
181
|
-
sel,
|
|
182
|
-
t.tsTypeReference(t.identifier(whereTypeName)),
|
|
183
|
-
|
|
197
|
+
const findFirstTypeArgs = [
|
|
198
|
+
(sel) => sel,
|
|
199
|
+
() => t.tsTypeReference(t.identifier(whereTypeName)),
|
|
200
|
+
...(conditionTypeName
|
|
201
|
+
? [() => t.tsTypeReference(t.identifier(conditionTypeName))]
|
|
202
|
+
: []),
|
|
203
|
+
];
|
|
204
|
+
const argsType = (sel) => t.tsTypeReference(t.identifier('FindFirstArgs'), t.tsTypeParameterInstantiation(findFirstTypeArgs.map(fn => fn(sel))));
|
|
184
205
|
const retType = (sel) => t.tsTypeAnnotation(t.tsTypeReference(t.identifier('QueryBuilder'), t.tsTypeParameterInstantiation([
|
|
185
206
|
t.tsTypeLiteral([
|
|
186
207
|
t.tsPropertySignature(t.identifier(pluralQueryName), t.tsTypeAnnotation(t.tsTypeLiteral([
|
|
@@ -198,15 +219,24 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
198
219
|
strictSelectGuard(selectTypeName),
|
|
199
220
|
]));
|
|
200
221
|
const selectExpr = t.memberExpression(t.identifier('args'), t.identifier('select'));
|
|
222
|
+
const findFirstObjProps = [
|
|
223
|
+
t.objectProperty(t.identifier('where'), t.optionalMemberExpression(t.identifier('args'), t.identifier('where'), false, true)),
|
|
224
|
+
...(conditionTypeName
|
|
225
|
+
? [
|
|
226
|
+
t.objectProperty(t.identifier('condition'), t.optionalMemberExpression(t.identifier('args'), t.identifier('condition'), false, true)),
|
|
227
|
+
]
|
|
228
|
+
: []),
|
|
229
|
+
];
|
|
201
230
|
const bodyArgs = [
|
|
202
231
|
t.stringLiteral(typeName),
|
|
203
232
|
t.stringLiteral(pluralQueryName),
|
|
204
233
|
selectExpr,
|
|
205
|
-
t.objectExpression(
|
|
206
|
-
t.objectProperty(t.identifier('where'), t.optionalMemberExpression(t.identifier('args'), t.identifier('where'), false, true)),
|
|
207
|
-
]),
|
|
234
|
+
t.objectExpression(findFirstObjProps),
|
|
208
235
|
t.stringLiteral(whereTypeName),
|
|
209
236
|
t.identifier('connectionFieldsMap'),
|
|
237
|
+
...(conditionTypeName
|
|
238
|
+
? [t.stringLiteral(conditionTypeName)]
|
|
239
|
+
: []),
|
|
210
240
|
];
|
|
211
241
|
classBody.push(createClassMethod('findFirst', createTypeParam(selectTypeName), [implParam], retType(sRef()), buildMethodBody('buildFindFirstDocument', bodyArgs, 'query', typeName, pluralQueryName)));
|
|
212
242
|
}
|
|
@@ -410,6 +440,6 @@ export function generateModelFile(table, _useSharedTypes) {
|
|
|
410
440
|
tableName: table.name,
|
|
411
441
|
};
|
|
412
442
|
}
|
|
413
|
-
export function generateAllModelFiles(tables, useSharedTypes) {
|
|
414
|
-
return tables.map((table) => generateModelFile(table, useSharedTypes));
|
|
443
|
+
export function generateAllModelFiles(tables, useSharedTypes, options) {
|
|
444
|
+
return tables.map((table) => generateModelFile(table, useSharedTypes, options));
|
|
415
445
|
}
|
|
@@ -150,9 +150,10 @@ export interface PageInfo {
|
|
|
150
150
|
/**
|
|
151
151
|
* Arguments for findMany operations
|
|
152
152
|
*/
|
|
153
|
-
export interface FindManyArgs<TSelect, TWhere, TOrderBy> {
|
|
153
|
+
export interface FindManyArgs<TSelect, TWhere, TCondition, TOrderBy> {
|
|
154
154
|
select?: TSelect;
|
|
155
155
|
where?: TWhere;
|
|
156
|
+
condition?: TCondition;
|
|
156
157
|
orderBy?: TOrderBy[];
|
|
157
158
|
first?: number;
|
|
158
159
|
last?: number;
|
|
@@ -163,9 +164,10 @@ export interface FindManyArgs<TSelect, TWhere, TOrderBy> {
|
|
|
163
164
|
/**
|
|
164
165
|
* Arguments for findFirst/findUnique operations
|
|
165
166
|
*/
|
|
166
|
-
export interface FindFirstArgs<TSelect, TWhere> {
|
|
167
|
+
export interface FindFirstArgs<TSelect, TWhere, TCondition> {
|
|
167
168
|
select?: TSelect;
|
|
168
169
|
where?: TWhere;
|
|
170
|
+
condition?: TCondition;
|
|
169
171
|
}
|
|
170
172
|
/**
|
|
171
173
|
* Arguments for create operations
|
|
@@ -33,6 +33,8 @@ export const SCALAR_TS_MAP = {
|
|
|
33
33
|
MacAddr: 'string',
|
|
34
34
|
TsVector: 'string',
|
|
35
35
|
TsQuery: 'string',
|
|
36
|
+
// Vector types (pgvector) — serialized as [Float] in GraphQL
|
|
37
|
+
Vector: 'number[]',
|
|
36
38
|
// File upload
|
|
37
39
|
Upload: 'File',
|
|
38
40
|
};
|
|
@@ -51,6 +53,12 @@ export const SCALAR_FILTER_MAP = {
|
|
|
51
53
|
BigFloat: 'BigFloatFilter',
|
|
52
54
|
BitString: 'BitStringFilter',
|
|
53
55
|
InternetAddress: 'InternetAddressFilter',
|
|
56
|
+
// VectorFilter provides equality/distinct operators (isNull, equalTo, etc.) for vector
|
|
57
|
+
// columns on Filter types. While similarity search is done via condition types
|
|
58
|
+
// (e.g., embeddingNearby on ContactCondition), postgraphile-plugin-connection-filter
|
|
59
|
+
// may still auto-generate a filter type for vector columns. Without this mapping,
|
|
60
|
+
// those fields would be silently omitted from the generated SDK.
|
|
61
|
+
Vector: 'VectorFilter',
|
|
54
62
|
FullText: 'FullTextFilter',
|
|
55
63
|
Interval: 'StringFilter',
|
|
56
64
|
};
|
package/esm/core/generate.js
CHANGED
|
@@ -274,18 +274,18 @@ export async function generate(options = {}, internalOptions) {
|
|
|
274
274
|
? config.cli.toolName
|
|
275
275
|
: 'app';
|
|
276
276
|
if (docsConfig.readme) {
|
|
277
|
-
const readme = generateCliReadme(tables, allCustomOps, toolName);
|
|
277
|
+
const readme = generateCliReadme(tables, allCustomOps, toolName, customOperations.typeRegistry);
|
|
278
278
|
filesToWrite.push({ path: path.posix.join('cli', readme.fileName), content: readme.content });
|
|
279
279
|
}
|
|
280
280
|
if (docsConfig.agents) {
|
|
281
|
-
const agents = generateCliAgentsDocs(tables, allCustomOps, toolName);
|
|
281
|
+
const agents = generateCliAgentsDocs(tables, allCustomOps, toolName, customOperations.typeRegistry);
|
|
282
282
|
filesToWrite.push({ path: path.posix.join('cli', agents.fileName), content: agents.content });
|
|
283
283
|
}
|
|
284
284
|
if (docsConfig.mcp) {
|
|
285
|
-
allMcpTools.push(...getCliMcpTools(tables, allCustomOps, toolName));
|
|
285
|
+
allMcpTools.push(...getCliMcpTools(tables, allCustomOps, toolName, customOperations.typeRegistry));
|
|
286
286
|
}
|
|
287
287
|
if (docsConfig.skills) {
|
|
288
|
-
for (const skill of generateCliSkills(tables, allCustomOps, toolName, targetName)) {
|
|
288
|
+
for (const skill of generateCliSkills(tables, allCustomOps, toolName, targetName, customOperations.typeRegistry)) {
|
|
289
289
|
skillsToWrite.push({ path: skill.fileName, content: skill.content });
|
|
290
290
|
}
|
|
291
291
|
}
|
|
@@ -574,9 +574,19 @@ export async function generateMulti(options) {
|
|
|
574
574
|
const docsConfig = resolveDocsConfig(firstTargetDocsConfig);
|
|
575
575
|
const { resolveBuiltinNames } = await import('./codegen/cli');
|
|
576
576
|
const builtinNames = resolveBuiltinNames(cliTargets.map((t) => t.name), cliConfig.builtinNames);
|
|
577
|
+
// Merge all target type registries into a combined registry for docs generation
|
|
578
|
+
const combinedRegistry = new Map();
|
|
579
|
+
for (const t of cliTargets) {
|
|
580
|
+
if (t.typeRegistry) {
|
|
581
|
+
for (const [key, value] of t.typeRegistry) {
|
|
582
|
+
combinedRegistry.set(key, value);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
577
586
|
const docsInput = {
|
|
578
587
|
toolName,
|
|
579
588
|
builtinNames,
|
|
589
|
+
registry: combinedRegistry.size > 0 ? combinedRegistry : undefined,
|
|
580
590
|
targets: cliTargets.map((t) => ({
|
|
581
591
|
name: t.name,
|
|
582
592
|
endpoint: t.endpoint,
|
package/esm/types/config.d.ts
CHANGED
|
@@ -153,6 +153,7 @@ export interface DocsConfig {
|
|
|
153
153
|
export interface BuiltinNames {
|
|
154
154
|
auth?: string;
|
|
155
155
|
context?: string;
|
|
156
|
+
config?: string;
|
|
156
157
|
}
|
|
157
158
|
/**
|
|
158
159
|
* CLI generation configuration
|
|
@@ -285,6 +286,14 @@ export interface GraphQLSDKConfigTarget {
|
|
|
285
286
|
* @default true
|
|
286
287
|
*/
|
|
287
288
|
comments?: boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Generate condition types and condition arguments on findMany/findFirst.
|
|
291
|
+
* PostGraphile's native `condition` argument provides simple equality filtering.
|
|
292
|
+
* Set to `true` to include condition types and arguments in generated code.
|
|
293
|
+
* Set to `false` to omit them (e.g., when using connection-filter's `filter` argument exclusively).
|
|
294
|
+
* @default false
|
|
295
|
+
*/
|
|
296
|
+
condition?: boolean;
|
|
288
297
|
};
|
|
289
298
|
/**
|
|
290
299
|
* Whether to generate ORM client
|
package/esm/types/config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constructive-io/graphql-codegen",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.13.0",
|
|
4
4
|
"description": "GraphQL SDK generator for Constructive databases with React Query hooks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
@@ -56,25 +56,25 @@
|
|
|
56
56
|
"@0no-co/graphql.web": "^1.1.2",
|
|
57
57
|
"@babel/generator": "^7.29.1",
|
|
58
58
|
"@babel/types": "^7.29.0",
|
|
59
|
-
"@constructive-io/graphql-query": "^3.3
|
|
60
|
-
"@constructive-io/graphql-types": "^3.
|
|
59
|
+
"@constructive-io/graphql-query": "^3.5.3",
|
|
60
|
+
"@constructive-io/graphql-types": "^3.3.2",
|
|
61
61
|
"@inquirerer/utils": "^3.3.1",
|
|
62
|
-
"@pgpmjs/core": "^6.
|
|
62
|
+
"@pgpmjs/core": "^6.6.2",
|
|
63
63
|
"ajv": "^8.18.0",
|
|
64
64
|
"deepmerge": "^4.3.1",
|
|
65
65
|
"find-and-require-package-json": "^0.9.1",
|
|
66
|
-
"gql-ast": "^3.
|
|
67
|
-
"graphile-schema": "^1.3
|
|
66
|
+
"gql-ast": "^3.3.2",
|
|
67
|
+
"graphile-schema": "^1.5.3",
|
|
68
68
|
"graphql": "^16.13.0",
|
|
69
69
|
"inflekt": "^0.3.3",
|
|
70
70
|
"inquirerer": "^4.5.2",
|
|
71
71
|
"jiti": "^2.6.1",
|
|
72
72
|
"komoji": "^0.8.1",
|
|
73
73
|
"oxfmt": "^0.36.0",
|
|
74
|
-
"pg-cache": "^3.
|
|
75
|
-
"pg-env": "^1.
|
|
76
|
-
"pgsql-client": "^3.
|
|
77
|
-
"pgsql-seed": "^2.
|
|
74
|
+
"pg-cache": "^3.3.2",
|
|
75
|
+
"pg-env": "^1.7.2",
|
|
76
|
+
"pgsql-client": "^3.5.2",
|
|
77
|
+
"pgsql-seed": "^2.5.2",
|
|
78
78
|
"undici": "^7.22.0"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
@@ -101,5 +101,5 @@
|
|
|
101
101
|
"tsx": "^4.21.0",
|
|
102
102
|
"typescript": "^5.9.3"
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "67218366027bc6370e07a1b96d8bf25adba18f42"
|
|
105
105
|
}
|
package/types/config.d.ts
CHANGED
|
@@ -153,6 +153,7 @@ export interface DocsConfig {
|
|
|
153
153
|
export interface BuiltinNames {
|
|
154
154
|
auth?: string;
|
|
155
155
|
context?: string;
|
|
156
|
+
config?: string;
|
|
156
157
|
}
|
|
157
158
|
/**
|
|
158
159
|
* CLI generation configuration
|
|
@@ -285,6 +286,14 @@ export interface GraphQLSDKConfigTarget {
|
|
|
285
286
|
* @default true
|
|
286
287
|
*/
|
|
287
288
|
comments?: boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Generate condition types and condition arguments on findMany/findFirst.
|
|
291
|
+
* PostGraphile's native `condition` argument provides simple equality filtering.
|
|
292
|
+
* Set to `true` to include condition types and arguments in generated code.
|
|
293
|
+
* Set to `false` to omit them (e.g., when using connection-filter's `filter` argument exclusively).
|
|
294
|
+
* @default false
|
|
295
|
+
*/
|
|
296
|
+
condition?: boolean;
|
|
288
297
|
};
|
|
289
298
|
/**
|
|
290
299
|
* Whether to generate ORM client
|