UNPKG

ember-maybe-import-regenerator

Version:
55 lines (42 loc) 1.5 kB
'use strict'; var path = require('path'); var Funnel = require('broccoli-funnel'); module.exports = { name: require('./package').name, included(app) { this._super.included.apply(this, arguments); var hostApp = this._findApp(app); var babelOptions = (hostApp.options && hostApp.options.babel) || {}; var emberCLIBabelOptions = (hostApp.options && hostApp.options['ember-cli-babel']) || {}; var babelInstance = this.addons.filter(function(addon) { return addon.name === 'ember-cli-babel'; })[0]; var needsRegenerator = babelInstance.isPluginRequired('transform-regenerator'); var regeneratorAlreadyIncluded = hostApp.__ember_maybe_import_regenerator_included || babelOptions.includePolyfill || emberCLIBabelOptions.includePolyfill; hostApp.__ember_maybe_import_regenerator_included = true; if (!regeneratorAlreadyIncluded && needsRegenerator) { hostApp.import('vendor/regenerator-runtime/runtime.js', { prepend: true }); } }, treeForVendor() { var regeneratorRuntimePath = path.dirname(require.resolve('regenerator-runtime')); return new Funnel(this.treeGenerator(regeneratorRuntimePath), { srcDir: '/', destDir: 'regenerator-runtime' }); }, _findApp(hostApp) { var app = this.app || hostApp; var parent = this.parent; while (parent.parent) { if (parent.app) { app = parent.app; break; } parent = parent.parent; } return app; } };