diff options
Diffstat (limited to 'babel-import-promise/babel-import-promise.mjs')
-rw-r--r-- | babel-import-promise/babel-import-promise.mjs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/babel-import-promise/babel-import-promise.mjs b/babel-import-promise/babel-import-promise.mjs new file mode 100644 index 0000000..bdde752 --- /dev/null +++ b/babel-import-promise/babel-import-promise.mjs @@ -0,0 +1,31 @@ +export default function ({ types: t }) { + return { + visitor: { + Program(path, state) { + let shouldAdd = false + const MyVisitor = { + Function: { + enter: function enter(path) { + if (path.node.async) { + shouldAdd = true + } + } + }, + Identifier(path) { + if (path.node.name === "Promise") { + shouldAdd = true + } + } + }; + path.traverse(MyVisitor) + if (shouldAdd) { + let depth = state.filename.replace(state.cwd, "").split("\\").length - 2 + const identifier = t.identifier('Promise'); + const importDefaultSpecifier = t.importDefaultSpecifier(identifier); + const importDeclaration = t.importDeclaration([importDefaultSpecifier], t.stringLiteral("../".repeat(depth) + 'PromiseV2')); + path.unshiftContainer('body', importDeclaration); + } + } + } + }; +};
\ No newline at end of file |