motion
Version:
motion - moving development forward
92 lines (73 loc) • 2.79 kB
JavaScript
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'];