wgc 0.87.0 → 0.87.2

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,6 +1,6 @@
1
1
  {
2
2
  "name": "wgc",
3
- "version": "0.87.0",
3
+ "version": "0.87.2",
4
4
  "description": "The official CLI tool to manage the GraphQL Federation Platform Cosmo",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -1,10 +1,9 @@
1
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
- import { existsSync, lstatSync } from 'node:fs';
3
- import { resolve } from 'pathe';
4
- import Spinner from 'ora';
5
- import { Command, program } from 'commander';
1
+ import { access, constants, lstat, mkdir, readFile, writeFile } from 'node:fs/promises';
6
2
  import { compileGraphQLToMapping, compileGraphQLToProto } from '@wundergraph/protographic';
3
+ import { Command, program } from 'commander';
7
4
  import { camelCase, upperFirst } from 'lodash-es';
5
+ import Spinner from 'ora';
6
+ import { resolve } from 'pathe';
8
7
  import { renderResultTree } from '../../router/commands/plugin/helper.js';
9
8
  export default (opts) => {
10
9
  const command = new Command('generate');
@@ -14,6 +13,8 @@ export default (opts) => {
14
13
  command.option('-o, --output <path-to-output>', 'The output directory for the protobuf schema. (default ".").', '.');
15
14
  command.option('-p, --package-name <name>', 'The name of the proto package. (default "service.v1")', 'service.v1');
16
15
  command.option('-g, --go-package <name>', 'Adds an `option go_package` to the proto file.');
16
+ 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. ' +
17
+ 'Default is to use and overwrite the output file "<outdir>/service.proto.lock.json".');
17
18
  command.action(generateCommandAction);
18
19
  return command;
19
20
  };
@@ -26,16 +27,24 @@ async function generateCommandAction(name, options) {
26
27
  try {
27
28
  const inputFile = resolve(options.input);
28
29
  // Ensure output directory exists
29
- if (!existsSync(options.output)) {
30
+ if (!(await exists(options.output))) {
30
31
  await mkdir(options.output, { recursive: true });
31
32
  }
32
- if (!lstatSync(options.output).isDirectory()) {
33
+ if (!(await lstat(options.output)).isDirectory()) {
33
34
  program.error(`Output directory ${options.output} is not a directory`);
34
35
  }
35
- if (!existsSync(inputFile)) {
36
+ if (!(await exists(inputFile))) {
36
37
  program.error(`Input file ${options.input} does not exist`);
37
38
  }
38
- const result = await generateProtoAndMapping(options.output, inputFile, name, options, spinner);
39
+ const result = await generateProtoAndMapping({
40
+ outdir: options.output,
41
+ schemaFile: inputFile,
42
+ name,
43
+ spinner,
44
+ packageName: options.packageName,
45
+ goPackage: options.goPackage,
46
+ lockFile: options.protoLock,
47
+ });
39
48
  // Write the generated files
40
49
  await writeFile(resolve(options.output, 'mapping.json'), result.mapping);
41
50
  await writeFile(resolve(options.output, 'service.proto'), result.proto);
@@ -57,24 +66,17 @@ async function generateCommandAction(name, options) {
57
66
  /**
58
67
  * Generate proto and mapping data from schema
59
68
  */
60
- async function generateProtoAndMapping(outdir, schemaFile, name, options, spinner) {
69
+ async function generateProtoAndMapping({ name, outdir, schemaFile, spinner, packageName, goPackage, lockFile = resolve(outdir, 'service.proto.lock.json'), }) {
61
70
  spinner.text = 'Generating proto schema...';
62
- const lockFile = resolve(outdir, 'service.proto.lock.json');
63
71
  const schema = await readFile(schemaFile, 'utf8');
64
72
  const serviceName = upperFirst(camelCase(name)) + 'Service';
65
73
  spinner.text = 'Generating mapping and proto files...';
66
- let lockData;
67
- if (existsSync(lockFile)) {
68
- const existingLockData = JSON.parse(await readFile(lockFile, 'utf8'));
69
- if (existingLockData) {
70
- lockData = existingLockData;
71
- }
72
- }
74
+ const lockData = await fetchLockData(lockFile);
73
75
  const mapping = compileGraphQLToMapping(schema, serviceName);
74
76
  const proto = compileGraphQLToProto(schema, {
75
77
  serviceName,
76
- packageName: options.packageName,
77
- goPackage: options.goPackage,
78
+ packageName,
79
+ goPackage,
78
80
  lockData,
79
81
  });
80
82
  return {
@@ -83,4 +85,21 @@ async function generateProtoAndMapping(outdir, schemaFile, name, options, spinne
83
85
  lockData: proto.lockData,
84
86
  };
85
87
  }
88
+ async function fetchLockData(lockFile) {
89
+ if (!(await exists(lockFile))) {
90
+ return undefined;
91
+ }
92
+ const existingLockData = JSON.parse(await readFile(lockFile, 'utf8'));
93
+ return existingLockData == null ? undefined : existingLockData;
94
+ }
95
+ // Usage of exists from node:fs is not recommended. Use access instead.
96
+ async function exists(path) {
97
+ try {
98
+ await access(path, constants.R_OK);
99
+ return true;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
86
105
  //# sourceMappingURL=generate.js.map
@@ -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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"}