UNPKG

motion

Version:

motion - moving development forward

82 lines (70 loc) 2.36 kB
'use strict'; 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