05/18/2026 Catchup - linksync project work and TicTacToe evaluations on different coding LLMs with OpenCode.
This commit is contained in:
145
TicTacToe-Compare/ministral-3-14b/node_modules/@rolldown/pluginutils/README.md
generated
vendored
Normal file
145
TicTacToe-Compare/ministral-3-14b/node_modules/@rolldown/pluginutils/README.md
generated
vendored
Normal file
@@ -0,0 +1,145 @@
|
||||
# @rolldown/pluginutils [](https://npmx.dev/package/@rolldown/pluginutils)
|
||||
|
||||
Plugin utilities for [Rolldown](https://rolldown.rs).
|
||||
|
||||
Includes regex helpers for plugin hook filters, composable filter expressions, and a helper for filtering out Vite-serve-only plugins.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
pnpm add -D @rolldown/pluginutils
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```ts
|
||||
import { exactRegex, prefixRegex, makeIdFiltersToMatchWithQuery } from '@rolldown/pluginutils'
|
||||
```
|
||||
|
||||
All filter helpers are also exposed via the `/filter` subpath:
|
||||
|
||||
```ts
|
||||
import { and, or, id, include } from '@rolldown/pluginutils/filter'
|
||||
```
|
||||
|
||||
## Regex helpers
|
||||
|
||||
### `exactRegex`
|
||||
|
||||
- **Type:** `(str: string, flags?: string) => RegExp`
|
||||
|
||||
Constructs a `RegExp` that matches the exact string specified. Useful as a plugin hook filter.
|
||||
|
||||
```ts
|
||||
import { exactRegex } from '@rolldown/pluginutils'
|
||||
|
||||
const plugin = {
|
||||
name: 'plugin',
|
||||
resolveId: {
|
||||
filter: { id: exactRegex('foo') },
|
||||
handler(id) {}, // only called for `foo`
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### `prefixRegex`
|
||||
|
||||
- **Type:** `(str: string, flags?: string) => RegExp`
|
||||
|
||||
Constructs a `RegExp` that matches values starting with the specified prefix.
|
||||
|
||||
```ts
|
||||
import { prefixRegex } from '@rolldown/pluginutils'
|
||||
|
||||
const plugin = {
|
||||
name: 'plugin',
|
||||
resolveId: {
|
||||
filter: { id: prefixRegex('foo') },
|
||||
handler(id) {}, // called for IDs starting with `foo`
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### `makeIdFiltersToMatchWithQuery`
|
||||
|
||||
- **Type:** `(input: string | RegExp | (string | RegExp)[]) => string | RegExp | (string | RegExp)[]`
|
||||
|
||||
Converts an id filter so that it also matches ids that include a query string.
|
||||
|
||||
```ts
|
||||
import { makeIdFiltersToMatchWithQuery } from '@rolldown/pluginutils'
|
||||
|
||||
const plugin = {
|
||||
name: 'plugin',
|
||||
transform: {
|
||||
filter: { id: makeIdFiltersToMatchWithQuery(['**/*.js', /\.ts$/]) },
|
||||
// Matches:
|
||||
// foo.js, foo.js?foo, foo.txt?foo.js,
|
||||
// foo.ts, foo.ts?foo, foo.txt?foo.ts
|
||||
handler(code, id) {},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Composable filters
|
||||
|
||||
[Composable filter expressions](https://rolldown.rs/apis/plugin-api/hook-filters#composable-filters) for use cases where a simple `id`/`include`/`exclude` is not enough. For example, when a plugin needs to combine `id`, `moduleType`, `code`, and `query` conditions.
|
||||
|
||||
```ts
|
||||
import { and, code, id, include, interpreter, moduleType, or } from '@rolldown/pluginutils'
|
||||
|
||||
const expr = include(and(or(id(/\.tsx?$/), id(/\.jsx?$/)), moduleType('tsx'), code(/import React/)))
|
||||
|
||||
interpreter(expr, sourceCode, sourceId, 'tsx') // boolean
|
||||
```
|
||||
|
||||
### Builders
|
||||
|
||||
| Builder | Description |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `and(...exprs)` | All operands must match. |
|
||||
| `or(...exprs)` | At least one operand must match. |
|
||||
| `not(expr)` | Negates the operand. |
|
||||
| `id(pattern, params?)` | Match the module id. `pattern` is `string` or `RegExp`. `params.cleanUrl` strips the query/hash before matching. |
|
||||
| `importerId(pattern, params?)` | Match the importer's id. Same shape as `id`. |
|
||||
| `moduleType(type)` | Match Rolldown's module type (`'js'`, `'jsx'`, `'ts'`, `'tsx'`, `'json'`, `'text'`, `'base64'`, `'dataurl'`, `'binary'`, `'empty'`, or a custom string). |
|
||||
| `code(pattern)` | Match the module source. `string` matches with `includes`; `RegExp` with `test`. |
|
||||
| `query(key, pattern)` | Match a single query parameter. `pattern` is `boolean` (key presence/truthiness), `string` (exact value), or `RegExp` (value pattern). |
|
||||
| `queries(obj)` | Shorthand for `and(...)` over multiple `query` entries. |
|
||||
| `include(expr)` | Top-level wrapper marking `expr` as an inclusion rule. |
|
||||
| `exclude(expr)` | Top-level wrapper marking `expr` as an exclusion rule. |
|
||||
|
||||
### `interpreter`
|
||||
|
||||
- **Type:** `(exprs, code?, id?, moduleType?, importerId?) => boolean`
|
||||
|
||||
Evaluates one or more top-level expressions against the given inputs. Returns `true` when at least one `include` matches and no `exclude` matches; when no `include` is present, defaults to `true` unless an `exclude` matches.
|
||||
|
||||
The argument required by each expression must be provided. For example, evaluating an `id(...)` expression without passing `id` will throw.
|
||||
|
||||
## `filterVitePlugins`
|
||||
|
||||
- **Type:** `<T>(plugins: T | T[] | null | undefined | false) => T[]`
|
||||
|
||||
Removes Vite plugins that target the dev server (`apply: 'serve'`) from a (possibly nested) plugin array. Plugins whose `apply` is a function are invoked with a `command: 'build'` context to decide. Useful when reusing a Vite plugin array inside a Rolldown config.
|
||||
|
||||
```ts
|
||||
import { defineConfig } from 'rolldown'
|
||||
import { filterVitePlugins } from '@rolldown/pluginutils'
|
||||
import viteReact from '@vitejs/plugin-react'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: filterVitePlugins([
|
||||
viteReact(),
|
||||
{
|
||||
name: 'dev-only',
|
||||
apply: 'serve', // filtered out
|
||||
// ...
|
||||
},
|
||||
]),
|
||||
})
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user