# @prefresh/rolldown

> A rolldown plugin to preserve Preact context identity during HMR.

Latest version **0.1.0** (published 2026-04-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install @prefresh/rolldown
pnpm add @prefresh/rolldown
yarn add @prefresh/rolldown
bun add @prefresh/rolldown
```

## Health

**Score 65/100 (B)** — status: stable.

Positive: has types; esm support; no vulnerabilities; has provenance; high quality score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2026-04-08 |
| First published | 2026-03-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 11.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Maintainers | jdecroock, marvinhagemeister, developit |
| Keywords | hmr, preact, prefresh, rolldown, rolldown-plugin, vite-plugin |

## Links

- npm: https://www.npmjs.com/package/@prefresh/rolldown
- Repository: https://github.com/preactjs/prefresh
- Homepage: https://github.com/preactjs/prefresh/tree/main/packages/rolldown#readme
- Issues: https://github.com/preactjs/prefresh/issues
- npm.io page: https://npm.io/package/@prefresh/rolldown

## Dependencies (2)

- [rolldown-string](https://npm.io/package/rolldown-string.md) ^0.3.0
- [oxc-unshadowed-visitor](https://npm.io/package/oxc-unshadowed-visitor.md) ^0.0.1

## Recent versions

- 0.1.0 (latest) — 2026-04-08
- 0.0.0 — 2026-03-31

## README

# @prefresh/rolldown

[![npm version](https://badgen.net/npm/v/@prefresh/rolldown)](https://www.npmjs.com/package/@prefresh/rolldown)

## Setup

```bash
pnpm add -D @prefresh/rolldown rolldown
```

Then add it to your Rolldown config:

```js
import prefresh from '@prefresh/rolldown';

export default {
  plugins: [prefresh()],
};
```

This plugin memoizes `createContext()` calls so context identity survives hot updates. It is intended to be used alongside Rolldown's React refresh transform for component refresh handling.

## Options

### `library`

Libraries to detect `createContext` imports from.

Default: `['preact', 'react', 'preact/compat']`

```js
prefresh({
  library: ['preact', 'preact/compat'],
});
```

### `enabled`

Enable or disable the transform.

Default: `true` in development and `false` otherwise.

---
_Source: https://npm.io/package/@prefresh/rolldown · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
