rollup-pluginutils
A set of functions commonly used by Rollup plugins.
Installation
npm install --save rollup-pluginutils
Usage
addExtension
; { return { // only adds an extension if there isn't one already id = ; // `foo` -> `foo.js`, `foo.js -> foo.js` id = ; // `foo` -> `foo.myext`, `foo.js -> `foo.js` } ;}
attachScopes
This function attaches Scope
objects to the relevant nodes of an AST. Each Scope
object has a scope.contains(name)
method that returns true
if a given name is defined in the current scope or a parent scope.
See rollup-plugin-inject or rollup-plugin-commonjs for an example of usage.
;; { return { const ast = this; let scope = ; ; } ;}
createFilter
; { // `options.include` and `options.exclude` can each be a minimatch // pattern, or an array of minimatch patterns, relative to process.cwd() var filter = ; return { // if `options.include` is omitted or has zero length, filter // will return `true` by default. Otherwise, an ID must match // one or more of the minimatch patterns, and must not match // any of the `options.exclude` patterns. if ! return; // proceed with the transformation... } ;}
If you want to resolve the patterns against a directory other than
process.cwd()
, you can additionally pass a resolve
option:
var filter =
If resolve
is a string, then this value will be used as the base directory.
Relative paths will be resolved against process.cwd()
first. If resolve
is
false
, then the patterns will not be resolved against any directory. This can
be useful if you want to create a filter for virtual module names.
makeLegalIdentifier
; ; // 'foo_bar'; // '_typeof'
dataToEsm
Helper for treeshakable data imports
; const esModuleSource = ;/*Outputs the string ES module source: export const custom = 'data'; export const to = ['treeshake']; export default { custom, to };*/
extractAssignedNames
Extract the names of all assignment targets from patterns.
;; { return { const ast = this; ; } ;}
License
MIT