Sha256: 12783edb2aa3f605fc17d2ee9fdc38229127aced4fe1a4663baa6cbf98a182bf

Contents?: true

Size: 900 Bytes

Versions: 9

Compression:

Stored size: 900 Bytes

Contents

// this is a fake version of emotion
// const printAST = require('ast-pretty-print')
const {createMacro} = require('../../')

module.exports = createMacro(emotionMacro)

function emotionMacro({references, babel}) {
  const {types: t} = babel
  references.css.forEach(cssRef => {
    if (cssRef.parentPath.type === 'TaggedTemplateExpression') {
      cssRef.parentPath.replaceWith(
        t.stringLiteral(
          cssRef.parentPath
            .get('quasi')
            .evaluate()
            .value.trim(),
        ),
      )
    }
  })
  references.styled.forEach(styledRef => {
    if (styledRef.parentPath.parentPath.type === 'TaggedTemplateExpression') {
      const quasi = styledRef.parentPath.parentPath.get('quasi')
      const val = quasi.evaluate().value.trim()
      const replacement = t.templateLiteral([t.templateElement(val)], [])
      quasi.replaceWith(replacement)
    }
  })
}

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/emotion.macro.js
disco_app-0.18.2 test/dummy/node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
jester-data-8.0.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-5.2.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-2.0.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-1.1.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-1.0.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-0.0.0.1.0 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js
ezii-os-0.0.0.0.1 node_modules/babel-plugin-macros/dist/__tests__/fixtures/emotion.macro.js