open-index/open-npm huggingface dataset:
npm package: @paradoxepoch/web-audio-player
Description: A straightforward audio player for browsers
Author: Tristan Gauci
Latest version: 1.0.0

# :musical_note: web-audio-player

A HTMLAudioElement interface wrapper that adds a few convenience methods and jQuery-like event listener management.

## :hammer_and_wrench: Installation

```bash
npm install @paradoxepoch/web-audio-player
```

## :open_book: Initialisation

```javascript
// Import Library
import AudioPlayer from '@paradoxepoch/web-audio-player';

// Create a new audio instance (optionally accepts a source URL)
const audio = new AudioPlayer(src);
```

## :loud_sound: Playback Controls

```javascript
// Change audio source
audio.src = 'http://example.com/audio.mp3';

/**
* Set audio volume with a swing fade.
* - Accepts new volume (0-100), fade duration (ms) and an interval (ms).
* - Only the new volume param is required. Fade duration and interval are optional and default to 1500ms and 13ms respectively.
* - Returns a promise that resolves when the fade completes.
*/
audio.setVolume(newVolume, fadeMs, intervalMs);

// Play audio
audio.play();

// Pause audio
audio.pause();

// Stop audio (resets position to 0)
audio.stop();

// Toggle audio playback (between play & stop)
audio.toggle();

// Getter, returns bool of audio playback status
audio.isPlaying;

// Getter, return bool of whether audio will loop
audio.loop;

// Setter, sets whether audio will loop (bool)
audio.loop = true;
```

## :tada: Event Handling

```javascript
/**
* Adds an event listener to the AudioPlayer instance
* - Accepts any HTMLAudioElement event and a handler function.
* - Returns index of handler function in this._eventHandlers[event] array. Can be passed to this.off to remove the listener.
*/
audio.on(event, handlerFunction);

/**
* Removes all listeners associated with an event from the AudioPlayer instance,
* or optionally a specific listener if handlerIndex is specified
* - Accepts the event name and optionally the index of a specific listener to remove.
*   If no handlerIndex is provided, removes all listeners bound to the event.
*/
audio.off(event, handlerIndex);
```
npm package: @paradoxinfinite/convert-case
Description: A simple package to switch between multiple case standards effortlessly.
Author: Samarth Kulkarni
Latest version: 1.0.2

# convert-case [![Unit Tests](https://github.com/ParadoxInfinite/convert-case/actions/workflows/node.js.yml/badge.svg)](https://github.com/ParadoxInfinite/convert-case/actions/workflows/node.js.yml) [![GitHub version](https://badge.fury.io/gh/paradoxinfinite%2Fconvert-case.svg)](https://badge.fury.io/gh/paradoxinfinite%2Fconvert-case) [![npm version](https://badge.fury.io/js/%40paradoxinfinite%2Fconvert-case.svg)](https://badge.fury.io/js/%40paradoxinfinite%2Fconvert-case)
A simple package to switch between multiple case standards effortlessly.

Full docs available [here](https://paradoxinfinite.github.io/convert-case/).
######  Note: This is still under active development, keep an eye out for new features!

---

## Important note:

While using the object related functions, make sure your object is not polluted with mixed cases for keys.
Errors, other than validations, are no longer thrown but `console.error`ed. So, please be sure to check (error) logs before raising a bug on this.

---

## Installation and Usage:
1. Run the following to install the package
    ```sh
    npm install @paradoxinfinite/convert-case
    # OR
    npm i @paradoxinfinite/convert-case
    ```
2. Import the package as
    ```js
    const convertCase = require('@paradoxinfinite/convert-case');
    // OR
    import convertCase from '@paradoxinfinite/convert-case';
    ```
3. Use one of the functions after the import
    ```js
    const camelCaseString = convertCase.snakeToCamel('hello_world');
    console.log(camelCaseString);
    // Outputs: helloWorld
    ```

---

## Contributing:
1. **Test Cases:**
    I would really appreciate any help on writing test cases for this package. The more testing it gets, the better it will be.

2. **Bug fixes and feature development:**
    If you want to contribute to the code, feel free to raise a PR as long as it's a minor change. For a major change, please open an issue and discuss it out before you raise a PR or even get started with coding!

3. **Feature requests:**
    Feature requests will be great, raise an issue with the feature template to let me know what feature you would like added.

4. **Documentation:**
    Documentation and examples are also an amazing way to contribute, so if you notice any mistakes or want to add more content to the docs, you are more than welcome to!