mirror of
https://github.com/tenrok/BBob.git
synced 2026-06-14 18:42:24 +03:00
32a7fb51da
* refactor(*): convert to babel and generation to lib, es, dist * chore(*): remove generated files * fix(*): lint run command
28 lines
577 B
JavaScript
28 lines
577 B
JavaScript
/* eslint-disable indent */
|
|
import { isTagNode } from '@bbob/plugin-helper';
|
|
|
|
function process(tags, tree, ...rest) {
|
|
tree.walk(node => (isTagNode(node) && tags[node.tag]
|
|
? tags[node.tag](node, ...rest)
|
|
: node));
|
|
}
|
|
|
|
/**
|
|
* @param tags
|
|
* @return {function(*=, *=)}
|
|
*/
|
|
function createPreset(tags) {
|
|
const instance = (tree, ...rest) => process(tags, tree, ...rest);
|
|
|
|
instance.extend = (callback) => {
|
|
const newTags = callback(tags);
|
|
|
|
return () => createPreset(newTags);
|
|
};
|
|
|
|
return instance;
|
|
}
|
|
|
|
export { createPreset };
|
|
export default createPreset;
|