You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@rolldown/pluginutils

Package Overview
Dependencies
Maintainers
4
Versions
111
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rolldown/pluginutils

A utility library for building flexible, composable filter expressions that can be used in plugin hook filters of Rolldown/Vite/Rollup/Unplugin plugins.

latest
Source
npmnpm
Version
1.0.0-rc.7
Version published
Weekly downloads
36M
8.97%
Maintainers
4
Weekly downloads
 
Created
Source

@rolldown/pluginutils

A utility library for building flexible, composable filter expressions that can be used in plugin hook filters of Rolldown/Vite/Rollup/Unplugin plugins.

Installation

pnpm add @rolldown/pluginutils

Usage

Simple Filters

import { exactRegex, makeIdFiltersToMatchWithQuery, prefixRegex } from '@rolldown/pluginutils';

// Match exactly 'foo.js'
const filter = exactRegex('foo.js');

// Match any id starting with 'lib/'
const prefix = prefixRegex('lib/');

// Match ids with query params (e.g. 'foo.js?bar')
const idFilters = makeIdFiltersToMatchWithQuery(['**/*.js', /\.ts$/]);

// Usage in a plugin to define a hook filter
const myPlugin = {
  resolveId: {
    filter: {
      id: [exactRegex('MY_ID_TO_CHECK'), /some-other-regex/],
    },
    handler(id) {
      // Your code here
    },
  },
};

Composable Filters

[!WARNING] Composable filters are not yet supported in legacy Vite or unplugin. They can be used in Rolldown/Rolldown-Vite/Vite Beta plugins only.

import { and, id, include, moduleType, query } from '@rolldown/pluginutils';

// Build a filter expression
const filterExpr = and(id(/\.ts$/), moduleType('ts'), query('foo', true));

// Usage in a plugin to define a hook filter
const myPlugin = {
  transform: {
    filter: [include(filterExpr)],
    handler(code, id, options) {
      // Your code here
    },
  },
};

API Reference

Simple Filters

  • exactRegex(str: string, flags?: string): RegExp — Matches the exact string.
  • prefixRegex(str: string, flags?: string): RegExp — Matches values with the given prefix.
  • makeIdFiltersToMatchWithQuery(input: string | RegExp | (string | RegExp)[]): string | RegExp | (string | RegExp)[] — Adapts filters to match ids with query params.

Composable Filters

  • and(...exprs) / or(...exprs) / not(expr) — Logical composition of filter expressions.
  • id(pattern, params?) — Filter by id. A string pattern is matched by exact equality (not glob); a RegExp is tested against the id.
  • importerId(pattern, params?) — Filter by importer id. A string pattern is matched by exact equality; a RegExp is tested against the importer id. Only usable with the resolveId hook.
  • moduleType(type) — Filter by module type (e.g. 'js', 'tsx', or 'json').
  • code(pattern) — Filter by code content.
  • query(key, pattern) — Filter by query parameter.
  • include(expr) / exclude(expr) — Top-level include/exclude wrappers.
  • queries(obj) — Compose multiple query filters.

Utilities

  • filterVitePlugins(plugins) — Filters out Vite plugins with apply: 'serve'.

FAQs

Package last updated on 05 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts