ÿØÿà JPEG ÿþ;
Server IP : 68.65.120.201 / Your IP : 216.73.216.135 Web Server : LiteSpeed System : Linux server179.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64 User : taxhyuvu ( 2294) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/taxhyuvu/nodevenv/public_html/dp_taxhelplines/10/lib/node_modules/goober/macro/ |
Upload File : |
const { createMacro, MacroError } = require('babel-plugin-macros'); const { addNamed } = require('@babel/helper-module-imports'); module.exports = createMacro(gooberMacro); function gooberMacro({ references, babel, state }) { const program = state.file.path; if (references.default) { throw new MacroError('goober.macro does not support default import'); } // Inject import {...} from 'goober' Object.keys(references).forEach((refName) => { const id = addNamed(program, refName, 'goober'); references[refName].forEach((referencePath) => { referencePath.node.name = id.name; }); }); const t = babel.types; const styledReferences = references.styled || []; styledReferences.forEach((referencePath) => { const type = referencePath.parentPath.type; if (type === 'MemberExpression') { const node = referencePath.parentPath.node; const functionName = node.object.name; let elementName = node.property.name; // Support custom elements if (/[A-Z]/.test(elementName)) { elementName = elementName.replace(/[A-Z]/g, '-$&').toLowerCase(); } referencePath.parentPath.replaceWith( t.callExpression(t.identifier(functionName), [t.stringLiteral(elementName)]) ); } }); }