wgc 0.81.1 → 0.82.1
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 +1 -1
- package/dist/src/commands/router/plugin/commands/init.js +2 -2
- package/dist/src/commands/router/plugin/commands/init.js.map +1 -1
- package/dist/src/commands/router/plugin/templates/plugin.js +39 -56
- package/dist/src/commands/router/plugin/templates/plugin.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/dist/package.json
CHANGED
|
@@ -77,7 +77,7 @@ export default (opts) => {
|
|
|
77
77
|
await writeFile(resolve(tempDir, '.cursorignore'), PluginTemplates.cursorIgnore);
|
|
78
78
|
// Create cursor rules in .cursor/rules
|
|
79
79
|
await mkdir(resolve(tempDir, '.cursor', 'rules'), { recursive: true });
|
|
80
|
-
await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName }));
|
|
80
|
+
await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName, pluginDir }));
|
|
81
81
|
// Create a project directory structure
|
|
82
82
|
await mkdir(projectDir, { recursive: true });
|
|
83
83
|
await mkdir(resolve(projectDir, 'plugins'), { recursive: true });
|
|
@@ -98,7 +98,7 @@ export default (opts) => {
|
|
|
98
98
|
await writeFile(resolve(generatedDir, 'mapping.json'), JSON.stringify(mapping, null, 2));
|
|
99
99
|
// Create cursor rules in .cursor/rules
|
|
100
100
|
await mkdir(resolve(tempDir, '.cursor', 'rules'), { recursive: true });
|
|
101
|
-
await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName }));
|
|
101
|
+
await writeFile(resolve(tempDir, '.cursor', 'rules', 'plugin-development.mdc'), pupa(PluginTemplates.cursorRules, { name, originalPluginName, pluginDir }));
|
|
102
102
|
const proto = compileGraphQLToProto(PluginTemplates.schema, {
|
|
103
103
|
serviceName,
|
|
104
104
|
packageName: 'service',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../src/commands/router/plugin/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../src/commands/router/plugin/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -243,21 +243,7 @@ The plugin demonstrates:
|
|
|
243
243
|
|
|
244
244
|
## Getting Started
|
|
245
245
|
|
|
246
|
-
Plugin
|
|
247
|
-
|
|
248
|
-
\`\`\`
|
|
249
|
-
plugins/{originalPluginName}/
|
|
250
|
-
├── Makefile # Automation scripts
|
|
251
|
-
├── go.mod # Go module file with dependencies
|
|
252
|
-
├── go.sum # Go checksums file
|
|
253
|
-
├── src/
|
|
254
|
-
│ ├── main.go # Main plugin implementation
|
|
255
|
-
│ ├── main_test.go # Tests for the plugin
|
|
256
|
-
│ └── schema.graphql # GraphQL schema defining the API
|
|
257
|
-
├── generated/ # Generated code (created during build)
|
|
258
|
-
└── bin/ # Compiled binaries (created during build)
|
|
259
|
-
└── plugin # The compiled plugin binary
|
|
260
|
-
\`\`\`
|
|
246
|
+
For plugin structure and detailed workflow see the [Plugin Development Guide] in the Cursor Rules tab.
|
|
261
247
|
|
|
262
248
|
## 🔧 Customizing Your Plugin
|
|
263
249
|
|
|
@@ -298,62 +284,57 @@ globs: src/**
|
|
|
298
284
|
alwaysApply: false
|
|
299
285
|
---
|
|
300
286
|
|
|
301
|
-
# {name} Plugin Guide
|
|
287
|
+
# {name} Plugin Development Guide
|
|
302
288
|
|
|
303
|
-
|
|
289
|
+
You are an expert in developing Cosmo Router plugins. You are given a GraphQL schema, and you need to implement the Go code for the plugin.
|
|
290
|
+
Your goal is to implement the plugin in a way that is easy to understand and maintain. You add tests to ensure the plugin works as expected.
|
|
291
|
+
|
|
292
|
+
All make commands need to be run from the plugin directory \`{pluginDir}\`.
|
|
304
293
|
|
|
305
294
|
## Plugin Structure
|
|
306
295
|
|
|
307
|
-
|
|
296
|
+
A plugin is structured as follows:
|
|
308
297
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
298
|
+
\`\`\`
|
|
299
|
+
plugins/{originalPluginName}/
|
|
300
|
+
├── Makefile # Build automation
|
|
301
|
+
├── go.mod # Go module definition
|
|
302
|
+
├── go.sum # Go module checksums
|
|
303
|
+
├── src/
|
|
304
|
+
│ ├── schema.graphql # GraphQL schema (API contract)
|
|
305
|
+
│ ├── main.go # Plugin implementation
|
|
306
|
+
│ └── main_test.go # Tests for the plugin
|
|
307
|
+
├── generated/ # Auto-generated files (DO NOT EDIT)
|
|
308
|
+
│ ├── service.proto # Generated Protocol Buffers
|
|
309
|
+
│ ├── service.pb.go # Generated Go structures
|
|
310
|
+
│ ├── service.proto.lock.json # Generated Protobuf lock file
|
|
311
|
+
│ └── service_grpc.pb.go # Generated gRPC service
|
|
312
|
+
└── bin/ # Compiled binaries
|
|
313
|
+
└── plugin # The compiled plugin binary
|
|
314
|
+
\`\`\`
|
|
312
315
|
|
|
313
316
|
## Development Workflow
|
|
314
317
|
|
|
315
|
-
1.
|
|
316
|
-
2.
|
|
317
|
-
3. Implement the
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
- Partial implementations will cause runtime errors
|
|
322
|
-
4. Update tests in @main_test.go:
|
|
323
|
-
- Add test cases for ALL new functionality
|
|
324
|
-
- Test both success and error scenarios
|
|
325
|
-
- Verify ALL edge cases
|
|
326
|
-
- Create different test files if it leads to more readable tests
|
|
327
|
-
5. Run \`make test\` to ensure complete test coverage
|
|
328
|
-
|
|
329
|
-
## Generated Code
|
|
330
|
-
|
|
331
|
-
The code generation creates:
|
|
332
|
-
|
|
333
|
-
- @generated/service.proto - The protobuf service definition
|
|
334
|
-
- @generated/service.pb.go - Go structures for requests/responses
|
|
335
|
-
- @generated/service_grpc.pb.go - The gRPC service interface
|
|
336
|
-
|
|
337
|
-
If the files doesn't exist, you need to generate them with \`make generate\`
|
|
338
|
-
|
|
339
|
-
**Important**: Never manipulate the @generated/ files yourself. The source of truth for the API contract is the GraphQL schema. Use \`make generate\` to update the proto and service interface.
|
|
318
|
+
1. When modifying the GraphQL schema in \`src/schema.graphql\`, you need to regenerate the code with \`make generate\`.
|
|
319
|
+
2. Look into the generated code in \`generated/service.proto\` and \`generated/service.pb.go\` to understand the updated API contract and service methods.
|
|
320
|
+
3. Implement the new RPC methods in \`src/main.go\`.
|
|
321
|
+
4. Add tests to \`src/main_test.go\` to ensure the plugin works as expected. You need to run \`make test\` to ensure the tests pass.
|
|
322
|
+
5. Finally, build the plugin with \`make build\` to ensure the plugin is working as expected.
|
|
323
|
+
6. Your job is done after successfully building the plugin. Don't verify if the binary was created. The build command will take care of that.
|
|
340
324
|
|
|
341
|
-
|
|
325
|
+
**Important**: Never manipulate the files inside \`generated\` directory yourself. Don't touch the \`service.proto\`, \`service.proto.lock.json\`, \`service.pb.go\` and \`service_grpc.pb.go\` files.
|
|
342
326
|
|
|
343
|
-
|
|
327
|
+
You can update the Go dependencies by running \`make test\` to ensure the dependencies are up to date. It runs \`go mod tidy\` under the hood.
|
|
344
328
|
|
|
345
|
-
|
|
346
|
-
2. Handle the context properly in your implementation methods
|
|
347
|
-
3. Ensure proper error handling and error messages
|
|
348
|
-
4. Follow Go conventions for naming and structuring your code
|
|
329
|
+
## Implementation Pattern
|
|
349
330
|
|
|
350
|
-
|
|
331
|
+
### Service Integration
|
|
351
332
|
|
|
352
333
|
If you need to integrate with other HTTP services, you should prefer to use the \`github.com/wundergraph/cosmo/router-plugin/httpclient\` package.
|
|
353
|
-
Always prefer a real integration over mocking. In the tests, you can mock the service by bootstrapping an http server that returns the expected response.
|
|
354
|
-
In tests, focus on a well-defined contract and the expected behavior of your service. Structure tests by endpoint, use-cases and use table-driven tests
|
|
334
|
+
Always prefer a real integration over mocking. In the tests, you can mock the external service by bootstrapping an http server that returns the expected response.
|
|
335
|
+
In tests, focus on a well-defined contract and the expected behavior of your service. Structure tests by endpoint, use-cases and use table-driven tests when possible.
|
|
355
336
|
|
|
356
|
-
|
|
337
|
+
Here is an example of how to use the \`httpclient\` package:
|
|
357
338
|
|
|
358
339
|
\`\`\`go
|
|
359
340
|
// Initialize HTTP client for external API calls
|
|
@@ -386,6 +367,8 @@ resp.IsSuccess()
|
|
|
386
367
|
const cursorIgnore = `# Ignore the mapping and lock files
|
|
387
368
|
generated/mapping.json
|
|
388
369
|
generated/service.proto.lock.json
|
|
370
|
+
# Ignore the proto to avoid interpretation issues
|
|
371
|
+
generated/service.proto
|
|
389
372
|
# Ignore the plugin binary
|
|
390
373
|
bin/
|
|
391
374
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../../src/commands/router/plugin/templates/plugin.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,+EAA+E;AAC/E,+CAA+C;AAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;CAahB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cd,CAAC;AAEF,MAAM,SAAS,GAAG;;CAEjB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJlB,CAAC;AAEF,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../../../src/commands/router/plugin/templates/plugin.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,+EAA+E;AAC/E,+CAA+C;AAE/C,MAAM,KAAK,GAAG;;;;;;;;;;;CAWb,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;CAahB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cd,CAAC;AAEF,MAAM,SAAS,GAAG;;CAEjB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJlB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAoCyE,CAAC;AAEzF,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;CAiBd,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFnB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAEF,eAAe;IACb,KAAK;IACL,MAAM;IACN,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,WAAW;IACX,YAAY;CACb,CAAC"}
|