Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the Fishjam JS/TS server SDK and its generated OpenAPI client from an axios-based transport to a fetch-based transport, updating client wiring, error mapping, and codegen automation accordingly.
Changes:
- Regenerated
@fishjam-cloud/fishjam-openapiusingtypescript-fetch(new runtime/apis/models layout) and removed the axios dependency. - Updated
FishjamClientto use the fetch-based OpenAPIConfiguration+ middleware and adjusted request/response handling to the new generated API shapes. - Refactored exception mapping to handle
ResponseError/FetchErrorand added/updated Vitest coverage for the new behavior.
Reviewed changes
Copilot reviewed 10 out of 75 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Removes axios from workspace dependency graph entries. |
| release-automation/bump-version.sh | Switches OpenAPI generation step to call openapi.sh with a downloaded spec file. |
| packages/js-server-sdk/package.json | Drops axios dependency and declares Node >=18 engine requirement. |
| packages/js-server-sdk/src/client.ts | Migrates SDK client from axios instance wiring to fetch-based OpenAPI Configuration + middleware. |
| packages/js-server-sdk/src/exceptions/index.ts | Replaces axios-error-based exception construction with a transport-agnostic FishjamExceptionInfo. |
| packages/js-server-sdk/src/exceptions/mapper.ts | Updates error mapping to support fetch-generated ResponseError/FetchError types. |
| packages/js-server-sdk/tests/config-validation.test.ts | Updates mocks to use ResponseError and fetch-style return values. |
| packages/js-server-sdk/tests/exceptions.test.ts | Adds test coverage for new fetch-based exception mapping behavior. |
| packages/fishjam-openapi/package.json | Removes axios dependency from the OpenAPI workspace package. |
| packages/fishjam-openapi/openapitools.json | Updates OpenAPI Generator CLI version to 7.14.0. |
| packages/fishjam-openapi/openapi.sh | Switches generator from typescript-axios to typescript-fetch and supports local spec paths. |
| packages/fishjam-openapi/src/generated/.openapi-generator/VERSION | Updates recorded generator version. |
| packages/fishjam-openapi/src/generated/.openapi-generator/FILES | Updates generated file manifest for the new fetch client layout. |
| packages/fishjam-openapi/src/generated/index.ts | Changes public exports to re-export fetch runtime, apis, and models. |
| packages/fishjam-openapi/src/generated/runtime.ts | Adds fetch-based runtime (middleware, ResponseError/FetchError, request plumbing). |
| packages/fishjam-openapi/src/generated/apis/CredentialsApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/MoQApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/RoomsApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/StreamersApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/StreamsApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/TrackForwardingsApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/ViewersApi.ts | New fetch-based generated API. |
| packages/fishjam-openapi/src/generated/apis/index.ts | Barrel export for generated APIs. |
| packages/fishjam-openapi/src/generated/models/AgentOutput.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/AudioFormat.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/AudioSampleRate.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/CompositionInfo.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/ModelError.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/MoqAccess.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/MoqAccessConfig.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Peer.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerConfig.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerDetailsResponseData.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerOptions.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerOptionsAgent.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerOptionsVapi.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerOptionsWebRTC.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerRefreshTokenResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerRefreshTokenResponseData.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerStatus.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/PeerType.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Room.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomConfig.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomCreateDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomCreateDetailsResponseData.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomType.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/RoomsListingResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Stream.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/StreamConfig.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/StreamDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Streamer.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/StreamerDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/StreamerToken.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/StreamsListingResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/SubscribeMode.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/SubscribeTracksRequest.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Subscriptions.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Track.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/TrackForwarding.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/TrackForwardingInfo.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/TrackType.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/VideoCodec.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/Viewer.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/ViewerDetailsResponse.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/ViewerToken.ts | New/updated generated model types. |
| packages/fishjam-openapi/src/generated/models/index.ts | Barrel export for generated models. |
| packages/fishjam-openapi/src/generated/base.ts | Removes legacy axios-based generator runtime file. |
| packages/fishjam-openapi/src/generated/common.ts | Removes legacy axios-based generator runtime file. |
| packages/fishjam-openapi/src/generated/configuration.ts | Removes legacy axios-based generator configuration file. |
| packages/fishjam-openapi/src/generated/git_push.sh | Removes unused generator helper script. |
| packages/fishjam-openapi/src/generated/.gitignore | Removes legacy generated .gitignore. |
| packages/fishjam-openapi/src/generated/.npmignore | Removes legacy generated .npmignore. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…field, tag-compatible spec URL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Describe your changes.
Motivation and Context
Why is this change required? What problem does it solve? If it fixes an open
issue, please link to the issue here.
Documentation impact
Types of changes
not work as expected)