Reshape Plugin Util
A little set of utilities for reshape plugins
Note: This project is in early development, and versioning is a little different. Read this for more details.
Installation
npm i reshape-plugin-util --save
Note: This project is compatible with node v6+ only
Usage
This is just a small utility that contains a couple a useful functions when developing reshape plugins.
modifyNodes(tree, match, transform)
Given a reshape AST, a function that will return any node that matches given criteria, and a function that receives matched nodes and returns one or more modified nodes, returns a modified AST.
Example: Using modifyNodes
to modify a node's content
const util = module { return util}
Input:
hello world!
Output:
HELLO WORLD!
Example: Using modifyNodes
to remove a node
const util = module { return util}
Input:
beforehello world!after
Output:
beforeafter
Example: Using modifyNodes
to add extra nodes
const util = module { return util}
Input:
beforeechoafter
Output:
beforeechoechoafter
You can also return a promise from either function and it will work fine.
validateNode(node)
Given a single reshape AST node, checks it for formatting errors. Example:
const util = util // => Error: text node content must be a string// From: plugin-util// Node: {// type: 'text',// content: ['foo', 'bar'],// location: { line: 1, col: 1 }// }
validateTree(tree)
Recursively validates each node in a given reshape AST tree.
const util = util // => Error: node missing "type" attribute// From: plugin-util// Node: {// content: 'foo',// location: { line: 1, col: 4}// }
License & Contributing
- Details on the license can be found here
- Details on running tests and contributing can be found here