aboutsummaryrefslogtreecommitdiff
path: root/babel-import-promise/babel-import-promise.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'babel-import-promise/babel-import-promise.mjs')
-rw-r--r--babel-import-promise/babel-import-promise.mjs31
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