wgc 0.96.2 → 0.97.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/dist/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { access, constants, lstat, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
-
import { compileGraphQLToMapping, compileGraphQLToProto, validateGraphQLSDL, } from '@wundergraph/protographic';
|
|
1
|
+
import { access, constants, lstat, mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { compileGraphQLToMapping, compileGraphQLToProto, compileOperationsToProto, validateGraphQLSDL, rootToProtoText, protobuf, } from '@wundergraph/protographic';
|
|
3
3
|
import { Command, program } from 'commander';
|
|
4
4
|
import { camelCase, upperFirst } from 'lodash-es';
|
|
5
5
|
import Spinner from 'ora';
|
|
6
|
-
import { resolve } from 'pathe';
|
|
6
|
+
import { resolve, extname } from 'pathe';
|
|
7
7
|
import { renderResultTree, renderValidationResults } from '../../router/commands/plugin/helper.js';
|
|
8
8
|
import { getGoModulePathProtoOption } from '../../router/commands/plugin/toolchain.js';
|
|
9
9
|
export default (opts) => {
|
|
@@ -14,8 +14,27 @@ export default (opts) => {
|
|
|
14
14
|
command.option('-o, --output <path-to-output>', 'The output directory for the protobuf schema. (default ".").', '.');
|
|
15
15
|
command.option('-p, --package-name <name>', 'The name of the proto package. (default "service.v1")', 'service.v1');
|
|
16
16
|
command.option('-g, --go-package <name>', 'Adds an `option go_package` to the proto file.');
|
|
17
|
+
// NOTE: The following language-specific options are not enabled for the alpha release
|
|
18
|
+
// command.option('--java-package <name>', 'Adds an `option java_package` to the proto file.');
|
|
19
|
+
// command.option('--java-outer-classname <name>', 'Adds an `option java_outer_classname` to the proto file.');
|
|
20
|
+
// command.option('--java-multiple-files', 'Adds `option java_multiple_files = true` to the proto file.');
|
|
21
|
+
// command.option('--csharp-namespace <name>', 'Adds an `option csharp_namespace` to the proto file.');
|
|
22
|
+
// command.option('--ruby-package <name>', 'Adds an `option ruby_package` to the proto file.');
|
|
23
|
+
// command.option('--php-namespace <name>', 'Adds an `option php_namespace` to the proto file.');
|
|
24
|
+
// command.option('--php-metadata-namespace <name>', 'Adds an `option php_metadata_namespace` to the proto file.');
|
|
25
|
+
// command.option('--objc-class-prefix <name>', 'Adds an `option objc_class_prefix` to the proto file.');
|
|
26
|
+
// command.option('--swift-prefix <name>', 'Adds an `option swift_prefix` to the proto file.');
|
|
17
27
|
command.option('-l, --proto-lock <path-to-proto-lock>', 'The path to the existing proto lock file to use as the starting point for the updated proto lock file. ' +
|
|
18
28
|
'Default is to use and overwrite the output file "<outdir>/service.proto.lock.json".');
|
|
29
|
+
command.option('-w, --with-operations <path-to-operations>', 'Path to directory containing GraphQL operation files (.graphql, .gql, .graphqls, .gqls). ' +
|
|
30
|
+
'Subdirectories are traversed recursively. When provided, generates proto from operations instead of SDL types.');
|
|
31
|
+
command.option('--custom-scalar-mapping <json>', 'Custom scalar type mappings as JSON string. ' +
|
|
32
|
+
'Example: \'{"DateTime":"google.protobuf.Timestamp","UUID":"string"}\'');
|
|
33
|
+
command.option('--custom-scalar-mapping-file <path>', 'Path to JSON file containing custom scalar type mappings. ' + 'Example: ./mappings.json');
|
|
34
|
+
command.option('--max-depth <number>', 'Maximum recursion depth for processing nested selections and fragments (default: 50). ' +
|
|
35
|
+
'Increase this if you have deeply nested queries or decrease to catch potential circular references earlier.');
|
|
36
|
+
command.option('--prefix-operation-type', 'Prefix RPC method names with the operation type (Query/Mutation). Only applies with --with-operations. ' +
|
|
37
|
+
'Subscriptions are not prefixed.');
|
|
19
38
|
command.action(generateCommandAction);
|
|
20
39
|
return command;
|
|
21
40
|
};
|
|
@@ -37,25 +56,106 @@ async function generateCommandAction(name, options) {
|
|
|
37
56
|
if (!(await exists(inputFile))) {
|
|
38
57
|
program.error(`Input file ${options.input} does not exist`);
|
|
39
58
|
}
|
|
59
|
+
// Validate operations directory if provided
|
|
60
|
+
if (options.withOperations) {
|
|
61
|
+
const operationsPath = resolve(options.withOperations);
|
|
62
|
+
if (!(await exists(operationsPath))) {
|
|
63
|
+
program.error(`Operations directory ${options.withOperations} does not exist`);
|
|
64
|
+
}
|
|
65
|
+
if (!(await lstat(operationsPath)).isDirectory()) {
|
|
66
|
+
program.error(`Path ${options.withOperations} is not a directory`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Parse custom scalar mappings if provided
|
|
70
|
+
let customScalarMappings;
|
|
71
|
+
if (options.customScalarMapping && options.customScalarMappingFile) {
|
|
72
|
+
program.error('Cannot use both --custom-scalar-mapping and --custom-scalar-mapping-file. Please use only one.');
|
|
73
|
+
}
|
|
74
|
+
if (options.customScalarMapping) {
|
|
75
|
+
try {
|
|
76
|
+
customScalarMappings = JSON.parse(options.customScalarMapping);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
program.error(`Failed to parse custom scalar mapping JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if (options.customScalarMappingFile) {
|
|
83
|
+
try {
|
|
84
|
+
const filePath = resolve(options.customScalarMappingFile);
|
|
85
|
+
if (!(await exists(filePath))) {
|
|
86
|
+
program.error(`Custom scalar mapping file not found: ${options.customScalarMappingFile}`);
|
|
87
|
+
}
|
|
88
|
+
const fileContent = await readFile(filePath, 'utf8');
|
|
89
|
+
customScalarMappings = JSON.parse(fileContent);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
program.error(`Failed to read or parse custom scalar mapping file: ${error instanceof Error ? error.message : String(error)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Parse maxDepth if provided
|
|
96
|
+
let maxDepth;
|
|
97
|
+
if (options.maxDepth) {
|
|
98
|
+
const parsed = Number.parseInt(options.maxDepth, 10);
|
|
99
|
+
if (Number.isNaN(parsed) || parsed < 1) {
|
|
100
|
+
program.error(`Invalid --max-depth value: ${options.maxDepth}. Must be a positive integer.`);
|
|
101
|
+
}
|
|
102
|
+
maxDepth = parsed;
|
|
103
|
+
}
|
|
104
|
+
// Validate prefix-operation-type usage
|
|
105
|
+
if (options.prefixOperationType && !options.withOperations) {
|
|
106
|
+
spinner.warn('--prefix-operation-type flag is ignored when not using --with-operations');
|
|
107
|
+
}
|
|
108
|
+
const languageOptions = {
|
|
109
|
+
goPackage: options.goPackage,
|
|
110
|
+
javaPackage: options.javaPackage,
|
|
111
|
+
javaOuterClassname: options.javaOuterClassname,
|
|
112
|
+
javaMultipleFiles: options.javaMultipleFiles,
|
|
113
|
+
csharpNamespace: options.csharpNamespace,
|
|
114
|
+
rubyPackage: options.rubyPackage,
|
|
115
|
+
phpNamespace: options.phpNamespace,
|
|
116
|
+
phpMetadataNamespace: options.phpMetadataNamespace,
|
|
117
|
+
objcClassPrefix: options.objcClassPrefix,
|
|
118
|
+
swiftPrefix: options.swiftPrefix,
|
|
119
|
+
};
|
|
40
120
|
const result = await generateProtoAndMapping({
|
|
41
121
|
outdir: options.output,
|
|
42
122
|
schemaFile: inputFile,
|
|
43
123
|
name,
|
|
44
124
|
spinner,
|
|
45
125
|
packageName: options.packageName,
|
|
46
|
-
|
|
126
|
+
languageOptions,
|
|
47
127
|
lockFile: options.protoLock,
|
|
128
|
+
operationsDir: options.withOperations,
|
|
129
|
+
customScalarMappings,
|
|
130
|
+
maxDepth,
|
|
131
|
+
prefixOperationType: options.prefixOperationType,
|
|
48
132
|
});
|
|
49
133
|
// Write the generated files
|
|
50
|
-
|
|
134
|
+
if (result.mapping) {
|
|
135
|
+
await writeFile(resolve(options.output, 'mapping.json'), result.mapping);
|
|
136
|
+
}
|
|
51
137
|
await writeFile(resolve(options.output, 'service.proto'), result.proto);
|
|
52
|
-
|
|
53
|
-
|
|
138
|
+
if (result.lockData) {
|
|
139
|
+
await writeFile(resolve(options.output, 'service.proto.lock.json'), JSON.stringify(result.lockData, null, 2));
|
|
140
|
+
}
|
|
141
|
+
const generatedFiles = ['service.proto'];
|
|
142
|
+
if (result.mapping) {
|
|
143
|
+
generatedFiles.push('mapping.json');
|
|
144
|
+
}
|
|
145
|
+
if (result.lockData) {
|
|
146
|
+
generatedFiles.push('service.proto.lock.json');
|
|
147
|
+
}
|
|
148
|
+
const resultInfo = {
|
|
54
149
|
'input file': inputFile,
|
|
55
150
|
'output dir': options.output,
|
|
56
|
-
'service name': upperFirst(camelCase(name))
|
|
57
|
-
|
|
58
|
-
|
|
151
|
+
'service name': upperFirst(camelCase(name)),
|
|
152
|
+
'generation mode': result.isOperationsMode ? 'operations-based' : 'SDL-based',
|
|
153
|
+
generated: generatedFiles.join(', '),
|
|
154
|
+
};
|
|
155
|
+
if (result.isOperationsMode) {
|
|
156
|
+
resultInfo['query idempotency'] = 'NO_SIDE_EFFECTS';
|
|
157
|
+
}
|
|
158
|
+
renderResultTree(spinner, 'Generated protobuf schema', true, name, resultInfo);
|
|
59
159
|
}
|
|
60
160
|
catch (error) {
|
|
61
161
|
renderResultTree(spinner, 'Failed to generate protobuf schema', false, name, {
|
|
@@ -65,24 +165,181 @@ async function generateCommandAction(name, options) {
|
|
|
65
165
|
}
|
|
66
166
|
}
|
|
67
167
|
/**
|
|
68
|
-
*
|
|
168
|
+
* Read all GraphQL operation files from a directory recursively
|
|
169
|
+
* @param operationsDir - The directory path containing GraphQL operation files
|
|
170
|
+
* @returns An array of objects containing filename and content for each operation file
|
|
69
171
|
*/
|
|
70
|
-
async function
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
172
|
+
async function readOperationFiles(operationsDir) {
|
|
173
|
+
const files = await readdir(operationsDir, { recursive: true });
|
|
174
|
+
const validExtensions = ['.graphql', '.gql', '.graphqls', '.gqls'];
|
|
175
|
+
// Sort files to ensure deterministic output and consistent RPC/method ordering across platforms
|
|
176
|
+
const operationFiles = files.filter((file) => validExtensions.includes(extname(file).toLowerCase())).sort();
|
|
177
|
+
if (operationFiles.length === 0) {
|
|
178
|
+
throw new Error(`No GraphQL operation files (${validExtensions.join(', ')}) found in ${operationsDir}`);
|
|
179
|
+
}
|
|
180
|
+
const operations = [];
|
|
181
|
+
for (const file of operationFiles) {
|
|
182
|
+
const filePath = resolve(operationsDir, file);
|
|
183
|
+
const content = await readFile(filePath, 'utf8');
|
|
184
|
+
operations.push({ filename: file, content });
|
|
185
|
+
}
|
|
186
|
+
return operations;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Merge multiple protobufjs Root ASTs into a single Root
|
|
190
|
+
* Combines all messages, enums, and RPC methods from multiple operations
|
|
191
|
+
*/
|
|
192
|
+
function mergeProtoRoots(roots, serviceName) {
|
|
193
|
+
if (roots.length === 0) {
|
|
194
|
+
throw new Error('No proto roots to merge');
|
|
195
|
+
}
|
|
196
|
+
if (roots.length === 1) {
|
|
197
|
+
return roots[0];
|
|
198
|
+
}
|
|
199
|
+
// Create a new merged root
|
|
200
|
+
const mergedRoot = new protobuf.Root();
|
|
201
|
+
const seenMessages = new Set();
|
|
202
|
+
const seenEnums = new Set();
|
|
203
|
+
const mergedService = new protobuf.Service(serviceName);
|
|
204
|
+
for (const root of roots) {
|
|
205
|
+
// Iterate through all nested types in the root
|
|
206
|
+
for (const nested of Object.values(root.nestedArray)) {
|
|
207
|
+
if (nested instanceof protobuf.Type) {
|
|
208
|
+
// Add message if not already seen
|
|
209
|
+
const message = nested;
|
|
210
|
+
if (!seenMessages.has(message.name)) {
|
|
211
|
+
mergedRoot.add(message);
|
|
212
|
+
seenMessages.add(message.name);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else if (nested instanceof protobuf.Enum) {
|
|
216
|
+
// Add enum if not already seen
|
|
217
|
+
const enumType = nested;
|
|
218
|
+
if (!seenEnums.has(enumType.name)) {
|
|
219
|
+
mergedRoot.add(enumType);
|
|
220
|
+
seenEnums.add(enumType.name);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else if (nested instanceof protobuf.Service) {
|
|
224
|
+
// Merge all RPC methods from all services
|
|
225
|
+
const service = nested;
|
|
226
|
+
for (const method of Object.values(service.methods)) {
|
|
227
|
+
mergedService.add(method);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Add the merged service to the root
|
|
233
|
+
mergedRoot.add(mergedService);
|
|
234
|
+
return mergedRoot;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Generate proto from GraphQL operations
|
|
238
|
+
* @param schema - The GraphQL schema content
|
|
239
|
+
* @param serviceName - The name of the proto service
|
|
240
|
+
* @param operationsPath - The resolved path to the operations directory
|
|
241
|
+
* @param spinner - The spinner instance for progress updates
|
|
242
|
+
* @param packageName - The proto package name
|
|
243
|
+
* @param languageOptions - Language-specific proto options
|
|
244
|
+
* @param lockFile - Path to the proto lock file
|
|
245
|
+
* @param customScalarMappings - Custom scalar type mappings
|
|
246
|
+
* @param maxDepth - Maximum recursion depth
|
|
247
|
+
* @param prefixOperationType - Whether to prefix operation types
|
|
248
|
+
* @returns Generation result with proto content and lock data
|
|
249
|
+
* @note All Query operations are automatically marked with NO_SIDE_EFFECTS idempotency level
|
|
250
|
+
*/
|
|
251
|
+
async function generateFromOperations(schema, serviceName, operationsPath, spinner, packageName, languageOptions, lockFile, customScalarMappings, maxDepth, prefixOperationType) {
|
|
252
|
+
spinner.text = 'Reading operation files...';
|
|
253
|
+
const operationFiles = await readOperationFiles(operationsPath);
|
|
254
|
+
spinner.text = `Processing ${operationFiles.length} operation files...`;
|
|
255
|
+
// Load lock data for field number stability
|
|
256
|
+
let currentLockData = await fetchLockData(lockFile);
|
|
257
|
+
// Process each operation file separately to maintain reversibility
|
|
258
|
+
// Collect the AST roots instead of proto strings
|
|
259
|
+
const roots = [];
|
|
260
|
+
for (const { filename, content } of operationFiles) {
|
|
261
|
+
try {
|
|
262
|
+
const result = compileOperationsToProto(content, schema, {
|
|
263
|
+
serviceName,
|
|
264
|
+
packageName: packageName || 'service.v1',
|
|
265
|
+
...languageOptions,
|
|
266
|
+
includeComments: true,
|
|
267
|
+
// All Query operations are automatically marked as NO_SIDE_EFFECTS (idempotent).
|
|
268
|
+
// This ensures consistent, safe retry behavior for all query operations.
|
|
269
|
+
queryIdempotency: 'NO_SIDE_EFFECTS',
|
|
270
|
+
lockData: currentLockData,
|
|
271
|
+
customScalarMappings,
|
|
272
|
+
maxDepth,
|
|
273
|
+
prefixOperationType,
|
|
274
|
+
});
|
|
275
|
+
// Keep the AST root instead of the string
|
|
276
|
+
roots.push(result.root);
|
|
277
|
+
// Use the updated lock data for the next operation to maintain field number stability
|
|
278
|
+
currentLockData = result.lockData;
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
throw new Error(`Failed to process operation file ${filename}: ${error instanceof Error ? error.message : String(error)}`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// Merge all proto ASTs into a single root
|
|
285
|
+
const mergedRoot = mergeProtoRoots(roots, serviceName);
|
|
286
|
+
// Convert the merged AST to proto text once
|
|
287
|
+
const mergedProto = rootToProtoText(mergedRoot, {
|
|
288
|
+
packageName: packageName || 'service.v1',
|
|
289
|
+
...languageOptions,
|
|
290
|
+
includeComments: true,
|
|
291
|
+
});
|
|
292
|
+
return {
|
|
293
|
+
mapping: null,
|
|
294
|
+
proto: mergedProto,
|
|
295
|
+
lockData: currentLockData !== null && currentLockData !== void 0 ? currentLockData : null,
|
|
296
|
+
isOperationsMode: true,
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Generate proto and mapping from GraphQL SDL
|
|
301
|
+
* @param schema - The GraphQL schema content
|
|
302
|
+
* @param serviceName - The name of the proto service
|
|
303
|
+
* @param spinner - The spinner instance for progress updates
|
|
304
|
+
* @param packageName - The proto package name
|
|
305
|
+
* @param languageOptions - Language-specific proto options
|
|
306
|
+
* @param lockFile - Path to the proto lock file
|
|
307
|
+
* @returns Generation result with proto, mapping, and lock data
|
|
308
|
+
*/
|
|
309
|
+
async function generateFromSDL(schema, serviceName, spinner, packageName, languageOptions, lockFile) {
|
|
74
310
|
spinner.text = 'Generating mapping and proto files...';
|
|
75
311
|
const lockData = await fetchLockData(lockFile);
|
|
76
|
-
// Validate the GraphQL schema and render results
|
|
77
|
-
spinner.text = 'Validating GraphQL schema...';
|
|
78
|
-
const validationResult = validateGraphQLSDL(schema);
|
|
79
|
-
renderValidationResults(validationResult, schemaFile);
|
|
80
|
-
// Continue with generation if validation passed (no errors)
|
|
81
|
-
spinner.text = 'Generating mapping and proto files...';
|
|
82
312
|
const mapping = compileGraphQLToMapping(schema, serviceName);
|
|
83
313
|
const protoOptions = [];
|
|
84
|
-
if (goPackage) {
|
|
85
|
-
protoOptions.push(getGoModulePathProtoOption(goPackage));
|
|
314
|
+
if (languageOptions.goPackage) {
|
|
315
|
+
protoOptions.push(getGoModulePathProtoOption(languageOptions.goPackage));
|
|
316
|
+
}
|
|
317
|
+
if (languageOptions.javaPackage) {
|
|
318
|
+
protoOptions.push({ name: 'java_package', constant: `"${languageOptions.javaPackage}"` });
|
|
319
|
+
}
|
|
320
|
+
if (languageOptions.javaOuterClassname) {
|
|
321
|
+
protoOptions.push({ name: 'java_outer_classname', constant: `"${languageOptions.javaOuterClassname}"` });
|
|
322
|
+
}
|
|
323
|
+
if (languageOptions.javaMultipleFiles !== undefined) {
|
|
324
|
+
protoOptions.push({ name: 'java_multiple_files', constant: String(languageOptions.javaMultipleFiles) });
|
|
325
|
+
}
|
|
326
|
+
if (languageOptions.csharpNamespace) {
|
|
327
|
+
protoOptions.push({ name: 'csharp_namespace', constant: `"${languageOptions.csharpNamespace}"` });
|
|
328
|
+
}
|
|
329
|
+
if (languageOptions.rubyPackage) {
|
|
330
|
+
protoOptions.push({ name: 'ruby_package', constant: `"${languageOptions.rubyPackage}"` });
|
|
331
|
+
}
|
|
332
|
+
if (languageOptions.phpNamespace) {
|
|
333
|
+
protoOptions.push({ name: 'php_namespace', constant: `"${languageOptions.phpNamespace}"` });
|
|
334
|
+
}
|
|
335
|
+
if (languageOptions.phpMetadataNamespace) {
|
|
336
|
+
protoOptions.push({ name: 'php_metadata_namespace', constant: `"${languageOptions.phpMetadataNamespace}"` });
|
|
337
|
+
}
|
|
338
|
+
if (languageOptions.objcClassPrefix) {
|
|
339
|
+
protoOptions.push({ name: 'objc_class_prefix', constant: `"${languageOptions.objcClassPrefix}"` });
|
|
340
|
+
}
|
|
341
|
+
if (languageOptions.swiftPrefix) {
|
|
342
|
+
protoOptions.push({ name: 'swift_prefix', constant: `"${languageOptions.swiftPrefix}"` });
|
|
86
343
|
}
|
|
87
344
|
const proto = compileGraphQLToProto(schema, {
|
|
88
345
|
serviceName,
|
|
@@ -94,8 +351,30 @@ async function generateProtoAndMapping({ name, outdir, schemaFile, spinner, pack
|
|
|
94
351
|
mapping: JSON.stringify(mapping, null, 2),
|
|
95
352
|
proto: proto.proto,
|
|
96
353
|
lockData: proto.lockData,
|
|
354
|
+
isOperationsMode: false,
|
|
97
355
|
};
|
|
98
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* Generate proto and mapping data from schema
|
|
359
|
+
* @param options - Generation options including schema file, output directory, and configuration
|
|
360
|
+
* @returns Generation result with proto content, optional mapping, and lock data
|
|
361
|
+
*/
|
|
362
|
+
async function generateProtoAndMapping({ name, outdir, schemaFile, spinner, packageName, languageOptions, lockFile = resolve(outdir, 'service.proto.lock.json'), operationsDir, customScalarMappings, maxDepth, prefixOperationType, }) {
|
|
363
|
+
const schema = await readFile(schemaFile, 'utf8');
|
|
364
|
+
const serviceName = upperFirst(camelCase(name));
|
|
365
|
+
// Validate the GraphQL schema
|
|
366
|
+
spinner.text = 'Validating GraphQL schema...';
|
|
367
|
+
const validationResult = validateGraphQLSDL(schema);
|
|
368
|
+
renderValidationResults(validationResult, schemaFile);
|
|
369
|
+
// Determine generation mode
|
|
370
|
+
if (operationsDir) {
|
|
371
|
+
const operationsPath = resolve(operationsDir);
|
|
372
|
+
return generateFromOperations(schema, serviceName, operationsPath, spinner, packageName || 'service.v1', languageOptions, lockFile, customScalarMappings, maxDepth, prefixOperationType);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
return generateFromSDL(schema, serviceName, spinner, packageName, languageOptions, lockFile);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
99
378
|
async function fetchLockData(lockFile) {
|
|
100
379
|
if (!(await exists(lockFile))) {
|
|
101
380
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"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"}
|