wgc 0.95.0 → 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 (28) 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/plugin/commands/build.js +44 -19
  5. package/dist/src/commands/router/commands/plugin/commands/build.js.map +1 -1
  6. package/dist/src/commands/router/commands/plugin/commands/generate.js +32 -10
  7. package/dist/src/commands/router/commands/plugin/commands/generate.js.map +1 -1
  8. package/dist/src/commands/router/commands/plugin/commands/init.js +79 -48
  9. package/dist/src/commands/router/commands/plugin/commands/init.js.map +1 -1
  10. package/dist/src/commands/router/commands/plugin/commands/test.js +36 -7
  11. package/dist/src/commands/router/commands/plugin/commands/test.js.map +1 -1
  12. package/dist/src/commands/router/commands/plugin/templates/go.d.ts +9 -0
  13. package/dist/src/commands/router/commands/plugin/templates/go.js +18 -0
  14. package/dist/src/commands/router/commands/plugin/templates/go.js.map +1 -0
  15. package/dist/src/commands/router/commands/plugin/templates/plugin.d.ts +3 -8
  16. package/dist/src/commands/router/commands/plugin/templates/plugin.js +11 -424
  17. package/dist/src/commands/router/commands/plugin/templates/plugin.js.map +1 -1
  18. package/dist/src/commands/router/commands/plugin/templates/project.d.ts +5 -5
  19. package/dist/src/commands/router/commands/plugin/templates/project.js +14 -200
  20. package/dist/src/commands/router/commands/plugin/templates/project.js.map +1 -1
  21. package/dist/src/commands/router/commands/plugin/templates/typescript.d.ts +14 -0
  22. package/dist/src/commands/router/commands/plugin/templates/typescript.js +28 -0
  23. package/dist/src/commands/router/commands/plugin/templates/typescript.js.map +1 -0
  24. package/dist/src/commands/router/commands/plugin/toolchain.d.ts +25 -6
  25. package/dist/src/commands/router/commands/plugin/toolchain.js +334 -78
  26. package/dist/src/commands/router/commands/plugin/toolchain.js.map +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/package.json +6 -3
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wgc",
3
- "version": "0.95.0",
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":"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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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"}
@@ -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`;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import path from 'node:path';
2
2
  import os from 'node:os';
3
- import { Command } from 'commander';
3
+ import { Command, program } from 'commander';
4
4
  import { resolve } from 'pathe';
5
5
  import Spinner from 'ora';
6
- import { checkAndInstallTools, installGoDependencies, runGoTests } from '../toolchain.js';
6
+ import { checkAndInstallTools, getLanguage, installGoDependencies, installTsDependencies, runGoTests, runTsTests, } from '../toolchain.js';
7
7
  import { renderResultTree } from '../helper.js';
8
8
  export default (opts) => {
9
9
  const command = new Command('test');
@@ -16,18 +16,47 @@ export default (opts) => {
16
16
  const pluginDir = resolve(directory);
17
17
  const spinner = Spinner({ text: 'Running tests...' });
18
18
  const pluginName = path.basename(pluginDir);
19
+ const language = getLanguage(pluginDir);
20
+ if (!language) {
21
+ renderResultTree(spinner, 'Plugin language detection failed!', false, pluginName, {
22
+ output: pluginDir,
23
+ });
24
+ program.error('');
25
+ }
19
26
  try {
20
- spinner.start();
21
27
  // Check and install tools if needed
22
28
  if (!options.skipToolsInstallation) {
23
- await checkAndInstallTools(options.forceToolsInstallation);
29
+ await checkAndInstallTools(options.forceToolsInstallation, language);
30
+ }
31
+ spinner.start();
32
+ switch (language) {
33
+ case 'go': {
34
+ spinner.text = 'Installing Go dependencies...';
35
+ await installGoDependencies(pluginDir, spinner);
36
+ break;
37
+ }
38
+ case 'ts': {
39
+ spinner.text = 'Installing Ts dependencies...';
40
+ await installTsDependencies(pluginDir, spinner);
41
+ break;
42
+ }
24
43
  }
25
- spinner.text = 'Installing Go dependencies...';
26
- await installGoDependencies(pluginDir, spinner);
27
44
  const srcDir = resolve(pluginDir, 'src');
28
45
  spinner.text = 'Running tests...';
29
46
  try {
30
- const { failed } = await runGoTests(srcDir, spinner, false);
47
+ let failed = false;
48
+ switch (language) {
49
+ case 'go': {
50
+ const result = await runGoTests(srcDir, spinner, false);
51
+ failed = result.failed;
52
+ break;
53
+ }
54
+ case 'ts': {
55
+ const result = await runTsTests(pluginDir, spinner);
56
+ failed = result.failed;
57
+ break;
58
+ }
59
+ }
31
60
  // Calculate elapsed time
32
61
  const endTime = performance.now();
33
62
  const elapsedTimeMs = endTime - startTime;
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../../../../src/commands/router/commands/plugin/commands/test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ dockerfile: string;
3
+ cursorRules: string;
4
+ goMod: string;
5
+ mainGo: string;
6
+ mainTestGo: string;
7
+ readmePartialMd: string;
8
+ };
9
+ export default _default;