Skip to content

feat: Remove Connect-ES integration#104

Merged
connerohnesorge merged 12 commits intomainfrom
connect-es-rm
Oct 13, 2025
Merged

feat: Remove Connect-ES integration#104
connerohnesorge merged 12 commits intomainfrom
connect-es-rm

Conversation

@connerohnesorge
Copy link
Copy Markdown
Owner

Summary

Remove Connect-ES integration from Bufrnix codebase

  • Remove Connect-ES package reference from core library
  • Remove Connect-ES configuration options from schema
  • Remove Connect-ES integration from JavaScript language module
  • Remove Connect-ES language module implementation
  • Update examples to remove Connect-ES configurations
  • Update documentation to remove Connect-ES references
  • Update test scripts to remove Connect-ES references

Changes

  • Core Library: Removed Connect-ES package dependency
  • Configuration: Removed Connect-ES options from bufrnix-options.nix
  • JavaScript Module: Removed Connect-ES plugin support
  • Examples: Updated 4 example configurations
  • Documentation: Removed Connect-ES references from README and JS docs
  • Tests: Updated test script references

Total: 11 files changed, 360 deletions, 26 insertions

This commit comprehensively removes all references to Connect-ES from the main README.md file as part of the Connect-ES plugin removal initiative. The changes include:

- Updated the feature comparison table to remove 'Connect' from the 'Rich Plugin Ecosystem' row, changing from 'gRPC, Connect, gRPC-Web, gRPC-Gateway, Twirp, and validation' to 'gRPC, gRPC-Web, gRPC-Gateway, Twirp, and validation'

- Removed the Connect protocol configuration example from the multi-language code generation section, specifically removing the 'connect.enable = true; # Modern Connect protocol' line from the Go language configuration

- Removed the Connect-ES configuration example from the JavaScript language section, eliminating the entire 'connect' configuration block that included enable flag, target, and import_extension options

- Updated the language support table to remove 'Connect' from both Go and JavaScript/TypeScript feature lists, and removed 'Connect' from the Kotlin description

- Modified the JavaScript example description to change from 'Connect-ES and gRPC-Web clients' to 'gRPC-Web and Twirp clients'

- Updated the plugin-specific configuration documentation to change the example from 'connect.enable' to 'validate.enable'

- Removed the Connect project acknowledgment from the credits section at the bottom of the README

These changes ensure the README accurately reflects the current state of the project after the Connect-ES plugin removal, maintaining consistency across all documentation and examples.
This commit performs a comprehensive overhaul of the JavaScript language documentation to remove all Connect-ES references and examples following the plugin's removal from the codebase. The changes include:

Plugin Table Updates:
- Removed the 'protoc-gen-connect-es' row from the plugin comparison table
- Updated the 'protoc-gen-es' description to remove ES modules reference duplication

Configuration Examples:
- Removed the entire 'connect' configuration block from the basic JavaScript configuration example
- Updated the advanced multi-language example to remove 'connect.enable = true' from both JavaScript and Go configurations
- Removed 'connect.enable = true' from the security boundary example

Generated Code Usage Section:
- Completely removed the 'Connect-ES (Recommended)' tab containing the full Connect-ES client implementation example
- Removed the 'Node.js Server' tab that demonstrated Connect-ES server implementation
- Updated remaining tabs (gRPC-Web, Twirp) to maintain functionality without Connect-ES

Build Tools Integration:
- Removed '@connectrpc/connect' and '@connectrpc/connect-web' from package.json dependencies
- Removed these packages from Vite optimizeDeps configuration
- Updated the React component example to remove Connect-ES specific imports and client setup

Best Practices Section:
- Removed 'Use Connect-ES' as the primary recommendation
- Updated error handling and streaming recommendations to be framework-agnostic
- Changed 'Connect/gRPC' reference to generic 'RPC framework'

Troubleshooting Section:
- Replaced Connect-ES specific CORS configuration with generic RPC framework guidance
- Removed Connect transport examples and authentication patterns

These changes ensure the JavaScript documentation accurately reflects the available plugins and provides clear, framework-agnostic guidance for developers using gRPC-Web, Twirp, and other supported RPC frameworks.
This commit updates the js-annotations example flake.nix to remove Connect-ES plugin configuration and related documentation following the plugin's removal from the bufrnix codebase.

