open-index/open-npm huggingface dataset:
npm package: @jolylai/usehooks
Description: React usehooks
Author: jolylai
Latest version: 0.0.1

# usehooks

> React usehooks

[![NPM](https://img.shields.io/npm/v/usehooks.svg)](https://www.npmjs.com/package/usehooks) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save usehooks
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from 'usehooks'

class Example extends Component {
  render () {
    return (
      <MyComponent />
    )
  }
}
```

## License

MIT © [jolylai](https://github.com/jolylai)
npm package: @jolzee/cache
Description: Key Value data store in either Redis or in-memory
Author: Peter Joles
Latest version: 0.0.4

# cache

> Key Value data store with TTL in either Redis or in-memory

### Usage

```js
import Cache from "@jolzee/cache";

// for in-memory cache
const cache = new Cache({
    defaultTimeToLiveMin: 20
});

// for Redis backed cache
const cache = new Cache({
    redisHost: "redis-host"
    redisPort: 6379
    redisPassword: "your-password"
    defaultTimeToLiveMin: 20
});

//Redis alternative
const cache = new Cache({
    redisUrl: "redis://user:password@redis-service.com:6379/"
    defaultTimeToLiveMin: 20
});

cache.set("12345", "😁");
cache.get("12345").then(val => {
    console.log(val); // 😁
});

cache.del("12345");
cache.get("12345").then(val => {
    console.log(val); // null
});

cache.set("22222", "🚀", 5); // cache for 5 min not 20

// wait more than 5 min
cache.get("22222").then(val => {
    console.log(val); // null
});
```

### Installation

Install via [yarn](https://github.com/yarnpkg/yarn)

    yarn add @jolzee/cache

or npm

    npm install @jolzee/cache

### configuration

You can pass in extra options as a configuration object (➕ required, ➖ optional, ✏️ default).

Redis - `all required`

```js
{
  redisHost: "redis-host";
  redisPort: 6379;
  redisPassword: "your-password";
  defaultTimeToLiveMin: 20;
}
```

In Memory - `all required`

```js
{
  defaultTimeToLiveMin: 20;
}
```

### Builds

`cache` is compiled as a collection of [CommonJS](http://www.commonjs.org/specs/modules/1.0/) modules & [ES2015 modules](https://2ality.com/2014/09/es6-modules-final.html) for bundlers that support the `jsnext:main` or `module` field in package.json (Rollup, Webpack 2)

### License

The code is available under the [MIT](LICENSE) license.

### Contributing

We are open to contributions, see [CONTRIBUTING.md](CONTRIBUTING.md) for more info.

### Misc

This module was created using [generator-jolzee-node-module](https://github.com/jolzee/generator-jolzee-node-module).
npm package: @jolzee/hatch
Description: Creates Dokku Apps from Docker Compose files
Author: Peter Joles @jolzee
Latest version: 0.0.3

# hatch

Creates Dokku Apps from Docker Compose files

WIP - Don't use yet

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/hatch.svg)](https://npmjs.org/package/hatch)
[![Downloads/week](https://img.shields.io/npm/dw/hatch.svg)](https://npmjs.org/package/hatch)
[![License](https://img.shields.io/npm/l/hatch.svg)](https://github.com/jolzee/hatch/blob/master/package.json)

<!-- toc -->
* [hatch](#hatch)
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->

# Usage

<!-- usage -->
```sh-session
$ npm install -g @jolzee/hatch
$ hatch COMMAND
running command...
$ hatch (-v|--version|version)
@jolzee/hatch/0.0.3 win32-x64 node-v13.9.0
$ hatch --help [COMMAND]
USAGE
  $ hatch COMMAND
...
```
<!-- usagestop -->

# Commands

<!-- commands -->
* [`hatch add-app [FILE]`](#hatch-add-app-file)
* [`hatch help [COMMAND]`](#hatch-help-command)

## `hatch add-app [FILE]`

Creates a running Dokku app from a docker-compose file

```
USAGE
  $ hatch add-app [FILE]

OPTIONS
  -h, --help                     show CLI help
  -i, --image=image              Dockker Image Name
  -m, --networkMode=networkMode  Network Mode (host)
  -n, --name=name                App Name
  -p, --port=port                Port number to map to Nginx port 80
  -u, --update                   Update Existing Dokku Image

ALIASES
  $ hatch app:create
  $ hatch app:add

EXAMPLE
  $ hatch app:create
  -n My App -i HelloWorld -p 8080
```

_See code: [src\commands\add-app.ts](https://github.com/jolzee/hatch/blob/v0.0.3/src\commands\add-app.ts)_

## `hatch help [COMMAND]`

display help for hatch

```
USAGE
  $ hatch help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.3/src\commands\help.ts)_
<!-- commandsstop -->
npm package: @jomafilms/browser-comments-mcp
Description: MCP server for browser-comments — pull feedback tickets into Claude Code and other AI agents
Latest version: 0.1.2

# @jomafilms/browser-comments-mcp

MCP server for [browser-comments](https://github.com/jomafilms/browser-comments) — pull feedback tickets into Claude Code and other AI agents.

## Setup (recommended: global config + per-project tokens)

Add once to your global Claude Code config (`~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "browser-comments": {
      "command": "npx",
      "args": ["-y", "@jomafilms/browser-comments-mcp"]
    }
  }
}
```

Then in each project where you want to use it, add a `.env.local` file:

```
BROWSER_COMMENTS_TOKEN=your_project_token
BROWSER_COMMENTS_API=https://your-instance.vercel.app
```

The MCP server automatically reads `.env.local` from the project Claude Code is running in. Each project gets its own scoped token without touching your global config.

## Alternative: per-project MCP config

If you prefer, you can pass env vars directly in `.claude/settings.json` (overrides `.env.local`):

```json
{
  "mcpServers": {
    "browser-comments": {
      "command": "npx",
      "args": ["-y", "@jomafilms/browser-comments-mcp"],
      "env": {
        "BROWSER_COMMENTS_TOKEN": "your_project_token",
        "BROWSER_COMMENTS_API": "https://your-instance.vercel.app"
      }
    }
  }
}
```

## Environment variables

| Variable | Required | Description |
|----------|----------|-------------|
| `BROWSER_COMMENTS_TOKEN` | yes | Client or project token from your browser-comments admin |
| `BROWSER_COMMENTS_API` | yes | Base URL of your browser-comments instance |

**Resolution order:** MCP config `env` → `.env.local` in project root → error.

Project tokens scope access to a single project. Client tokens grant access to all projects under a client.

## Tools

| Tool | Description |
|------|-------------|
| `list_tickets` | List tickets with filters (status, priority, assignee, section). Supports `include_images`. |
| `show_ticket` | Show a single ticket by display number. Includes annotated screenshot by default. |
| `resolve_ticket` | Mark a ticket as resolved, optionally with a note. |
| `reopen_ticket` | Reopen a previously resolved ticket. |
| `assign_ticket` | Assign a ticket to a team member. |

## License

MIT
npm package: @jomaxx/create-loader
Description: Data Fetching for React Suspense
Author: Jo Maxx Blake
Latest version: 0.2.0

# create-loader

Data Fetching for React Suspense

## Install

```bash
# npm
npm install --save @jomaxx/create-loader react
```

```bash
# yarn
yarn add @jomaxx/create-loader react
```

## Usage

https://codesandbox.io/s/wispy-architecture-c7f4w

```jsx
import React from "react";
import ReactDOM from "react-dom";
import { createLoader } from "@jomaxx/create-loader";

const [LoadUser, useUser] = createLoader(
  // fetch json from api
  ({ id }) => fetch(`/api/users/${id}`).then(response => response.json()),
  // reload when id changes
  ({ id }) => [id]
);

function Greetings() {
  const user = useUser(); // gets user from context
  return <h1>Hello {user.name}!</h1>;
}

function App() {
  return (
    // shows fallback while user is loading
    <React.Suspense fallback={<h1>Loading...</h1>}>
      <LoadUser id={2}>
        <Greetings />
      </LoadUser>
    </React.Suspense>
  );
}

ReactDOM.render(<App />, document.getElementById("root"));
```
npm package: @jomaxx/jest-polly
Description: An opinionated integration between Jest and Polly.js.
Author: Jo Maxx Blake
Latest version: 2.1.0

# @jomaxx/jest-polly

An opinionated integration between [Jest](https://jestjs.io/) and [Polly.js](https://netflix.github.io/pollyjs).

## Usage

### Install

```bash
yarn add --dev jest @jomaxx/jest-polly
# or with NPM
npm install --save-dev jest @jomaxx/jest-polly
```

### Use in all tests

In your `package.json`

```json
{
  "jest": {
    "setupFilesAfterEnv": ["@jomaxx/jest-polly"]
  }
}
```

Or in `jest.config.js`

```js
module.exports = {
  setupFilesAfterEnv: ['@jomaxx/jest-polly'],
};
```

### Use in a single test

In `my.test.js`

```js
import '@jomaxx/jest-polly';
import fetch from 'node-fetch';

test('is ok', async () => {
  const response = await fetch('https://www.google.com/', { method: 'HEAD' });
  expect(response.ok).toBe(true);
});
```

### Using the polly instance

Use the `polly` instance to change default behavior. Read [docs](https://netflix.github.io/pollyjs/#/api).

```js
import { polly } from '@jomaxx/jest-polly';
import fetch from 'node-fetch';

polly.server
  .any('https://www.google.com/')
  .intercept((req, res) => res.sendStatus(500));

test('is not ok', async () => {
  const response = await fetch('https://www.google.com/', { method: 'HEAD' });
  expect(response.ok).not.toBe(true);
});
```
npm package: @jomaxx/react-scripts
Description: Configuration and scripts for Create React App.
Latest version: 2.1.2-patch-webpack-dev-server

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
Please refer to its documentation:

- [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
- [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.