Sha256: e7ef4ea80d059ea2290aa19ada5b7c657570a62e82bf3c3cc9df8cbc01044d91

Contents?: true

Size: 586 Bytes

Versions: 9

Compression:

Stored size: 586 Bytes

Contents

// adds "prefix-" to each `id` attribute
const {createMacro} = require('../../')

module.exports = createMacro(wrapWidget)

function wrapWidget({references, babel}) {
  const {types: t} = babel
  references.default.forEach(wrap => {
    wrap.parentPath.traverse({
      JSXAttribute(path) {
        const name = path.get('name')
        if (t.isJSXIdentifier(name) && name.node.name === 'id') {
          const value = path.get('value')
          if (t.isStringLiteral(value))
            value.replaceWith(t.stringLiteral(`macro-${value.node.value}`))
        }
      },
    })
  })
}

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
disco_app-0.18.0 test/dummy/node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
disco_app-0.18.2 test/dummy/node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
jester-data-8.0.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-5.2.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-2.0.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-1.1.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-1.0.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-0.0.0.1.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js
ezii-os-0.0.0.0.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/jsx-id-prefix.macro.js