Specific changes made:
- Removed '✅ Connect-ES for type-safe RPC clients (gRPC + HTTP/REST)' from the key features list in the example description
- Removed '✅ Both protocol interfaces from the same .proto files' feature description
- Eliminated the explanatory paragraph about Connect-ES generating clients that can communicate via both gRPC and HTTP/REST using the same TypeScript interfaces

The example now focuses on Google API annotations and Protobuf-ES for modern TypeScript message generation, maintaining its core functionality of demonstrating REST endpoint annotations while removing the deprecated Connect-ES integration.
This commit updates the js-es-modules example flake.nix to remove the Connect-ES plugin configuration block and update the feature description following the plugin's removal from bufrnix.

Specific changes made:
- Removed the entire 'connect' configuration block that included:
  - enable = true;
  - generatePackageJson = true;
  - packageName = "@example/connect";
- Updated the features list in the example description to remove '✅ Connect-ES (modern RPC framework)' from the enabled features

The example now focuses on Protobuf-ES for default TypeScript generation and Protovalidate-ES for validation support, maintaining its demonstration of modern ES module generation without the deprecated Connect-ES RPC framework integration.
This commit updates the multi-output-example flake.nix to remove the Connect-ES plugin enable flag from the JavaScript language configuration.

Specific change made:
- Removed 'connect.enable = true;' from the JavaScript language configuration block within the multi-output example

This change maintains the example's focus on demonstrating multiple output paths for different languages (JavaScript and Python) while removing the deprecated Connect-ES plugin integration. The example continues to showcase advanced bufrnix configuration patterns without the removed RPC framework.
This commit updates the ts-flake-parts example flake.nix to remove Connect-ES plugin references and update the feature descriptions following the plugin's removal from bufrnix.

Specific changes made:
- Removed the commented-out Connect-ES configuration block that included:
  - enable = true;
  - generatePackageJson = true;
  - packageName = "@example/connect-ts";
- Removed '• Connect-ES for modern RPC' from the demonstration points in the example description
- Removed '✅ Connect-ES (modern RPC framework)' from the features enabled list

The example now focuses on demonstrating flake-parts integration with bufrnix, TypeScript protobuf generation with Protobuf-ES, and Protovalidate-ES for validation, maintaining its educational value about advanced Nix configuration patterns without the deprecated Connect-ES integration.
This commit completely removes the src/languages/js/connect.nix file, which contained the entire Connect-ES plugin implementation for the JavaScript/TypeScript language module in bufrnix.

The deleted file included:
- Runtime dependency specification for protoc-gen-es (with Connect support)
- Protoc plugin configuration for Connect-ES code generation
- Initialization hooks for Connect-ES service generation
- Code generation hooks including package.json generation with Connect dependencies
- Configuration options for package naming and JSON generation

This removal is part of the broader Connect-ES plugin deprecation, where Connect functionality has been integrated directly into protoc-gen-es v2. The file is no longer needed as Connect-ES generation is now handled natively by the ES modules plugin rather than as a separate module.

This change eliminates approximately 59 lines of Nix code and simplifies the JavaScript language module architecture by removing the separate Connect-ES module import and integration.
This commit updates src/languages/js/default.nix to completely remove Connect-ES module integration and references following the plugin's removal from bufrnix.

Specific changes made:

Module Import Removal:
- Removed the 'connectModule' import that loaded ./connect.nix
- Eliminated the connectModule instantiation that passed configuration

Module Composition Updates:
- Removed 'connectModule' from the list of modules merged in both runtimeInputs and protocPlugins sections
- Updated the module composition to exclude the Connect-ES functionality

ES Plugin Configuration:
- Removed the Connect-ES plugin option 'plugin=@connectrpc/protoc-gen-connect-es' from the esOptions concatenation
- Simplified the ES options to only include target and import_extension without Connect plugin reference

This refactoring maintains the JavaScript language module's functionality for ES modules, gRPC-Web, Twirp, Protovalidate, and ts-proto while cleanly removing all Connect-ES integration. The module now has a simpler architecture with one less plugin to manage, and Connect functionality (if needed) would be handled through the ES module plugin directly.
…schema

