-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
63 lines (45 loc) · 1.41 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"use strict";
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var curry4 = require("fj-curry").curry4;
var isDom = _interopRequire(require("fd-isdom"));
var cond = _interopRequire(require("fj-cond"));
var always = _interopRequire(require("fj-always"));
var and = _interopRequire(require("fj-and"));
var typeOf = _interopRequire(require("fj-typeof"));
var ELSE = always(true);
var isString = typeOf("string");
function toArray(arr) {
return Array.prototype.slice.call(arr);
}
function identity(arr) {
return arr;
}
function wrongType() {
throw new TypeError();
}
function queryAll(dom, selector) {
return dom.querySelectorAll(selector);
}
function queryOne(dom, selector) {
return dom.querySelector(selector);
}
function _select(queryFn, wrap, dom, selector) {
return cond([[isString, function () {
return wrap(queryFn(document, dom));
}], [and(isDom(), function () {
return !!selector;
}), function () {
return wrap(queryFn(dom, selector));
}], [isDom(), function () {
return curry4(_select)(queryFn)(wrap)(dom);
}], [ELSE, wrongType]])(dom);
}
var select = exports.select = function (dom, selector) {
return _select(queryAll, toArray, dom, selector);
};
var selectOne = exports.selectOne = function (dom, selector) {
return _select(queryOne, identity, dom, selector);
};
Object.defineProperty(exports, "__esModule", {
value: true
});