glance-dom
Version:
Glance DOM library
103 lines (74 loc) • 3.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _glanceParser = require('glance-parser');
var _glanceParser2 = _interopRequireDefault(_glanceParser);
var _locatorPreprocessor = require('./locator-preprocessor');
var _locatorPreprocessor2 = _interopRequireDefault(_locatorPreprocessor);
var _filterPreprocessor = require('./filter-preprocessor');
var _filterPreprocessor2 = _interopRequireDefault(_filterPreprocessor);
var _extensions = require('../extensions');
var _extensions2 = _interopRequireDefault(_extensions);
var _reduce = require('@arr/reduce');
var _reduce2 = _interopRequireDefault(_reduce);
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 Preprocessor = function () {
function Preprocessor() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
extensions: new _extensions2.default(),
defaultOptions: []
},
_ref$extensions = _ref.extensions,
extensions = _ref$extensions === undefined ? new _extensions2.default() : _ref$extensions,
_ref$defaultOptions = _ref.defaultOptions,
defaultOptions = _ref$defaultOptions === undefined ? [] : _ref$defaultOptions;
_classCallCheck(this, Preprocessor);
this.extensions = extensions;
this.defaultOptions = defaultOptions;
}
_createClass(Preprocessor, [{
key: 'create',
value: function create(reference) {
var _this = this;
var scopes = (0, _glanceParser2.default)(reference);
var commands = [];
commands.push({ command: 'beforeall' });
commands = commands.concat((0, _reduce2.default)(scopes, function (result, scope) {
return result.concat({ command: 'containers' }, _this.processIntersect(scope));
}, []));
commands.push({ command: 'afterall' });
return commands;
}
}, {
key: 'processIntersect',
value: function processIntersect(intersects) {
var _this2 = this;
var located = (0, _reduce2.default)(intersects, function (result, target) {
return result.concat(_extends({ command: 'beforelocating' }, target), _this2.locators(target), _extends({ command: 'afterlocating' }, target), { command: 'intersect' });
}, []);
var options = (0, _reduce2.default)(intersects, function (r, t) {
return r.concat(t.options);
}, []);
return located.concat({ command: 'beforefiltering', options: options }, this.filters(options), { command: 'afterfiltering', options: options });
}
}, {
key: 'locators',
value: function locators(target) {
var collector = new _locatorPreprocessor2.default(this);
return collector.getLocatorCommands(target);
}
}, {
key: 'filters',
value: function filters(options) {
var collector = new _filterPreprocessor2.default(this);
return collector.getFilterCommands(options);
}
}]);
return Preprocessor;
}();
exports.default = Preprocessor;
;