UNPKG

page-parser-tree

Version:

Library to find elements in a dynamic web page

104 lines (82 loc) 3.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createTransformer; var _transducers = _interopRequireDefault(require("transducers.js")); var _transduce = _interopRequireDefault(require("live-set/transduce")); var _filter = _interopRequireDefault(require("live-set/filter")); var _merge = _interopRequireDefault(require("live-set/merge")); var _createCssFn = _interopRequireDefault(require("./createCssFn")); var _watchMutations = _interopRequireDefault(require("./watchMutations")); var _watchFilteredChildren = _interopRequireDefault(require("./watchFilteredChildren")); function createTransformer(scheduler, selectors) { var transformers = selectors.map(function (item) { if (typeof item === 'string') { var condFn = (0, _createCssFn["default"])(item); return function (liveSet) { return (0, _watchFilteredChildren["default"])(liveSet, condFn); }; } else if (item.$or) { var _transformers = item.$or.map(function (s) { return createTransformer(scheduler, s); }); return function (liveSet) { return (0, _merge["default"])(_transformers.map(function (transformer) { return transformer(liveSet); })); }; } else if (item.$watch) { var _item$$watch = item.$watch, attributeFilter = _item$$watch.attributeFilter, cond = _item$$watch.cond; var _condFn = typeof cond === 'function' ? cond : (0, _createCssFn["default"])(cond); return function (liveSet) { return (0, _watchMutations["default"])(liveSet, attributeFilter, _condFn); }; } else if (item.$log) { var $log = item.$log; var filterFn = function filterFn(value) { console.log($log, value.el); //eslint-disable-line no-console return true; }; return function (liveSet) { return (0, _filter["default"])(liveSet, filterFn); }; } else if (item.$filter) { var $filter = item.$filter; var _filterFn = function _filterFn(_ref) { var el = _ref.el; return $filter(el); }; return function (liveSet) { return (0, _filter["default"])(liveSet, _filterFn); }; } else if (item.$map) { var $map = item.$map; var transducer = _transducers["default"].compose(_transducers["default"].map(function (ec) { return { el: $map(ec.el), parents: ec.parents }; }), _transducers["default"].filter(function (ec) { return ec.el != null; })); return function (liveSet) { return (0, _transduce["default"])(liveSet, transducer); }; } throw new Error("Invalid selector item: ".concat(JSON.stringify(item))); }); return transformers.reduce(function (combined, transformer) { return function (liveSet) { return transformer(combined(liveSet)); }; }, function (x) { return x; }); } module.exports = exports.default; module.exports.default = exports.default; //# sourceMappingURL=index.js.map