UNPKG

4.32 kBSource Map (JSON)View Raw
1{"version":3,"sources":["index.js"],"names":["SKIP","Symbol","module","exports","rewire","babel","options","t","types","name","index","mappings","require","visitor","ImportDeclaration","path","node","source","value","replaceWithMultiple","specifiers","reduce","declarations","specifier","mapping","imported","alias","identifier","local","s","importDefaultSpecifier","importNamespaceSpecifier","importSpecifier","push","importDeclaration","stringLiteral","previous","find","d","requeue"],"mappings":"AAAA,MAAMA,IAAI,GAAGC,MAAM,CAAC,MAAD,CAAnB;;AAEAC,MAAM,CAACC,OAAP,GAAiB,SAASC,MAAT,CAAgBC,KAAhB,EAAuBC,OAAvB,EAAgC;AAC/C,QAAMC,CAAC,GAAGF,KAAK,CAACG,KAAhB;;AAEA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA;AAAf,MAA4BC,OAAO,CAACN,OAAO,CAACK,QAAR,IACxC,qBADuC,CAAzC;;AAGA,SAAO;AACLE,IAAAA,OAAO,EAAE;AACPC,MAAAA,iBAAiB,CAACC,IAAD,EAAO;AACtB,YAAIA,IAAI,CAACC,IAAL,CAAUC,MAAV,CAAiBC,KAAjB,KAA2BT,IAA3B,IAAmCM,IAAI,CAACC,IAAL,CAAUhB,IAAV,CAAvC,EAAwD;AACtD;AACD;;AAEDe,QAAAA,IAAI,CAACC,IAAL,CAAUC,MAAV,CAAiBC,KAAjB,GAA0B,GAAET,IAAK,IAAGC,KAAM,EAA1C;AACAK,QAAAA,IAAI,CAACI,mBAAL,CACEJ,IAAI,CAACC,IAAL,CAAUI,UAAV,CAAqBC,MAArB,CAA4B,CAACC,YAAD,EAAeC,SAAf,KAA6B;AACvD,gBAAMC,OAAO,GAAGb,QAAQ,CAACY,SAAS,CAACE,QAAV,CAAmBhB,IAApB,CAAxB;;AAEA,cAAIe,OAAJ,EAAa;AACX,kBAAME,KAAK,GAAI,GAAEjB,IAAK,IAAGe,OAAO,CAACT,IAAK,EAAtC;AACA,kBAAMY,UAAU,GAAGpB,CAAC,CAACoB,UAAF,CAAaJ,SAAS,CAACK,KAAV,CAAgBnB,IAA7B,CAAnB;AAEA,gBAAIoB,CAAJ;;AAEA,oBAAQL,OAAO,CAACf,IAAhB;AACE,mBAAK,SAAL;AACEoB,gBAAAA,CAAC,GAAGtB,CAAC,CAACuB,sBAAF,CAAyBH,UAAzB,CAAJ;AACA;;AACF,mBAAK,GAAL;AACEE,gBAAAA,CAAC,GAAGtB,CAAC,CAACwB,wBAAF,CAA2BJ,UAA3B,CAAJ;AACA;;AACF;AACEE,gBAAAA,CAAC,GAAGtB,CAAC,CAACyB,eAAF,CAAkBL,UAAlB,EAA8BpB,CAAC,CAACoB,UAAF,CAAaH,OAAO,CAACf,IAArB,CAA9B,CAAJ;AARJ;;AAWAa,YAAAA,YAAY,CAACW,IAAb,CACE1B,CAAC,CAAC2B,iBAAF,CAAoB,CAACL,CAAD,CAApB,EAAyBtB,CAAC,CAAC4B,aAAF,CAAgBT,KAAhB,CAAzB,CADF;AAGD,WApBD,MAoBO;AACL,kBAAMU,QAAQ,GAAGd,YAAY,CAACe,IAAb,CACdC,CAAD,IAAOA,CAAC,CAACrB,MAAF,CAASC,KAAT,KAAmBH,IAAI,CAACC,IAAL,CAAUC,MAAV,CAAiBC,KAD5B,CAAjB;;AAIA,gBAAIkB,QAAJ,EAAc;AACZA,cAAAA,QAAQ,CAAChB,UAAT,CAAoBa,IAApB,CAAyBV,SAAzB;AACD,aAFD,MAEO;AACL,oBAAMP,IAAI,GAAGT,CAAC,CAAC2B,iBAAF,CAAoB,CAACX,SAAD,CAApB,EAAiCR,IAAI,CAACC,IAAL,CAAUC,MAA3C,CAAb;AACAD,cAAAA,IAAI,CAAChB,IAAD,CAAJ,GAAa,IAAb;AACAsB,cAAAA,YAAY,CAACW,IAAb,CAAkBjB,IAAlB;AACD;AACF;;AAED,iBAAOM,YAAP;AACD,SAtCD,EAsCG,EAtCH,CADF;AA0CAP,QAAAA,IAAI,CAACwB,OAAL;AACD;;AAlDM;AADJ,GAAP;AAsDD,CA5DD","sourcesContent":["const SKIP = Symbol('SKIP');\n\nmodule.exports = function rewire(babel, options) {\n const t = babel.types;\n\n const { name, index, mappings } = require(options.mappings ||\n '../../mappings.json');\n\n return {\n visitor: {\n ImportDeclaration(path) {\n if (path.node.source.value !== name || path.node[SKIP]) {\n return;\n }\n\n path.node.source.value = `${name}/${index}`;\n path.replaceWithMultiple(\n path.node.specifiers.reduce((declarations, specifier) => {\n const mapping = mappings[specifier.imported.name];\n\n if (mapping) {\n const alias = `${name}/${mapping.path}`;\n const identifier = t.identifier(specifier.local.name);\n\n let s;\n\n switch (mapping.name) {\n case 'default':\n s = t.importDefaultSpecifier(identifier);\n break;\n case '*':\n s = t.importNamespaceSpecifier(identifier);\n break;\n default:\n s = t.importSpecifier(identifier, t.identifier(mapping.name));\n }\n\n declarations.push(\n t.importDeclaration([s], t.stringLiteral(alias))\n );\n } else {\n const previous = declarations.find(\n (d) => d.source.value === path.node.source.value\n );\n\n if (previous) {\n previous.specifiers.push(specifier);\n } else {\n const node = t.importDeclaration([specifier], path.node.source);\n node[SKIP] = true;\n declarations.push(node);\n }\n }\n\n return declarations;\n }, [])\n );\n\n path.requeue();\n },\n },\n };\n};\n"]}
\No newline at end of file