Fixed AudioTimeout (hopefully); Refactored; Updated Dependencies; #17

Merged
FrauJulian merged 1 commits from fraujulian into master 2025-10-03 13:37:21 +00:00
FrauJulian commented 2025-10-03 13:35:21 +00:00 (Migrated from github.com)

This pull request introduces several improvements and refactors to the audio management codebase, focusing on method clarity, type import consolidation, dependency updates, and overall code simplification. The most notable changes include splitting the OverrideOptions method into more specific override methods, updating dependencies, and cleaning up resource disposal logic.

API and Method Refactoring

  • The OverrideOptions method in AudioManager has been replaced with three more explicit methods: OverrideVoiceConnectionData, OverrideVoiceAudioDataModel, and OverrideRenewInMs, improving clarity and granularity of configuration changes. [1] [2]
  • The README has been updated to reflect these new method names and their purposes, making the documentation more accurate and user-friendly.

Type and Import Consolidation

  • Type imports for VoiceConnectionDataModel and VoiceAudioDataModel have been consolidated into a single typings module, simplifying imports across the codebase (src/audioManager.ts, src/index.ts). [1] [2]

Dependency Updates

  • Several dependencies have been updated to their latest versions in package.json, including @discordjs/voice, @types/node, and development tools, ensuring compatibility and improved stability.

Resource Management Improvements

  • The Dispose method has been refactored to clear all resources and internal state variables more reliably, removing redundant checks and ensuring a clean reset.
  • The connection renewal logic has been inlined into the timeout callback, removing the now-unnecessary RenewConnectionAndAudio method for simplicity. [1] [2]

Documentation Formatting

  • Minor formatting improvements in the README, such as line breaks and clearer type reference links, enhance readability for users. [1] [2]
This pull request introduces several improvements and refactors to the audio management codebase, focusing on method clarity, type import consolidation, dependency updates, and overall code simplification. The most notable changes include splitting the `OverrideOptions` method into more specific override methods, updating dependencies, and cleaning up resource disposal logic. ### API and Method Refactoring * The `OverrideOptions` method in `AudioManager` has been replaced with three more explicit methods: `OverrideVoiceConnectionData`, `OverrideVoiceAudioDataModel`, and `OverrideRenewInMs`, improving clarity and granularity of configuration changes. [[1]](diffhunk://#diff-fc7085dbb85fe4c24ce7c0b7a8cd9b0f5870de69ff5d7bcd9154f4beccc7863aL33-R40) [[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L82-R86) * The README has been updated to reflect these new method names and their purposes, making the documentation more accurate and user-friendly. ### Type and Import Consolidation * Type imports for `VoiceConnectionDataModel` and `VoiceAudioDataModel` have been consolidated into a single `typings` module, simplifying imports across the codebase (`src/audioManager.ts`, `src/index.ts`). [[1]](diffhunk://#diff-fc7085dbb85fe4c24ce7c0b7a8cd9b0f5870de69ff5d7bcd9154f4beccc7863aL10-R18) [[2]](diffhunk://#diff-a2a171449d862fe29692ce031981047d7ab755ae7f84c707aef80701b3ea0c80L2-R2) ### Dependency Updates * Several dependencies have been updated to their latest versions in `package.json`, including `@discordjs/voice`, `@types/node`, and development tools, ensuring compatibility and improved stability. ### Resource Management Improvements * The `Dispose` method has been refactored to clear all resources and internal state variables more reliably, removing redundant checks and ensuring a clean reset. * The connection renewal logic has been inlined into the timeout callback, removing the now-unnecessary `RenewConnectionAndAudio` method for simplicity. [[1]](diffhunk://#diff-fc7085dbb85fe4c24ce7c0b7a8cd9b0f5870de69ff5d7bcd9154f4beccc7863aL57-R69) [[2]](diffhunk://#diff-fc7085dbb85fe4c24ce7c0b7a8cd9b0f5870de69ff5d7bcd9154f4beccc7863aR134-R156) ### Documentation Formatting * Minor formatting improvements in the README, such as line breaks and clearer type reference links, enhance readability for users. [[1]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L29-R30) [[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L97-R110)
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-10-03 13:36:17 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

