open-index/open-npm huggingface dataset:
npm package: @khalidalansi/use-interval
Description: A custom React Hook to help you implement a "interval" method.
Author: khalidalansi
Latest version: 1.0.3

# use-interval

[![NPM](https://img.shields.io/npm/v/@khalidalansi/use-interval.svg)](https://www.npmjs.com/package/@khalidalansi/use-interval) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)  [![npm](https://img.shields.io/npm/dm/localeval.svg)]()
## Install

```bash
npm install --save @khalidalansi/use-interval
```

```bash
yarn add @khalidalansi/use-interval
```

## Usage

```tsx
import * as React from 'react'
import useInterval from '@khalidalansi/use-interval'

const Example = () => {
  let [count, setCount] = React.useState(0);

  useInterval(() => {
    // Your custom logic here
    setCount(count + 1);
  }, 1000); // passing null instead of 1000 will cancel the interval if it is already running

  return <h1>{count}</h1>;
}
```

```tsx
// TypeScript Declaration
useInterval(
  callback: () => void,
  delay: number,
  immediate?: boolean /* called when mounted if true */
)
```
### Pausing and Reseting the counter example

```tsx
import * as React from 'react'
import useInterval from '@khalidalansi/use-interval'

const App = () => {
  const [delay] = useState(1000);
  const [count, setCount] = useState(0);
  const [isRunning, setIsRunning] = useState(true);

  useInterval(
    () => {
      setCount(count + 1);
    },
    isRunning ? delay : null
  );

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={() => setCount(0)}>Reset</button>
      <button onClick={() => setIsRunning(!isRunning)}>
        {isRunning ? "Stop" : "Start"}
      </button>
    </div>
  );
};
```
## License

MIT

---
npm package: @khalidashaibani/adonis-vite
Description: AdonisJS ships with webpack encore to manage your frontend assets. This package provides a way to use Vite instead.
Latest version: 0.3.4

# Adonis Vite

AdonisJS ships with webpack encore to manage your frontend assets. This package provides a way to use Vite instead.

_Note: the API may change between minor versions until we reach 1.0._

## Installation and usage

If you are creating a new project, choose **false** or **N** when you are asked if you want to configure webpack encore for compiling frontend assets.

If you are integrating this package in an existing project, you can remove webpack.config.js and any webpack related packages you may have in your project's dependencies.

#### Install using your package manager:

```sh
npm install --save @khalidashaibani/adonis-vite
# or
yarn add @khalidashaibani/adonis-vite
```

#### Please note that you need to install Vite separately.

```sh
npm install --save-dev vite
# or
yarn add -D vite
```

#### Add the Vite provider to `.adonisrc.json`

```sh
node ace configure @khalidashaibani/adonis-vite
```

#### Create a `vite.config.ts`

You can start with the following. Feel free to customise it to your needs. You don't need react plugin if you aren't using react.

```ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import adonis from '@khalidashaibani/adonis-vite/build/plugins/adonis'

export default defineConfig({
	plugins: [
		react({ jsxRuntime: 'classic' }),
		adonis({ input: 'resources/frontend/entrypoints/app.tsx' }),
	],
})
```

#### Add edge tags in layout

Add the `@vite` edge tag in your edge layout's head. You don't need `@viteReactRefresh` if you aren't using react.

```edge
@viteReactRefresh()
@vite('resources/frontend/entrypoints/app.tsx')
```

#### Add to .gitignore

```
public/hot
public/assets
public/manifest.json
```

Add the following scripts in package.json:

```json
{
	"scripts": {
		"vite:dev": "npm run vite",
		"vite:build": "npm run vite build"
	}
}
```

Run these along with the default `dev` and `build` scripts.
npm package: @khalidsaidi/rootfetch-mcp
Description: Local stdio MCP bridge for RootFetch immutable artifact tools.
Latest version: 0.1.0

# RootFetch MCP (Local)

Local stdio MCP bridge for RootFetch immutable artifact tools.

This package is for MCP hosts that prefer a local stdio process while still using the canonical hosted RootFetch MCP endpoint.

## Quick start

```bash
npx -y @khalidsaidi/rootfetch-mcp@latest rootfetch-mcp
```

Default remote endpoint:

- `https://rootfetch.com/mcp`

Override:

```bash
ROOTFETCH_MCP_URL=https://rootfetch.com/mcp npx -y @khalidsaidi/rootfetch-mcp@latest rootfetch-mcp
```

## Claude Desktop config

```json
{
  "mcpServers": {
    "rootfetch": {
      "command": "npx",
      "args": ["-y", "@khalidsaidi/rootfetch-mcp@latest", "rootfetch-mcp"],
      "env": {
        "ROOTFETCH_MCP_URL": "https://rootfetch.com/mcp"
      }
    }
  }
}
```

## Remote MCP (no install)

```bash
claude mcp add --transport http rootfetch https://rootfetch.com/mcp
```

## Tools

- `rootfetch.latest`
- `rootfetch.replay_index`
- `rootfetch.run_manifest`
- `rootfetch.run_bundle`
- `rootfetch.compare_link`

## Environment variables

| Variable | Required | Description |
|---|---|---|
| `ROOTFETCH_MCP_URL` | No | Remote MCP endpoint (default: `https://rootfetch.com/mcp`) |
| `ROOTFETCH_MCP_TIMEOUT_MS` | No | HTTP timeout for forwarded calls (default: `30000`) |

## Links

- MCP docs: `https://rootfetch.com/docs/mcp`
- Public endpoints: `https://rootfetch.com/mcp`, `/mcp/health`, `/mcp/readyz`
- AIR: `https://rootfetch.com/.well-known/air.json`
npm package: @khalidsaidi/skillrunner
Description: Local-first CLI to discover, install, plan, and safely run reusable engineering skills.
Latest version: 0.1.3

# SkillRunner CLI

State-of-the-art npm CLI for discoverable, safe, reusable engineering skills.

Install:

```bash
npm i -g @khalidsaidi/skillrunner
```

Quickstart:

```bash
skill doctor
skill search lint
skill install run-lint
skill plan run-lint
skill run run-lint
skill logs --last
```

## Why use it

- Curated catalog with `default`, `advanced`, and `conditional` skill lanes
- Safety controls: plan preview, preflight checks, and script guardrails
- Local-first execution with run artifacts and logs
- Continuous quality checks via CI and nightly template matrix runs

## Current catalog snapshot

- 73 total skills
- 14 automation skills
- 59 knowledge skills
- 25 default-enabled skills
- 48 advanced skills
- 3 packs
- Source mix: 25 native SkillRunner + 32 OpenAI upstream + 16 Anthropic upstream

## Core commands

- `skill doctor`
- `skill search <query>`
- `skill info <name>`
- `skill install <name>`
- `skill uninstall <name>`
- `skill plan <name>`
- `skill run <name>`
- `skill logs --last`
- `skill list`

Full docs and maintainer notes: <https://github.com/khalidsaidi/skillrunner>
npm package: @khalidsaidi/topoloom
Description: Topology-first graph drawing kernel: embeddings, dual routing, decompositions, and coordinate pipelines.
Latest version: 0.2.7

<div align="center">

# TopoLoom

**Topology-first graph drawing kernel for JavaScript.**  
Embeddings, dual routing, decompositions, and coordinate pipelines — built for deterministic, testable layouts.

**Live Showcase:** https://topoloom.web.app/ • **API Docs:** https://topoloom.web.app/api/ • **GitHub:** https://github.com/khalidsaidi/topoloom

<img src="https://raw.githubusercontent.com/khalidsaidi/topoloom/v0.2.7/docs/screenshots/npm/hero.png" alt="TopoLoom showcase" width="100%" />

</div>

---

## What it is

TopoLoom is a **modular algorithmic kernel** for coordinate-based graph drawing.

It gives you **explicit topology artifacts** (embeddings, faces, decompositions, dual routes) and **coordinate-ready constraints**, so you can build:
- planar straight-line drawings
- orthogonal layouts
- planarization-based layouts for nonplanar graphs

No renderer lock-in: use SVG/Canvas/WebGL/React Flow/D3 — your choice.

---

## Install

```bash
npm i @khalidsaidi/topoloom
```

---

## What you can expect (visual)

<p>
  <img src="https://raw.githubusercontent.com/khalidsaidi/topoloom/v0.2.7/docs/screenshots/npm/planarity.png" alt="Planarity + embedding" width="49%" />
  <img src="https://raw.githubusercontent.com/khalidsaidi/topoloom/v0.2.7/docs/screenshots/npm/dual.png" alt="Dual routing" width="49%" />
</p>
<p>
  <img src="https://raw.githubusercontent.com/khalidsaidi/topoloom/v0.2.7/docs/screenshots/npm/orthogonal.png" alt="Orthogonal layout" width="49%" />
  <img src="https://raw.githubusercontent.com/khalidsaidi/topoloom/v0.2.7/docs/screenshots/npm/planarization.png" alt="Planarization pipeline" width="49%" />
</p>

---

## Core capabilities

- **Planarity + embedding output** (rotation systems + operational half-edge navigation)
- **BC / SPQR decomposition** primitives for structure + embedding decisions
- **st-numbering + bipolar orientation** building blocks
- **Dual graph construction + shortest paths in dual** for fixed-embedding edge insertion
- **Min-cost flow interface** for orthogonal / optimization reductions
- **Deterministic, testable invariants** (kernel modules are unit-tested)

---

## Links

- Showcase: https://topoloom.web.app/
- API docs: https://topoloom.web.app/api/
- Health: https://topoloom.web.app/healthz.json
- Issues: https://github.com/khalidsaidi/topoloom/issues

---

## Status

TopoLoom is **0.x** (fast iteration).  
Some pipelines have constraints (e.g., undirected planar inputs only). The live showcase is the source of truth for what’s currently supported.

---

## License

MIT
npm package: @khalidsheet/cacheable
Description: A simple in-memory caching solution for Node.js, with a flexible design where you can define your own cache policies.
Author: Khalid Sheet
Latest version: 0.5.1

# Cacheable

[![Codacy Badge](https://app.codacy.com/project/badge/Grade/6d6e48f35e694caab7e7e73691d22673)](https://app.codacy.com/gh/khalidsheet/cacheable/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
A simple in-memory caching solution for Node.js, with a flexible design where you can define your own cache policies

## Documentation

Please check out the following URL for full documentation.
[https://khalidmsheet.gitbook.io/cacheable](https://khalidmsheet.gitbook.io/cacheable)