motion
Version:
motion - moving development forward
82 lines (70 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _motionTransform = require('motion-transform');
var _motionTransform2 = _interopRequireDefault(_motionTransform);
var _sbEventKit = require('sb-event-kit');
var _helpers = require('./gulp/lib/helpers');
var _opts = require('./opts');
var _opts2 = _interopRequireDefault(_opts);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// 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
class Transform {
constructor() {
this.emitter = new _sbEventKit.Emitter();
this.disposables = [];
this.transform = null;
}
get(config) {
if (this.transform === null) {
this.transform = _motionTransform2.default.file({
basePath: (0, _opts2.default)('appDir'),
production: (0, _helpers.isProduction)(),
selectorPrefix: (0, _opts2.default)('config').selectorPrefix || '#_motionapp ',
routing: (0, _opts2.default)('config').routing,
log: () => {
var _emitter;
(_emitter = this.emitter).emit.apply(_emitter, ['log'].concat(Array.prototype.slice.call(arguments)));
},
writeStyle: (a, b) => {
this.emitter.emit('writeStyle', a, b);
},
onMeta: state => {
this.emitter.emit('onMeta', state);
}
});
}
const 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;
}
disposeLast() {
const disposable = this.disposables.pop();
if (disposable) {
disposable.dispose();
}
}
dispose() {
this.emitter.dispose();
this.disposables.forEach(function (disposable) {
disposable.dispose();
});
this.disposable = null;
this.transform = null;
}
}
exports.default = Transform;
//# sourceMappingURL=transform.js.map