Sha256: f8097a485c9639e06792b77f651e7a9c3d867baacebd334fefeefec17d4a3ed7

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

// Dependencies
var babelTemplate = require('babel-template')
var _ = require('lodash')

// Public
module.exports = function () {
  return {
    visitor: {
      Program: {
        exit: function (path) {
          if (path.BABEL_PLUGIN_ADD_MODULE_EXPORTS) {
            return
          }

          var hasExportDefault = false
          var hasExportNamed = false
          path.get('body').forEach(function (path) {
            if (path.isExportDefaultDeclaration()) {
              hasExportDefault = true
              return
            }
            if (path.isExportNamedDeclaration()) {
              // HACK detect export-from statements for default
              var name = _.get(path.get('declaration'), 'container.specifiers[0].exported.name')
              if (name === 'default') {
                hasExportDefault = true
              } else {
                hasExportNamed = true
              }
              return
            }
          })

          if (hasExportDefault && !hasExportNamed) {
            var topNodes = []
            topNodes.push(babelTemplate("module.exports = exports['default']")())

            path.pushContainer('body', topNodes)
          }

          path.BABEL_PLUGIN_ADD_MODULE_EXPORTS = true
        }
      }
    }
  }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
babel-schmooze-sprockets-0.1.0.alpha.3 node_modules/babel-plugin-add-module-exports/lib/index.js
babel-schmooze-sprockets-0.1.0.alpha.2 node_modules/babel-plugin-add-module-exports/lib/index.js