This pull request refactors the audio management codebase with a focus on method clarity, type consolidation, dependency updates, and code simplification. The main goal is to improve API granularity and maintainability while addressing potential timeout issues.

  • Replaced single OverrideOptions method with three specific override methods for better API clarity
  • Consolidated type imports and updated dependencies to latest versions
  • Simplified resource disposal logic and inlined connection renewal for better maintainability

Reviewed Changes

Copilot reviewed 4 out of 7 changed files in this pull request and generated 3 comments.

File Description
src/index.ts Consolidated type exports into single import from typings module
src/audioManager.ts Split OverrideOptions into specific methods, simplified disposal logic, inlined renewal logic
package.json Updated dependencies and contributor information
README.md Updated documentation to reflect new API methods and improved formatting

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

## Pull Request Overview This pull request refactors the audio management codebase with a focus on method clarity, type consolidation, dependency updates, and code simplification. The main goal is to improve API granularity and maintainability while addressing potential timeout issues. - Replaced single `OverrideOptions` method with three specific override methods for better API clarity - Consolidated type imports and updated dependencies to latest versions - Simplified resource disposal logic and inlined connection renewal for better maintainability ### Reviewed Changes Copilot reviewed 4 out of 7 changed files in this pull request and generated 3 comments. | File | Description | | ---- | ----------- | | src/index.ts | Consolidated type exports into single import from typings module | | src/audioManager.ts | Split OverrideOptions into specific methods, simplified disposal logic, inlined renewal logic | | package.json | Updated dependencies and contributor information | | README.md | Updated documentation to reflect new API methods and improved formatting | --- <sub>**Tip:** Customize your code reviews with copilot-instructions.md. <a href="/FrauJulian/Discord-Audio-Stream/new/master/.github?filename=copilot-instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Create the file</a> or <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">learn how to get started</a>.</sub>
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-10-03 13:36:17 +00:00

[nitpick] The markdown formatting has been unnecessarily broken across multiple lines, making the documentation harder to read. The link text should be kept on single lines for better readability.

- [**VoiceConnection** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/VoiceConnection.ts#L166)
- [**AudioPlayer** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/audio/AudioPlayer.ts#L155)
- [**AudioResource** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/audio/AudioResource.ts#L44)
- [**VoiceConnectionDataModel**](https://github.com/FrauJulian/Discord-Audio-Stream/blob/main/src/Models/VoiceConnectionDataModel.d.ts#L3) (custom type)
- [**VoiceAudioDataModel**](https://github.com/FrauJulian/Discord-Audio-Stream/blob/main/src/Models/VoiceAudioDataModel.d.ts#L1) (custom type)
[nitpick] The markdown formatting has been unnecessarily broken across multiple lines, making the documentation harder to read. The link text should be kept on single lines for better readability. ```suggestion - [**VoiceConnection** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/VoiceConnection.ts#L166) - [**AudioPlayer** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/audio/AudioPlayer.ts#L155) - [**AudioResource** by discord.js/voice](https://github.com/discordjs/discord.js/blob/main/packages/voice/src/audio/AudioResource.ts#L44) - [**VoiceConnectionDataModel**](https://github.com/FrauJulian/Discord-Audio-Stream/blob/main/src/Models/VoiceConnectionDataModel.d.ts#L3) (custom type) - [**VoiceAudioDataModel**](https://github.com/FrauJulian/Discord-Audio-Stream/blob/main/src/Models/VoiceAudioDataModel.d.ts#L1) (custom type) ```
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-10-03 13:36:16 +00:00

The null check pattern is inconsistent with the non-null assertion. If CheckIfNull returns true (meaning the value is null), the method returns early, but line 125 still uses the non-null assertion operator which could cause issues if the check logic changes.

The null check pattern is inconsistent with the non-null assertion. If `CheckIfNull` returns true (meaning the value is null), the method returns early, but line 125 still uses the non-null assertion operator which could cause issues if the check logic changes.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2025-10-03 13:36:16 +00:00

The Dispose method doesn't clear the timeout before setting TimeoutHandle to undefined. This could leave active timeouts running even after disposal, potentially causing memory leaks or unexpected behavior.

The Dispose method doesn't clear the timeout before setting TimeoutHandle to undefined. This could leave active timeouts running even after disposal, potentially causing memory leaks or unexpected behavior.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: fraujulian/Discord-Audio-Stream#17