UNPKG

glance-selector

Version:
133 lines (97 loc) 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultProperties = exports.DefaultExtensions = exports.Parser = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _searchLineage = require("./guides/search-lineage"); var _searchLineage2 = _interopRequireDefault(_searchLineage); var _parser = require("./parser"); var _parser2 = _interopRequireDefault(_parser); var _log = require("./log"); var _log2 = _interopRequireDefault(_log); var _default = require("./extensions/default"); var _default2 = _interopRequireDefault(_default); var _defaultProperties = require("./default-properties"); var _defaultProperties2 = _interopRequireDefault(_defaultProperties); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function GlanceSelector(options) { var _selector = {}; _selector.defaultExtensions = options.defaultExtensions || _default2.default; _selector.extensions = options.extensions ? _selector.defaultExtensions.concat(options.extensions) : _selector.defaultExtensions; _selector.properties = options.properties || {}; _selector.hooks = options.hooks || {}; _selector.guideFactory = options.guideFactory; var selector = function selector(reference) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } if (!reference) throw new Error("Selector required"); var resultHandler = function resultHandler(err, result) { return result; }; var config = {}; if (args.length > 0) { if (_typeof(args[0]) == 'object') { config = args[0]; if (args[1]) { resultHandler = args[1]; } } else if (typeof args[0] == 'function') { resultHandler = args[0]; } } config.defaultExtensions = config.defaultExtensions || _default2.default; config.extensions = config.extensions ? config.defaultExtensions.concat(config.extensions) : config.defaultExtensions; config.defaultProperties = _defaultProperties2.default; _log2.default.setLogLevel(config.logLevel || 'info'); config.rootElement = config.rootElement || document.body; config.glance = config.glance || selector; config.glanceSelector = config.glanceSelector || selector; var globalScope = global || window; globalScope.browserExecute = config.browserExecute || function (func) { for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } return func.apply(undefined, args); }; selector.find = function (reference, resultHandler) { var scopes = _parser2.default.parse(reference); _log2.default.debug("Selector:", reference); _selector.extensions.filter(function (e) { return e.beforeAll; }).forEach(function (e) { return e.beforeAll({ selector: reference }); }); return _selector.guideFactory().search({ glance: config.glance, glanceSelector: config.glanceSelector, scopeElement: config.rootElement, scopes: scopes, config: config, extensions: config.extensions }, function (err, elements) { _selector.extensions.filter(function (e) { return e.afterAll; }).forEach(function (e) { return e.afterAll({ elements: elements }); }); if (elements.length === 1) return resultHandler(err, elements[0]);else return resultHandler(err, elements); }); }; return selector.find(reference, resultHandler); }; selector.addExtension = function (extension) { _selector.extensions.push(extension); }; selector.setLogLevel = function (level) { _log2.default.setLogLevel(level); }; return selector; } exports.Parser = _parser2.default; exports.DefaultExtensions = _default2.default; exports.DefaultProperties = _defaultProperties2.default; exports.default = GlanceSelector({ guideFactory: function guideFactory() { return new _searchLineage2.default(); } });