@soda-gql/codegen 0.11.11 → 0.11.12
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/index.cjs +672 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +284 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +284 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +668 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,289 @@
|
|
|
1
1
|
import * as neverthrow0 from "neverthrow";
|
|
2
2
|
import { Result } from "neverthrow";
|
|
3
|
-
import { DocumentNode } from "graphql";
|
|
3
|
+
import { DocumentNode, TypeNode } from "graphql";
|
|
4
4
|
|
|
5
|
+
//#region packages/codegen/src/graphql-compat/types.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Types for graphql-compat code generation.
|
|
9
|
+
* Transforms .graphql operation files to TypeScript compat pattern.
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Options for running graphql-compat code generation.
|
|
14
|
+
*/
|
|
15
|
+
type GraphqlCompatOptions = {
|
|
16
|
+
/** Schema name from config */
|
|
17
|
+
readonly schemaName: string;
|
|
18
|
+
/** Resolved paths to .graphql operation files */
|
|
19
|
+
readonly operationFiles: readonly string[];
|
|
20
|
+
/** Output directory for generated files */
|
|
21
|
+
readonly outputDir?: string;
|
|
22
|
+
/** Import path for graphql-system module (e.g., "@/graphql-system") */
|
|
23
|
+
readonly graphqlSystemPath: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Parsed GraphQL operation (query, mutation, subscription).
|
|
27
|
+
*/
|
|
28
|
+
type ParsedOperation = {
|
|
29
|
+
readonly kind: "query" | "mutation" | "subscription";
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly variables: readonly ParsedVariable[];
|
|
32
|
+
readonly selections: readonly ParsedSelection[];
|
|
33
|
+
readonly sourceFile: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Parsed GraphQL fragment definition.
|
|
37
|
+
*/
|
|
38
|
+
type ParsedFragment = {
|
|
39
|
+
readonly name: string;
|
|
40
|
+
readonly onType: string;
|
|
41
|
+
readonly selections: readonly ParsedSelection[];
|
|
42
|
+
readonly sourceFile: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Parsed variable definition from a GraphQL operation.
|
|
46
|
+
*/
|
|
47
|
+
type ParsedVariable = {
|
|
48
|
+
/** Variable name (without $) */
|
|
49
|
+
readonly name: string;
|
|
50
|
+
/** Type name (e.g., "ID", "String", "UserInput") */
|
|
51
|
+
readonly typeName: string;
|
|
52
|
+
/**
|
|
53
|
+
* Type modifier in soda-gql format.
|
|
54
|
+
* Format: inner nullability + list modifiers
|
|
55
|
+
* - Inner: `!` (non-null) or `?` (nullable)
|
|
56
|
+
* - List: `[]!` (non-null list) or `[]?` (nullable list)
|
|
57
|
+
*
|
|
58
|
+
* Examples:
|
|
59
|
+
* - `ID!` → `"!"`
|
|
60
|
+
* - `[ID!]!` → `"![]!"`
|
|
61
|
+
* - `[ID]` → `"?[]?"`
|
|
62
|
+
*/
|
|
63
|
+
readonly modifier: string;
|
|
64
|
+
/** Type kind (scalar, enum, or input) */
|
|
65
|
+
readonly typeKind: "scalar" | "enum" | "input";
|
|
66
|
+
/** Default value if specified */
|
|
67
|
+
readonly defaultValue?: ParsedValue;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Parsed selection from a SelectionSet.
|
|
71
|
+
*/
|
|
72
|
+
type ParsedSelection = ParsedFieldSelection | ParsedFragmentSpread | ParsedInlineFragment;
|
|
73
|
+
/**
|
|
74
|
+
* Parsed field selection.
|
|
75
|
+
*/
|
|
76
|
+
type ParsedFieldSelection = {
|
|
77
|
+
readonly kind: "field";
|
|
78
|
+
readonly name: string;
|
|
79
|
+
readonly alias?: string;
|
|
80
|
+
readonly arguments?: readonly ParsedArgument[];
|
|
81
|
+
/** Nested selections if field returns object type */
|
|
82
|
+
readonly selections?: readonly ParsedSelection[];
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Parsed fragment spread (...FragmentName).
|
|
86
|
+
*/
|
|
87
|
+
type ParsedFragmentSpread = {
|
|
88
|
+
readonly kind: "fragmentSpread";
|
|
89
|
+
readonly name: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Parsed inline fragment (... on Type { }).
|
|
93
|
+
*/
|
|
94
|
+
type ParsedInlineFragment = {
|
|
95
|
+
readonly kind: "inlineFragment";
|
|
96
|
+
readonly onType: string;
|
|
97
|
+
readonly selections: readonly ParsedSelection[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Parsed argument for a field.
|
|
101
|
+
*/
|
|
102
|
+
type ParsedArgument = {
|
|
103
|
+
readonly name: string;
|
|
104
|
+
readonly value: ParsedValue;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Parsed value (can be literal or variable reference).
|
|
108
|
+
*/
|
|
109
|
+
type ParsedValue = {
|
|
110
|
+
readonly kind: "variable";
|
|
111
|
+
readonly name: string;
|
|
112
|
+
} | {
|
|
113
|
+
readonly kind: "int";
|
|
114
|
+
readonly value: string;
|
|
115
|
+
} | {
|
|
116
|
+
readonly kind: "float";
|
|
117
|
+
readonly value: string;
|
|
118
|
+
} | {
|
|
119
|
+
readonly kind: "string";
|
|
120
|
+
readonly value: string;
|
|
121
|
+
} | {
|
|
122
|
+
readonly kind: "boolean";
|
|
123
|
+
readonly value: boolean;
|
|
124
|
+
} | {
|
|
125
|
+
readonly kind: "null";
|
|
126
|
+
} | {
|
|
127
|
+
readonly kind: "enum";
|
|
128
|
+
readonly value: string;
|
|
129
|
+
} | {
|
|
130
|
+
readonly kind: "list";
|
|
131
|
+
readonly values: readonly ParsedValue[];
|
|
132
|
+
} | {
|
|
133
|
+
readonly kind: "object";
|
|
134
|
+
readonly fields: readonly ParsedObjectField[];
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Parsed object field in an object value.
|
|
138
|
+
*/
|
|
139
|
+
type ParsedObjectField = {
|
|
140
|
+
readonly name: string;
|
|
141
|
+
readonly value: ParsedValue;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Result of parsing a .graphql file.
|
|
145
|
+
*/
|
|
146
|
+
type ParseResult = {
|
|
147
|
+
readonly operations: readonly ParsedOperation[];
|
|
148
|
+
readonly fragments: readonly ParsedFragment[];
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Generated file output.
|
|
152
|
+
*/
|
|
153
|
+
type GeneratedFile = {
|
|
154
|
+
readonly path: string;
|
|
155
|
+
readonly content: string;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Error types for graphql-compat operations.
|
|
159
|
+
*/
|
|
160
|
+
type GraphqlCompatError = {
|
|
161
|
+
readonly code: "GRAPHQL_FILE_NOT_FOUND";
|
|
162
|
+
readonly message: string;
|
|
163
|
+
readonly filePath: string;
|
|
164
|
+
} | {
|
|
165
|
+
readonly code: "GRAPHQL_PARSE_ERROR";
|
|
166
|
+
readonly message: string;
|
|
167
|
+
readonly filePath: string;
|
|
168
|
+
readonly line?: number;
|
|
169
|
+
readonly column?: number;
|
|
170
|
+
} | {
|
|
171
|
+
readonly code: "GRAPHQL_INVALID_OPERATION";
|
|
172
|
+
readonly message: string;
|
|
173
|
+
readonly operationName?: string;
|
|
174
|
+
} | {
|
|
175
|
+
readonly code: "GRAPHQL_UNKNOWN_TYPE";
|
|
176
|
+
readonly message: string;
|
|
177
|
+
readonly typeName: string;
|
|
178
|
+
} | {
|
|
179
|
+
readonly code: "GRAPHQL_FRAGMENT_NOT_FOUND";
|
|
180
|
+
readonly message: string;
|
|
181
|
+
readonly fragmentName: string;
|
|
182
|
+
} | {
|
|
183
|
+
readonly code: "GRAPHQL_OUTPUT_ERROR";
|
|
184
|
+
readonly message: string;
|
|
185
|
+
readonly outputPath: string;
|
|
186
|
+
} | {
|
|
187
|
+
readonly code: "GRAPHQL_INLINE_FRAGMENT_ON_INTERFACE";
|
|
188
|
+
readonly message: string;
|
|
189
|
+
readonly onType: string;
|
|
190
|
+
} | {
|
|
191
|
+
readonly code: "GRAPHQL_UNDECLARED_VARIABLE";
|
|
192
|
+
readonly message: string;
|
|
193
|
+
readonly variableName: string;
|
|
194
|
+
} | {
|
|
195
|
+
readonly code: "GRAPHQL_INLINE_FRAGMENT_WITHOUT_TYPE";
|
|
196
|
+
readonly message: string;
|
|
197
|
+
};
|
|
198
|
+
//#endregion
|
|
199
|
+
//#region packages/codegen/src/graphql-compat/transformer.d.ts
|
|
200
|
+
/**
|
|
201
|
+
* Enriched operation with resolved type information.
|
|
202
|
+
*/
|
|
203
|
+
type EnrichedOperation = Omit<ParsedOperation, "variables"> & {
|
|
204
|
+
readonly variables: readonly EnrichedVariable[];
|
|
205
|
+
/** Fragment names used in this operation (for imports) */
|
|
206
|
+
readonly fragmentDependencies: readonly string[];
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Enriched fragment with resolved type information.
|
|
210
|
+
*/
|
|
211
|
+
type EnrichedFragment = ParsedFragment & {
|
|
212
|
+
/** Fragment names used in this fragment (for imports) */
|
|
213
|
+
readonly fragmentDependencies: readonly string[];
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Enriched variable with resolved type kind.
|
|
217
|
+
*/
|
|
218
|
+
type EnrichedVariable = Omit<ParsedVariable, "typeKind"> & {
|
|
219
|
+
readonly typeKind: "scalar" | "enum" | "input";
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Result of transforming parsed operations.
|
|
223
|
+
*/
|
|
224
|
+
type TransformResult = {
|
|
225
|
+
readonly operations: readonly EnrichedOperation[];
|
|
226
|
+
readonly fragments: readonly EnrichedFragment[];
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Options for transformation.
|
|
230
|
+
*/
|
|
231
|
+
type TransformOptions = {
|
|
232
|
+
/** Schema document for type resolution */
|
|
233
|
+
readonly schemaDocument: DocumentNode;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Transform parsed operations/fragments by enriching them with schema information.
|
|
237
|
+
*
|
|
238
|
+
* This resolves variable type kinds (scalar, enum, input) and collects
|
|
239
|
+
* fragment dependencies.
|
|
240
|
+
*/
|
|
241
|
+
declare const transformParsedGraphql: (parsed: ParseResult, options: TransformOptions) => Result<TransformResult, GraphqlCompatError>;
|
|
242
|
+
//#endregion
|
|
243
|
+
//#region packages/codegen/src/graphql-compat/emitter.d.ts
|
|
244
|
+
/**
|
|
245
|
+
* Options for code emission.
|
|
246
|
+
*/
|
|
247
|
+
type EmitOptions = {
|
|
248
|
+
/** Schema name to use in gql.schemaName() call */
|
|
249
|
+
readonly schemaName: string;
|
|
250
|
+
/** Import path for graphql-system module */
|
|
251
|
+
readonly graphqlSystemPath: string;
|
|
252
|
+
/** Map of fragment name to its import path (relative) */
|
|
253
|
+
readonly fragmentImports?: ReadonlyMap<string, string>;
|
|
254
|
+
/** Schema document for type lookups (required for inline fragment support) */
|
|
255
|
+
readonly schemaDocument?: DocumentNode;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Emit TypeScript code for an operation.
|
|
259
|
+
*/
|
|
260
|
+
declare const emitOperation: (operation: EnrichedOperation, options: EmitOptions) => Result<string, GraphqlCompatError>;
|
|
261
|
+
/**
|
|
262
|
+
* Emit TypeScript code for a fragment.
|
|
263
|
+
*/
|
|
264
|
+
declare const emitFragment: (fragment: EnrichedFragment, options: EmitOptions) => Result<string, GraphqlCompatError>;
|
|
265
|
+
//#endregion
|
|
266
|
+
//#region packages/codegen/src/graphql-compat/parser.d.ts
|
|
267
|
+
/**
|
|
268
|
+
* Parse a single .graphql file and extract operations and fragments.
|
|
269
|
+
*/
|
|
270
|
+
declare const parseGraphqlFile: (filePath: string) => Result<ParseResult, GraphqlCompatError>;
|
|
271
|
+
/**
|
|
272
|
+
* Parse GraphQL source string directly.
|
|
273
|
+
*/
|
|
274
|
+
declare const parseGraphqlSource: (source: string, sourceFile: string) => Result<ParseResult, GraphqlCompatError>;
|
|
275
|
+
/**
|
|
276
|
+
* Parse a GraphQL TypeNode into type name and modifier.
|
|
277
|
+
*
|
|
278
|
+
* Format: inner nullability + list modifiers
|
|
279
|
+
* - Inner: `!` (non-null) or `?` (nullable)
|
|
280
|
+
* - List: `[]!` (non-null list) or `[]?` (nullable list)
|
|
281
|
+
*/
|
|
282
|
+
declare const parseTypeNode: (node: TypeNode) => {
|
|
283
|
+
typeName: string;
|
|
284
|
+
modifier: string;
|
|
285
|
+
};
|
|
286
|
+
//#endregion
|
|
5
287
|
//#region packages/codegen/src/types.d.ts
|
|
6
288
|
type CodegenFormat = "json" | "human";
|
|
7
289
|
type CodegenInjectConfig = {
|
|
@@ -93,5 +375,5 @@ declare const loadSingleSchema: (schemaPath: string) => neverthrow0.Err<Document
|
|
|
93
375
|
declare const loadSchema: (schemaPaths: readonly string[]) => neverthrow0.Err<DocumentNode, CodegenError> | neverthrow0.Ok<DocumentNode, CodegenError>;
|
|
94
376
|
declare const hashSchema: (document: DocumentNode) => string;
|
|
95
377
|
//#endregion
|
|
96
|
-
export { type CodegenCliCommand, type CodegenError, type CodegenFormat, type CodegenInjectConfig, type CodegenOptions, type CodegenResult, type CodegenSchemaConfig, type CodegenSuccess, hashSchema, loadSchema, runCodegen, writeInjectTemplate };
|
|
378
|
+
export { type CodegenCliCommand, type CodegenError, type CodegenFormat, type CodegenInjectConfig, type CodegenOptions, type CodegenResult, type CodegenSchemaConfig, type CodegenSuccess, EmitOptions, EnrichedFragment, EnrichedOperation, EnrichedVariable, GeneratedFile, GraphqlCompatError, GraphqlCompatOptions, ParseResult, ParsedArgument, ParsedFieldSelection, ParsedFragment, ParsedFragmentSpread, ParsedInlineFragment, ParsedObjectField, ParsedOperation, ParsedSelection, ParsedValue, ParsedVariable, TransformOptions, TransformResult, emitFragment, emitOperation, hashSchema, loadSchema, parseGraphqlFile, parseGraphqlSource, parseTypeNode, runCodegen, transformParsedGraphql, writeInjectTemplate };
|
|
97
379
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/inject-template.ts","../src/runner.ts","../src/schema.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/graphql-compat/types.ts","../src/graphql-compat/transformer.ts","../src/graphql-compat/emitter.ts","../src/graphql-compat/parser.ts","../src/types.ts","../src/inject-template.ts","../src/runner.ts","../src/schema.ts"],"sourcesContent":[],"mappings":"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"}
|