UNPKG

2.35 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/handleSpreadClassName.js"],"names":["handleSpreadClassName","path","destinationName","classNamesFromSpread","destinationAttribute","node","openingElement","attributes","find","attribute","name","value","expression"],"mappings":";;;;;;;AAEA;;AASA,MAAMA,qBAAqB,GAAG,CAC5BC,IAD4B,EAE5BC,eAF4B,EAG5BC,oBAH4B,KAIzB;AACH,QAAMC,oBAAoB,GAAGH,IAAI,CAACI,IAAL,CAAUC,cAAV,CAAyBC,UAAzB,CAC1BC,IAD0B,CACpBC,SAAD,IAAe;AACnB,WAAO,OAAOA,SAAS,CAACC,IAAjB,KAA0B,WAA1B,IAAyCD,SAAS,CAACC,IAAV,CAAeA,IAAf,KAAwBR,eAAxE;AACD,GAH0B,CAA7B;;AAKA,MAAI,CAACE,oBAAL,EAA2B;AACzB;AACD;;AAED,MAAI,4BAAgBA,oBAAoB,CAACO,KAArC,CAAJ,EAAiD;AAC/CP,IAAAA,oBAAoB,CAACO,KAArB,GAA6B,mCAC3B,6BACE,GADF,EAEEP,oBAAoB,CAACO,KAFvB,EAGE,6BACE,GADF,EAEE,0BAAc,GAAd,CAFF,EAGER,oBAHF,CAHF,CAD2B,CAA7B;AAWD,GAZD,MAYO,IAAI,qCAAyBC,oBAAoB,CAACO,KAA9C,CAAJ,EAA0D;AAC/DP,IAAAA,oBAAoB,CAACO,KAArB,GAA6B,mCAC3B,6BACE,GADF,EAEEP,oBAAoB,CAACO,KAArB,CAA2BC,UAF7B,EAGE,6BACE,GADF,EAEE,0BAAc,GAAd,CAFF,EAGET,oBAHF,CAHF,CAD2B,CAA7B;AAWD;AACF,CAvCD;;eAyCeH,qB","sourcesContent":["// @flow\n\nimport {\n Expression,\n isStringLiteral,\n isJSXExpressionContainer,\n jsxExpressionContainer,\n binaryExpression,\n stringLiteral\n} from '@babel/types';\n\nconst handleSpreadClassName = (\n path: *,\n destinationName: string,\n classNamesFromSpread: Expression\n) => {\n const destinationAttribute = path.node.openingElement.attributes\n .find((attribute) => {\n return typeof attribute.name !== 'undefined' && attribute.name.name === destinationName;\n });\n\n if (!destinationAttribute) {\n return;\n }\n\n if (isStringLiteral(destinationAttribute.value)) {\n destinationAttribute.value = jsxExpressionContainer(\n binaryExpression(\n '+',\n destinationAttribute.value,\n binaryExpression(\n '+',\n stringLiteral(' '),\n classNamesFromSpread,\n )\n )\n );\n } else if (isJSXExpressionContainer(destinationAttribute.value)) {\n destinationAttribute.value = jsxExpressionContainer(\n binaryExpression(\n '+',\n destinationAttribute.value.expression,\n binaryExpression(\n '+',\n stringLiteral(' '),\n classNamesFromSpread\n )\n )\n );\n }\n};\n\nexport default handleSpreadClassName;\n"],"file":"handleSpreadClassName.js"}
\No newline at end of file