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.
- package/dist/package.json +4 -1
- package/dist/src/commands/grpc-service/commands/generate.js +6 -1
- package/dist/src/commands/grpc-service/commands/generate.js.map +1 -1
- package/dist/src/commands/router/commands/compose.js +6 -5
- package/dist/src/commands/router/commands/compose.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/commands/build.js +44 -19
- package/dist/src/commands/router/commands/plugin/commands/build.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/commands/generate.js +32 -10
- package/dist/src/commands/router/commands/plugin/commands/generate.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/commands/init.js +79 -48
- package/dist/src/commands/router/commands/plugin/commands/init.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/commands/test.js +36 -7
- package/dist/src/commands/router/commands/plugin/commands/test.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/templates/go.d.ts +9 -0
- package/dist/src/commands/router/commands/plugin/templates/go.js +18 -0
- package/dist/src/commands/router/commands/plugin/templates/go.js.map +1 -0
- package/dist/src/commands/router/commands/plugin/templates/plugin.d.ts +3 -8
- package/dist/src/commands/router/commands/plugin/templates/plugin.js +11 -424
- package/dist/src/commands/router/commands/plugin/templates/plugin.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/templates/project.d.ts +5 -5
- package/dist/src/commands/router/commands/plugin/templates/project.js +14 -200
- package/dist/src/commands/router/commands/plugin/templates/project.js.map +1 -1
- package/dist/src/commands/router/commands/plugin/templates/typescript.d.ts +14 -0
- package/dist/src/commands/router/commands/plugin/templates/typescript.js +28 -0
- package/dist/src/commands/router/commands/plugin/templates/typescript.js.map +1 -0
- package/dist/src/commands/router/commands/plugin/toolchain.d.ts +25 -6
- package/dist/src/commands/router/commands/plugin/toolchain.js +334 -78
- package/dist/src/commands/router/commands/plugin/toolchain.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -5
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wgc",
|
|
3
|
-
"version": "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":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,
|
|
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
|
|
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:
|
|
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 =
|
|
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 {
|
|
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'
|
|
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
|
|
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,
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,OAAO,MAAM,KAAK,CAAC;
|
|
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'
|
|
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
|
|
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,
|
|
47
|
+
await generateProtoAndMapping(pluginDir, protoOptions, spinner);
|
|
30
48
|
// Generate gRPC code
|
|
31
|
-
await generateGRPCCode(pluginDir, spinner);
|
|
32
|
-
|
|
33
|
-
|
|
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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,OAAO,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
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
|
-
|
|
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.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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.
|
|
82
|
-
await writeFile(resolve(projectDir, 'graph.yaml'), pupa(ProjectTemplates.
|
|
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.
|
|
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.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
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`;
|