This commit removes the entire Connect-ES configuration section from src/lib/bufrnix-options.nix, eliminating all Connect-ES related options from the bufrnix configuration schema.

The removed configuration options included:
- 'enable' boolean option for toggling Connect-ES code generation
- 'package' option for specifying custom protoc-gen-connect-es package (with deprecation note)
- 'options' list for passing custom options to protoc-gen-connect-es
- 'generatePackageJson' boolean for automatic package.json generation
- 'packageName' string for specifying the generated package name

This removal affects the JavaScript language configuration section and ensures that users can no longer configure Connect-ES through the bufrnix options system. The configuration schema now accurately reflects the available plugins without the deprecated Connect-ES integration.

The change also updates the header comment to remove 'Connect-ES' from the JavaScript/TypeScript feature list, maintaining documentation accuracy.
…rary

This commit updates src/lib/mkBufrnix.nix to remove the Connect-ES package reference from the default package configuration following the plugin's removal from bufrnix.

Specific change made:
- Removed the line 'connect.package = pkgs.protoc-gen-connect-es;' from the JavaScript language package configuration
- Added a comment indicating that Connect functionality is now integrated into protoc-gen-es v2

This change ensures that the mkBufrnix library no longer attempts to provide or reference the deprecated protoc-gen-connect-es package. Users will need to rely on the ES modules plugin for any Connect-related functionality, which is now handled natively by protoc-gen-es v2 rather than as a separate package.

The modification maintains the structure of the package configuration while cleanly removing the obsolete Connect-ES dependency.
…ration

This commit updates the TODO comment in test-examples.sh for the js-es-modules example to reflect the changes made during the Connect-ES plugin removal.

Specific change made:
- Updated the comment from 'TODO: Fix JavaScript ES modules example (has Connect-ES plugin issues)' to 'TODO: Fix JavaScript ES modules example (needs verification after Connect-ES integration)'

This change indicates that the example may need verification or fixes following the integration of Connect functionality into protoc-gen-es v2, rather than being disabled due to plugin issues. The comment acknowledges that the Connect-ES removal and integration changes may have affected the example's functionality and it should be tested and potentially updated to work with the new ES modules approach.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes Connect-ES integration from the Bufrnix codebase as Connect functionality has been integrated into protoc-gen-es v2.

  • Removed Connect-ES package dependencies and configuration options
  • Updated JavaScript language module to remove Connect-ES plugin support
  • Updated examples and documentation to remove Connect-ES references

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test-examples.sh Updated comment about JavaScript ES modules example
src/lib/mkBufrnix.nix Removed Connect-ES package reference with explanatory comment
src/lib/bufrnix-options.nix Removed Connect-ES configuration schema options
src/languages/js/default.nix Removed Connect module import and plugin integration
src/languages/js/connect.nix Deleted entire Connect-ES module implementation
examples/ts-flake-parts/flake.nix Removed Connect-ES configuration and references
examples/multi-output-example/flake.nix Removed Connect-ES enable flag
examples/js-es-modules/flake.nix Removed Connect-ES configuration block
examples/js-annotations/flake.nix Removed Connect-ES feature descriptions
doc/src/content/docs/reference/languages/javascript.mdx Removed Connect-ES documentation sections
README.md Removed Connect-ES references from feature lists

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread test-examples.sh Outdated
Comment on lines +528 to +536
// Use your preferred RPC framework (gRPC-Web, Twirp, etc.)
// This example shows the React component structure
export function UserList() {
const [users, setUsers] = useState<User[]>([]);
const [loading, setLoading] = useState(true);

useEffect(() => {
client
.listUsers({ pageSize: 20, pageToken: "" })
// Fetch users using your RPC client
fetchUsers()
Copy link

Copilot AI Oct 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code references fetchUsers() function that is not defined anywhere in the example. This will cause a compilation error. Either define the function or use a more generic comment like '// Replace with your actual RPC call'.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated no new comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@connerohnesorge connerohnesorge merged commit 25f3fb5 into main Oct 13, 2025
4 checks passed
@connerohnesorge connerohnesorge deleted the connect-es-rm branch October 13, 2025 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants