wgc 0.94.8 → 0.96.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.
Files changed (30) hide show
  1. package/dist/package.json +4 -1
  2. package/dist/src/commands/grpc-service/commands/generate.js +6 -1
  3. package/dist/src/commands/grpc-service/commands/generate.js.map +1 -1
  4. package/dist/src/commands/router/commands/compose.js +6 -5
  5. package/dist/src/commands/router/commands/compose.js.map +1 -1
  6. package/dist/src/commands/router/commands/plugin/commands/build.js +44 -19
  7. package/dist/src/commands/router/commands/plugin/commands/build.js.map +1 -1
  8. package/dist/src/commands/router/commands/plugin/commands/generate.js +32 -10
  9. package/dist/src/commands/router/commands/plugin/commands/generate.js.map +1 -1
  10. package/dist/src/commands/router/commands/plugin/commands/init.js +79 -48
  11. package/dist/src/commands/router/commands/plugin/commands/init.js.map +1 -1
  12. package/dist/src/commands/router/commands/plugin/commands/test.js +36 -7
  13. package/dist/src/commands/router/commands/plugin/commands/test.js.map +1 -1
  14. package/dist/src/commands/router/commands/plugin/templates/go.d.ts +9 -0
  15. package/dist/src/commands/router/commands/plugin/templates/go.js +18 -0
  16. package/dist/src/commands/router/commands/plugin/templates/go.js.map +1 -0
  17. package/dist/src/commands/router/commands/plugin/templates/plugin.d.ts +3 -8
  18. package/dist/src/commands/router/commands/plugin/templates/plugin.js +11 -424
  19. package/dist/src/commands/router/commands/plugin/templates/plugin.js.map +1 -1
  20. package/dist/src/commands/router/commands/plugin/templates/project.d.ts +5 -5
  21. package/dist/src/commands/router/commands/plugin/templates/project.js +14 -200
  22. package/dist/src/commands/router/commands/plugin/templates/project.js.map +1 -1
  23. package/dist/src/commands/router/commands/plugin/templates/typescript.d.ts +14 -0
  24. package/dist/src/commands/router/commands/plugin/templates/typescript.js +28 -0
  25. package/dist/src/commands/router/commands/plugin/templates/typescript.js.map +1 -0
  26. package/dist/src/commands/router/commands/plugin/toolchain.d.ts +25 -6
  27. package/dist/src/commands/router/commands/plugin/toolchain.js +334 -78
  28. package/dist/src/commands/router/commands/plugin/toolchain.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +8 -5
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wgc",
3
- "version": "0.94.8",
3
+ "version": "0.96.0",
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",
@@ -19,6 +19,9 @@
19
19
  "url": "https://github.com/wundergraph/cosmo"
20
20
  },
