UNPKG

motion

Version:

motion - moving development forward

92 lines (73 loc) 2.79 kB
exports.__esModule = true; var _slice = Array.prototype.slice; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var _motionTransform = require('motion-transform'); var _motionTransform2 = _interopRequireDefault(_motionTransform); var _sbEventKit = require('sb-event-kit'); var _gulpLibHelpers = require('./gulp/lib/helpers'); var _opts = require('./opts'); var _opts2 = _interopRequireDefault(_opts); // The purpose of this class is to serve as a proxy to transform package // The transform package uses files instead of instances to store state // Therefore this file is required to fix an overwrite bug, discovered // by autocomplete var Transform = (function () { function Transform() { _classCallCheck(this, Transform); this.emitter = new _sbEventKit.Emitter(); this.disposables = []; this.transform = null; } Transform.prototype.get = function get(config) { var _this = this, _arguments = arguments; if (this.transform === null) { this.transform = _motionTransform2['default'].file({ basePath: _opts2['default']('appDir'), production: _gulpLibHelpers.isProduction(), selectorPrefix: _opts2['default']('config').selectorPrefix || '#_motionapp ', routing: _opts2['default']('config').routing, log: function log() { var _emitter; (_emitter = _this.emitter).emit.apply(_emitter, ['log'].concat(_slice.call(_arguments))); }, writeStyle: function writeStyle(a, b) { _this.emitter.emit('writeStyle', a, b); }, onMeta: function onMeta(state) { _this.emitter.emit('onMeta', state); } }); } var disposable = new _sbEventKit.CompositeDisposable(); if (config.log) { disposable.add(this.emitter.on('log', config.log)); } if (config.writeStyle) { disposable.add(this.emitter.on('writeStyle', config.writeStyle)); } if (config.onMeta) { disposable.add(this.emitter.on('onMeta', config.onMeta)); } this.disposables.push(disposable); return this.transform; }; Transform.prototype.disposeLast = function disposeLast() { var disposable = this.disposables.pop(); if (disposable) { disposable.dispose(); } }; Transform.prototype.dispose = function dispose() { this.emitter.dispose(); this.disposables.forEach(function (disposable) { disposable.dispose(); }); this.disposable = null; this.transform = null; }; return Transform; })(); exports['default'] = Transform; module.exports = exports['default'];