diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:38:50 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:40:43 +0200 |
commit | 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch) | |
tree | 6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/babel-plugin-espower/lib/create-espower-visitor.js | |
parent | 963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff) |
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/babel-plugin-espower/lib/create-espower-visitor.js')
-rw-r--r-- | node_modules/babel-plugin-espower/lib/create-espower-visitor.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/babel-plugin-espower/lib/create-espower-visitor.js b/node_modules/babel-plugin-espower/lib/create-espower-visitor.js new file mode 100644 index 000000000..eab911ab8 --- /dev/null +++ b/node_modules/babel-plugin-espower/lib/create-espower-visitor.js @@ -0,0 +1,32 @@ +'use strict'; + +var defaultOptions = require('./default-options'); +var assign = require('core-js/library/fn/object/assign'); +var BabelEspowerVisitor = require('./babel-espower-visitor'); + +module.exports = function createEspowerVisitor (babel, options) { + return { + visitor: { + Program: function (path, state) { + var opts = assign(defaultOptions(), { + astWhiteList: babel.types.BUILDER_KEYS, + visitorKeys: babel.types.VISITOR_KEYS, + sourceRoot: process.cwd() + }, options, state.opts); + var espowerVisitor = new BabelEspowerVisitor(babel, opts); + var innerVisitor = Object.keys(opts.visitorKeys).reduce(function (handlers, nodeType) { + handlers[nodeType] = { + enter: function (nodePath, pluginPass) { + espowerVisitor.enter(nodePath); + }, + exit: function (nodePath, pluginPass) { + espowerVisitor.exit(nodePath); + } + }; + return handlers; + }, {}); + path.traverse(innerVisitor, state); + } + } + }; +}; |