21
21
  "scripts": {
22
+ "compile-templates": "tsx scripts/compile-templates.ts && prettier --write src/commands/router/commands/plugin/templates/*.ts",
23
+ "prebuild": "npm run compile-templates",
24
+ "prebuild:bun": "bun run compile-templates",
22
25
  "build": "rm -rf dist && tsc",
23
26
  "build:bun": "bun build --compile --production --outfile wgc src/index.ts",
24
27
  "wgc": "tsx --env-file .env src/index.ts",
@@ -5,6 +5,7 @@ import { camelCase, upperFirst } from 'lodash-es';
5
5
  import Spinner from 'ora';
6
6
  import { resolve } from 'pathe';
7
7
  import { renderResultTree, renderValidationResults } from '../../router/commands/plugin/helper.js';
8
+ import { getGoModulePathProtoOption } from '../../router/commands/plugin/toolchain.js';
8
9
  export default (opts) => {
9
10
  const command = new Command('generate');
10
11
  command.description('Generate a protobuf schema for a remote gRPC service.');
@@ -79,11 +80,15 @@ async function generateProtoAndMapping({ name, outdir, schemaFile, spinner, pack
79
80
  // Continue with generation if validation passed (no errors)
80
81
  spinner.text = 'Generating mapping and proto files...';
81
82
  const mapping = compileGraphQLToMapping(schema, serviceName);
83
+ const protoOptions = [];
84
+ if (goPackage) {
85
+ protoOptions.push(getGoModulePathProtoOption(goPackage));
86
+ }
82
87
  const proto = compileGraphQLToProto(schema, {
83
88
  serviceName,
84
89
  packageName,
85
- goPackage,
86
90
  lockData,
91
+ protoOptions,
87
92
  });
88
93
  return {
89
94
  mapping: JSON.stringify(mapping, null, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EAErB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,OAAqB,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAUnG,eAAe,CAAC,IAAwB,EAAE,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC;IAC7D,OAAO,CAAC,cAAc,CAAC,6BAA6B,EAAE,6DAA6D,CAAC,CAAC;IACrH,OAAO,CAAC,MAAM,CAAC,+BAA+B,EAAE,8DAA8D,EAAE,GAAG,CAAC,CAAC;IACrH,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,uDAAuD,EAAE,YAAY,CAAC,CAAC;IACnH,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,gDAAgD,CAAC,CAAC;IAC5F,OAAO,CAAC,MAAM,CACZ,uCAAuC,EACvC,yGAAyG;QACvG,qFAAqF,CACxF,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAQF,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAmB;IACpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEzC,iCAAiC;QACjC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,KAAK,iBAAiB,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,SAAS;YACrB,IAAI;YACJ,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACzE,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9G,gBAAgB,CAAC,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE;YACjE,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,cAAc,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS;YACvD,SAAS,EAAE,sDAAsD;SAClE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,OAAO,EAAE,oCAAoC,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3E,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAYD;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,UAAU,EACV,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,GACnC;IAClB,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,IAAI,GAAG,uCAAuC,CAAC;IAEvD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE/C,iDAAiD;IACjD,OAAO,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC9C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACpD,uBAAuB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAEtD,4DAA4D;IAC5D,OAAO,CAAC,IAAI,GAAG,uCAAuC,CAAC;IACvD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE;QAC1C,WAAW;QACX,WAAW;QACX,SAAS;QACT,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,OAAO,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjE,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/commands/grpc-service/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { readFile, writeFile } from 'node:fs/promises';
3
- import { randomUUID } from 'node:crypto';
4
3
  import { buildRouterConfig, normalizeURL, SubgraphKind, } from '@wundergraph/cosmo-shared';
5
4
  import semver from 'semver';
6
5
  import { Command, program } from 'commander';
@@ -13,6 +12,7 @@ import { FeatureFlagRouterExecutionConfig, FeatureFlagRouterExecutionConfigs, GR
13
12
  import Table from 'cli-table3';
14
13
  import { ROUTER_COMPATIBILITY_VERSION_ONE } from '@wundergraph/composition';
15
14
  import { composeSubgraphs, introspectSubgraph } from '../../../utils.js';
15
+ const STATIC_SCHEMA_VERSION_ID = '00000000-0000-0000-0000-000000000000';
16
16
  function constructRouterSubgraph(result, s, index) {
17
17
  const subgraphConfig = result.subgraphConfigBySubgraphName.get(s.name);
18
18
  const schema = subgraphConfig === null || subgraphConfig === void 0 ? void 0 : subgraphConfig.schema;
@@ -121,17 +121,18 @@ export default (opts) => {
121
121
  }
122
122
  console.log(compositionWarningsTable.toString());
123
123
  }
124
- const federatedClientSDL = result.shouldIncludeClientSchema ? printSchema(result.federatedGraphClientSchema) : '';
124
+ const federatedClientSDL = result.shouldIncludeClientSchema
125
+ ? printSchemaWithDirectives(result.federatedGraphClientSchema)
126
+ : '';
125
127
  const routerConfig = buildRouterConfig({
126
128
  federatedClientSDL,
127
129
  federatedSDL: printSchemaWithDirectives(result.federatedGraphSchema),
128
130
  fieldConfigurations: result.fieldConfigurations,
129
131
  // @TODO get router compatibility version programmatically
130
132
  routerCompatibilityVersion: ROUTER_COMPATIBILITY_VERSION_ONE,
131
- schemaVersionId: 'static',
133
+ schemaVersionId: STATIC_SCHEMA_VERSION_ID,
132
134
  subgraphs: subgraphs.map((s, index) => constructRouterSubgraph(result, s, index)),
133
135
  });
134
- routerConfig.version = randomUUID();
135
136
  if (config.feature_flags && config.feature_flags.length > 0) {
136
137
  const ffConfigs = await buildFeatureFlagsConfig(config, inputFileLocation, subgraphs, options);
137
138
  routerConfig.featureFlagConfigs = ffConfigs;
@@ -405,7 +406,7 @@ async function buildFeatureFlagsConfig(config, inputFileLocation, subgraphs, opt
405
406
  subgraphs: featureRouterConfig.subgraphs,
406
407
  engineConfig: featureRouterConfig.engineConfig,
407
408
  });
408
- ffConfigs.configByFeatureFlagName[ff.name].version = randomUUID();
409
+ ffConfigs.configByFeatureFlagName[ff.name].version = STATIC_SCHEMA_VERSION_ID;
409
410
  }
410
411
  return ffConfigs;
411
412
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../src/commands/router/commands/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../../../src/commands/router/commands/compose.ts"],"names":[],"mappings":"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"}
@@ -4,45 +4,69 @@ import { Command, program } from 'commander';
4
4
  import { resolve } from 'pathe';
5
5
  import Spinner from 'ora';
6
6
  import { renderResultTree } from '../helper.js';
7
- import { buildBinaries, checkAndInstallTools, generateGRPCCode, generateProtoAndMapping, HOST_PLATFORM, installGoDependencies, normalizePlatforms, } from '../toolchain.js';
7
+ import { buildGoBinaries, checkAndInstallTools, generateGRPCCode, generateProtoAndMapping, getLanguage, installGoDependencies, installTsDependencies, typeCheckTs, buildTsBinaries, normalizePlatforms, validateAndGetGoModulePath, getGoModulePathProtoOption, } from '../toolchain.js';
8
8
  export default (opts) => {
9
9
  const command = new Command('build');
10
10
  command.description('Build a gRPC router plugin');
11
11
  command.argument('[directory]', 'Directory of the plugin', '.');
12
12
  command.option('--generate-only', 'Generate only the proto and mapping files, do not compile the plugin');
13
13
  command.option('--debug', 'Build the binary with debug information', false);
14
- command.option('--platform [platforms...]', 'Platform-architecture combinations (e.g., darwin-arm64 linux-amd64)', [
15
- HOST_PLATFORM,
16
- ]);
14
+ command.option('--platform [platforms...]', 'Platform-architecture combinations (e.g., darwin-arm64 linux-amd64)', []);
17
15
  command.option('--all-platforms', 'Build for all supported platforms', false);
18
16
  command.option('--skip-tools-installation', 'Skip tool installation', false);
19
17
  command.option('--force-tools-installation', 'Force tools installation regardless of version check or confirmation', false);
20
- command.option('--go-module-path <path>', 'Go module path to use for the plugin', 'github.com/wundergraph/cosmo/plugin');
18
+ command.option('--go-module-path <path>', 'Go module path to use for the plugin');
21
19
  command.action(async (directory, options) => {
22
20
  const startTime = performance.now();
23
21
  const pluginDir = resolve(directory);
24
22
  const spinner = Spinner();
25
23
  const pluginName = path.basename(pluginDir);
26
- const goModulePath = options.goModulePath;
24
+ const language = getLanguage(pluginDir);
25
+ if (!language) {
26
+ renderResultTree(spinner, 'Plugin language detection failed!', false, pluginName, {
27
+ output: pluginDir,
28
+ });
29
+ program.error('');
30
+ }
31
+ const protoOptions = [];
27
32
  let platforms = [];
28
33
  try {
29
34
  // Check and install tools if needed
30
35
  if (!options.skipToolsInstallation) {
31
- await checkAndInstallTools(options.forceToolsInstallation);
36
+ await checkAndInstallTools(options.forceToolsInstallation, language);
32
37
  }
33
- // Normalize platform list
34
- platforms = normalizePlatforms(options.platform, options.allPlatforms);
35
38
  // Start the main build process
36
39
  spinner.start('Building plugin...');
40
+ const goModulePath = validateAndGetGoModulePath(language, options.goModulePath);
41
+ switch (language) {
42
+ case 'ts': {
43
+ await installTsDependencies(pluginDir, spinner);
44
+ break;
45
+ }
46
+ case 'go': {
47
+ protoOptions.push(getGoModulePathProtoOption(goModulePath));
48
+ break;
49
+ }
50
+ }
51
+ // Normalize platform list
52
+ platforms = normalizePlatforms(options.platform, options.allPlatforms, language);
37
53
  // Generate proto and mapping files
38
- await generateProtoAndMapping(pluginDir, goModulePath, spinner);
54
+ await generateProtoAndMapping(pluginDir, protoOptions, spinner);
39
55
  // Generate gRPC code
40
- await generateGRPCCode(pluginDir, spinner);
56
+ await generateGRPCCode(pluginDir, spinner, language);
41
57
  if (!options.generateOnly) {
42
- // Install Go dependencies
43
- await installGoDependencies(pluginDir, spinner);
44
- // Build binaries for all platforms
45
- await buildBinaries(pluginDir, platforms, options.debug, spinner);
58
+ switch (language) {
59
+ case 'go': {
60
+ await installGoDependencies(pluginDir, spinner);
61
+ await buildGoBinaries(pluginDir, platforms, options.debug, spinner);
62
+ break;
63
+ }
64
+ case 'ts': {
65
+ await typeCheckTs(pluginDir, spinner);
66
+ await buildTsBinaries(pluginDir, platforms, options.debug, spinner);
67
+ break;
68
+ }
69
+ }
46
70
  }
47
71
  // Calculate and format elapsed time
48
72
  const endTime = performance.now();
@@ -50,24 +74,25 @@ export default (opts) => {
50
74
  const formattedTime = elapsedTimeMs > 1000 ? `${(elapsedTimeMs / 1000).toFixed(2)}s` : `${Math.round(elapsedTimeMs)}ms`;
51
75
  renderResultTree(spinner, 'Plugin built successfully!', true, pluginName, {
52
76
  output: pluginDir,
53
- 'go module': goModulePath,
54
77
  platforms: platforms.join(', '),
55
78
  env: `${os.platform()} ${os.arch()}`,
56
79
  build: options.debug ? 'debug' : 'release',
57
80
  type: options.generateOnly ? 'generate-only' : 'full',
58
81
  time: formattedTime,
82
+ protoOptions: protoOptions.map(({ name, constant }) => `${name}=${constant}`).join(','),
59
83
  });
60
84
  }
61
85
  catch (error) {
62
- renderResultTree(spinner, 'Plugin build failed!', false, pluginName, {
86
+ const details = {
63
87
  output: pluginDir,
64
- 'go module': goModulePath,
65
88
  platforms: platforms.join(', '),
66
89
  env: `${os.platform()} ${os.arch()}`,
67
90
  build: options.debug ? 'debug' : 'release',
68
91
  type: options.generateOnly ? 'generate-only' : 'full',
69
92
  error: error.message,
70
- });
93
+ protoOptions: protoOptions.map(({ name, constant }) => `${name}=${constant}`).join(','),
94
+ };
95
+ renderResultTree(spinner, 'Plugin build failed!', false, pluginName, details);
71
96
  program.error('');
72
97
  }
73
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/build.ts"],"names":[],"mappings":"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"}
@@ -4,41 +4,63 @@ import Spinner from 'ora';
4
4
  import { resolve } from 'pathe';
5
5
  import pc from 'picocolors';
6
6
  import { renderResultTree } from '../helper.js';
7
- import { checkAndInstallTools, generateGRPCCode, generateProtoAndMapping, installGoDependencies, } from '../toolchain.js';
7
+ import { checkAndInstallTools, generateGRPCCode, generateProtoAndMapping, getGoModulePathProtoOption, getLanguage, installGoDependencies, installTsDependencies, validateAndGetGoModulePath, } from '../toolchain.js';
8
8
  export default (opts) => {
9
9
  const command = new Command('generate');
10
10
  command.description('Generate proto and gRPC code for a router plugin');
11
11
  command.argument('[directory]', 'Directory of the plugin', '.');
12
12
  command.option('--skip-tools-installation', 'Skip tool installation', false);
13
13
  command.option('--force-tools-installation', 'Force tools installation regardless of version check or confirmation', false);
14
- command.option('--go-module-path <path>', 'Go module path to use for the plugin', 'github.com/wundergraph/cosmo/plugin');
14
+ command.option('--go-module-path <path>', 'Go module path to use for the plugin');
15
15
  command.action(async (directory, options) => {
16
16
  const startTime = performance.now();
17
17
  const pluginDir = resolve(directory);
18
18
  const spinner = Spinner();
19
19
  const pluginName = path.basename(pluginDir);
20
- const goModulePath = options.goModulePath;
20
+ const language = getLanguage(pluginDir);
21
+ if (!language) {
22
+ renderResultTree(spinner, 'Plugin language detection failed!', false, pluginName, {
23
+ output: pluginDir,
24
+ });
25
+ program.error('');
26
+ }
27
+ const protoOptions = [];
21
28
  try {
22
29
  // Check and install tools if needed
23
30
  if (!options.skipToolsInstallation) {
24
- await checkAndInstallTools(options.forceToolsInstallation);
31
+ await checkAndInstallTools(options.forceToolsInstallation, language);
25
32
  }
26
33
  // Start the generation process
27
34
  spinner.start('Generating plugin code...');
35
+ const goModulePath = validateAndGetGoModulePath(language, options.goModulePath);
36
+ switch (language) {
37
+ case 'ts': {
38
+ await installTsDependencies(pluginDir, spinner);
39
+ break;
40
+ }
41
+ case 'go': {
42
+ protoOptions.push(getGoModulePathProtoOption(goModulePath));
43
+ break;
44
+ }
45
+ }
28
46
  // Generate proto and mapping files
29
- await generateProtoAndMapping(pluginDir, goModulePath, spinner);
47
+ await generateProtoAndMapping(pluginDir, protoOptions, spinner);
30
48
  // Generate gRPC code
31
- await generateGRPCCode(pluginDir, spinner);
32
- // Install Go dependencies
33
- await installGoDependencies(pluginDir, spinner);
49
+ await generateGRPCCode(pluginDir, spinner, language);
50
+ switch (language) {
51
+ case 'go': {
52
+ await installGoDependencies(pluginDir, spinner);
53
+ break;
54
+ }
55
+ }
34
56
  // Calculate and format elapsed time
35
57
  const endTime = performance.now();
36
58
  const elapsedTimeMs = endTime - startTime;
37
59
  const formattedTime = elapsedTimeMs > 1000 ? `${(elapsedTimeMs / 1000).toFixed(2)}s` : `${Math.round(elapsedTimeMs)}ms`;
38
60
  renderResultTree(spinner, 'Plugin code generated successfully!', true, pluginName, {
39
61
  output: pluginDir,
40
- 'go module': goModulePath,
41
62
  time: formattedTime,
63
+ protoOptions: protoOptions.map(({ name, constant }) => `${name}=${constant}`).join(','),
42
64
  });
43
65
  console.log('');
44
66
  console.log(` Now you can modify your implementation in src/main.go, then when you're ready to publish, run ${pc.bold('wgc router plugin publish')}.`);
@@ -46,8 +68,8 @@ export default (opts) => {
46
68
  catch (error) {
47
69
  renderResultTree(spinner, 'Plugin code generation failed!', false, pluginName, {
48
70
  output: pluginDir,
49
- 'go module': goModulePath,
50
71
  error: error.message,
72
+ protoOptions: protoOptions.map(({ name, constant }) => `${name}=${constant}`).join(','),
51
73
  });
52
74
  program.error('');
53
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,10 @@ import { compileGraphQLToMapping, compileGraphQLToProto } from '@wundergraph/pro
11
11
  import { camelCase, upperFirst } from 'lodash-es';
12
12
  import PluginTemplates from '../templates/plugin.js';
13
13
  import ProjectTemplates from '../templates/project.js';
14
+ import GoTemplates from '../templates/go.js';
15
+ import TsTemplates from '../templates/typescript.js';
14
16
  import { renderResultTree } from '../helper.js';
17
+ import { getGoModulePathProtoOption } from '../toolchain.js';
15
18
  export default (opts) => {
16
19
  const command = new Command('init');
17
20
  command.description('Scaffold a new gRPC router plugin');
@@ -47,70 +50,98 @@ export default (opts) => {
47
50
  const generatedDir = resolve(tempDir, 'generated');
48
51
  await mkdir(generatedDir, { recursive: true });
49
52
  spinner.text = 'Checkout templates...';
50
- if (options.language.toLowerCase() !== 'go') {
53
+ options.language = options.language.toLowerCase();
54
+ if (options.language !== 'go' && options.language !== 'ts') {
51
55
  spinner.fail(pc.yellow(`Language '${options.language}' is not supported yet. Using 'go' instead.`));
52
56
  options.language = 'go';
53
57
  }
54
58
  const goModulePath = 'github.com/wundergraph/cosmo/plugin';
55
59
  spinner.text = 'Generating mapping and proto files...';
60
+ await writeFile(resolve(srcDir, 'schema.graphql'), pupa(PluginTemplates.schemaGraphql, { name }));
61
+ const mapping = compileGraphQLToMapping(PluginTemplates.schemaGraphql, serviceName);
62
+ await writeFile(resolve(generatedDir, 'mapping.json'), JSON.stringify(mapping, null, 2));
63
+ await writeFile(resolve(tempDir, 'Makefile'), pupa(PluginTemplates.makefile, { originalPluginName }));
64
+ await writeFile(resolve(tempDir, '.gitignore'), PluginTemplates.gitignore);
65
+ await writeFile(resolve(tempDir, '.cursorignore'), PluginTemplates.cursorignore);
66
+ const protoOptions = [];
67
+ switch (options.language) {
68
+ case 'go': {
69
+ protoOptions.push(getGoModulePathProtoOption(goModulePath));
70
+ break;
71
+ }
72
+ }
73
+ const proto = compileGraphQLToProto(PluginTemplates.schemaGraphql, {
74
+ serviceName,
75
+ packageName: 'service',
76
+ protoOptions,
77
+ });
78
+ await writeFile(resolve(generatedDir, 'service.proto'), proto.proto);
79
+ await writeFile(resolve(generatedDir, 'service.proto.lock.json'), JSON.stringify(proto.lockData, null, 2));
80
+ let readmeTemplate = '';
81
+ let mainFileName = '';
82
+ // Create cursor rules in .cursor/rules
83
+ await mkdir(resolve(tempDir, '.cursor', 'rules'), { recursive: true });
84
+ // Language Specific
85
+ switch (options.language) {
86
+ case 'go': {
87
+ await writeFile(resolve(srcDir, 'main.go'), pupa(GoTemplates.mainGo, { serviceName }));
88
+ await writeFile(resolve(srcDir, 'main_test.go'), pupa(GoTemplates.mainTestGo, { serviceName }));
89
+ await writeFile(resolve(tempDir, 'go.mod'), pupa(GoTemplates.goMod, { modulePath: goModulePath }));
90
+ await writeFile(resolve(tempDir, 'Dockerfile'), pupa(GoTemplates.dockerfile, { originalPluginName }));
91
+ await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(GoTemplates.cursorRules, { name, originalPluginName, pluginDir }));
92
+ readmeTemplate = pupa(GoTemplates.readmePartialMd, { originalPluginName });
93
+ mainFileName = 'main.go';
94
+ break;
95
+ }
96
+ case 'ts': {
97
+ await writeFile(resolve(srcDir, 'plugin.ts'), pupa(TsTemplates.pluginTs, { serviceName }));
98
+ await writeFile(resolve(srcDir, 'plugin-server.ts'), pupa(TsTemplates.pluginServerTs, {}));
99
+ await writeFile(resolve(tempDir, 'package.json'), pupa(TsTemplates.packageJson, { serviceName }));
100
+ await writeFile(resolve(tempDir, 'Dockerfile'), pupa(TsTemplates.dockerfile, { originalPluginName }));
101
+ await writeFile(resolve(srcDir, 'plugin.test.ts'), pupa(TsTemplates.pluginTestTs, { serviceName }));
102
+ await writeFile(resolve(tempDir, 'tsconfig.json'), pupa(TsTemplates.tsconfig, {}));
103
+ await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(TsTemplates.cursorRules, { name, originalPluginName, pluginDir, serviceName }));
104
+ const patchDir = resolve(tempDir, 'patches');
105
+ await mkdir(patchDir, { recursive: true });
106
+ // Additionally grpc-node-health-check uses __dirname, which means that when we compile a bun binary
107
+ // the __dirname is hardcoded to the path of the compiled binary upon compilation, thus
108
+ // we need to modify the grpc-health-check package to not use __dirname unless explicitly requested
109
+ await writeFile(resolve(patchDir, 'grpc-health-check@2.1.0.patch'), TsTemplates.grpcHealthCheckFilePatch);
110
+ // This has been merged in to the repo https://github.com/protobufjs/protobuf.js/blob/master/lib/inquire/index.js
111
+ // However due to a build step fault there has been no releases to npm for years.
112
+ await writeFile(resolve(patchDir, '@protobufjs_inquire@1.1.0.patch'), TsTemplates.protobufjsInquirePatch);
113
+ readmeTemplate = pupa(TsTemplates.readmePartialMd, { originalPluginName });
114
+ mainFileName = 'plugin.ts';
115
+ break;
116
+ }
117
+ }
56
118
  if (options.project) {
57
- await writeFile(resolve(tempDir, 'README.md'), pupa(ProjectTemplates.readme, { name, originalPluginName }));
58
- await writeFile(resolve(srcDir, 'schema.graphql'), pupa(PluginTemplates.schema, { name }));
59
- const mapping = compileGraphQLToMapping(PluginTemplates.schema, serviceName);
60
- await writeFile(resolve(generatedDir, 'mapping.json'), JSON.stringify(mapping, null, 2));
61
- const proto = compileGraphQLToProto(PluginTemplates.schema, {
62
- serviceName,
63
- packageName: 'service',
64
- goPackage: goModulePath,
65
- });
66
- await writeFile(resolve(generatedDir, 'service.proto'), proto.proto);
67
- await writeFile(resolve(generatedDir, 'service.proto.lock.json'), JSON.stringify(proto.lockData, null, 2));
68
- await writeFile(resolve(srcDir, 'main.go'), pupa(PluginTemplates.mainGo, { serviceName }));
69
- await writeFile(resolve(srcDir, 'main_test.go'), pupa(PluginTemplates.mainGoTest, { serviceName }));
70
- await writeFile(resolve(tempDir, 'go.mod'), pupa(PluginTemplates.goMod, { modulePath: goModulePath }));
71
- await writeFile(resolve(tempDir, 'Makefile'), pupa(PluginTemplates.makefile, { originalPluginName }));
72
- await writeFile(resolve(tempDir, '.gitignore'), PluginTemplates.gitignore);
73
- await writeFile(resolve(tempDir, '.cursorignore'), PluginTemplates.cursorIgnore);
74
- // Create cursor rules in .cursor/rules
75
- await mkdir(resolve(tempDir, '.cursor', 'rules'), { recursive: true });
76
- await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName, pluginDir }));
119
+ await writeFile(resolve(tempDir, 'README.md'), pupa(ProjectTemplates.readmePluginMd, {
120
+ name,
121
+ originalPluginName,
122
+ mainFile: mainFileName,
123
+ readmeText: readmeTemplate,
124
+ }));
77
125
  // Create a project directory structure
78
126
  await mkdir(projectDir, { recursive: true });
79
127
  await mkdir(resolve(projectDir, 'plugins'), { recursive: true });
80
128
  // Write router config to the project root
81
- await writeFile(resolve(projectDir, 'config.yaml'), ProjectTemplates.routerConfig);
82
- await writeFile(resolve(projectDir, 'graph.yaml'), pupa(ProjectTemplates.graphConfig, { originalPluginName }));
129
+ await writeFile(resolve(projectDir, 'config.yaml'), ProjectTemplates.routerConfigYaml);
130
+ await writeFile(resolve(projectDir, 'graph.yaml'), pupa(ProjectTemplates.graphYaml, { originalPluginName }));
83
131
  await writeFile(resolve(projectDir, 'Makefile'), pupa(ProjectTemplates.makefile, { originalPluginName }));
84
132
  await writeFile(resolve(projectDir, '.gitignore'), ProjectTemplates.gitignore);
85
- await writeFile(resolve(projectDir, 'README.md'), pupa(ProjectTemplates.projectReadme, { name, originalPluginName }));
86
- // Move plugin from temp directory to project plugins directory
87
- await rename(tempDir, pluginDir);
133
+ await writeFile(resolve(projectDir, 'README.md'), pupa(ProjectTemplates.readmeProjectMd, { name, originalPluginName }));
88
134
  }
89
135
  else {
90
- await writeFile(resolve(tempDir, 'README.md'), pupa(PluginTemplates.readme, { name, originalPluginName }));
91
- await writeFile(resolve(tempDir, 'Makefile'), pupa(PluginTemplates.makefile, { originalPluginName }));
92
- await writeFile(resolve(srcDir, 'schema.graphql'), pupa(PluginTemplates.schema, { name }));
93
- const mapping = compileGraphQLToMapping(PluginTemplates.schema, serviceName);
94
- await writeFile(resolve(generatedDir, 'mapping.json'), JSON.stringify(mapping, null, 2));
95
- // Create cursor rules in .cursor/rules
96
- await mkdir(resolve(tempDir, '.cursor', 'rules'), { recursive: true });
97
- await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName, pluginDir }));
98
- const proto = compileGraphQLToProto(PluginTemplates.schema, {
99
- serviceName,
100
- packageName: 'service',
101
- goPackage: goModulePath,
102
- });
103
- await writeFile(resolve(generatedDir, 'service.proto'), proto.proto);
104
- await writeFile(resolve(generatedDir, 'service.proto.lock.json'), JSON.stringify(proto.lockData, null, 2));
105
- await writeFile(resolve(srcDir, 'main.go'), pupa(PluginTemplates.mainGo, { serviceName }));
106
- await writeFile(resolve(srcDir, 'main_test.go'), pupa(PluginTemplates.mainGoTest, { serviceName }));
107
- await writeFile(resolve(tempDir, 'go.mod'), pupa(PluginTemplates.goMod, { modulePath: goModulePath }));
108
- await writeFile(resolve(tempDir, '.gitignore'), PluginTemplates.gitignore);
109
- await writeFile(resolve(tempDir, '.cursorignore'), PluginTemplates.cursorIgnore);
136
+ await writeFile(resolve(tempDir, 'README.md'), pupa(PluginTemplates.readmePluginMd, {
137
+ name,
138
+ originalPluginName,
139
+ mainFile: mainFileName,
140
+ readmeText: readmeTemplate,
141
+ }));
110
142
  await mkdir(projectDir, { recursive: true });
111
- await rename(tempDir, pluginDir);
112
143
  }
113
- await writeFile(resolve(pluginDir, 'Dockerfile'), pupa(PluginTemplates.dockerfile, { originalPluginName }));
144
+ await rename(tempDir, pluginDir);
114
145
  const endTime = performance.now();
115
146
  const elapsedTimeMs = endTime - startTime;
116
147
  const formattedTime = elapsedTimeMs > 1000 ? `${(elapsedTimeMs / 1000).toFixed(2)}s` : `${Math.round(elapsedTimeMs)}ms`;