occam-query 4.1.179 → 4.1.180

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,10 +12,26 @@ _export(exports, {
12
12
  get default () {
13
13
  return _default;
14
14
  },
15
+ get nodeFromNodeAndQuery () {
16
+ return nodeFromNodeAndQuery;
17
+ },
18
+ get nodeQuery () {
19
+ return nodeQuery;
20
+ },
21
+ get nodesFromNodeAndQueries () {
22
+ return nodesFromNodeAndQueries;
23
+ },
24
+ get nodesFromNodeAndQuery () {
25
+ return nodesFromNodeAndQuery;
26
+ },
27
+ get nodesQuery () {
28
+ return nodesQuery;
29
+ },
15
30
  get queryByExpressionString () {
16
31
  return queryByExpressionString;
17
32
  }
18
33
  });
34
+ const _necessary = require("necessary");
19
35
  const _query = /*#__PURE__*/ _interop_require_default(require("../query"));
20
36
  const _expression = /*#__PURE__*/ _interop_require_default(require("../expression"));
21
37
  function _interop_require_default(obj) {
@@ -23,6 +39,39 @@ function _interop_require_default(obj) {
23
39
  default: obj
24
40
  };
25
41
  }
42
+ const { push } = _necessary.arrayUtilities;
43
+ function nodeQuery(expression) {
44
+ const query = _query.default.fromExpressionString(expression);
45
+ return function(node) {
46
+ const nodes = query.execute(node);
47
+ node = nodes.shift() || null; ///
48
+ return node;
49
+ };
50
+ }
51
+ function nodesQuery(expression) {
52
+ const query = _query.default.fromExpressionString(expression);
53
+ return function(node) {
54
+ const nodes = query.execute(node);
55
+ return nodes;
56
+ };
57
+ }
58
+ function nodeFromNodeAndQuery(node, query) {
59
+ const queryNodes = query.execute(node), queryNode = queryNodes.shift() || null;
60
+ node = queryNode; ///
61
+ return node;
62
+ }
63
+ function nodesFromNodeAndQuery(node, query, nodes = []) {
64
+ const queryNodes = query.execute(node);
65
+ push(nodes, queryNodes);
66
+ return nodes;
67
+ }
68
+ function nodesFromNodeAndQueries(node, queries, nodes = []) {
69
+ queries.forEach((query)=>{
70
+ const queryNodes = query.execute(node);
71
+ push(nodes, queryNodes);
72
+ });
73
+ return nodes;
74
+ }
26
75
  function queryByExpressionString(node, expressionString, maximumDepth) {
27
76
  let nodes = null;
28
77
  const expression = _expression.default.fromExpressionString(expressionString);
@@ -33,7 +82,12 @@ function queryByExpressionString(node, expressionString, maximumDepth) {
33
82
  return nodes;
34
83
  }
35
84
  const _default = {
85
+ nodeQuery,
86
+ nodesQuery,
87
+ nodeFromNodeAndQuery,
88
+ nodesFromNodeAndQuery,
89
+ nodesFromNodeAndQueries,
36
90
  queryByExpressionString
37
91
  };
38
92
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBRdWVyeSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCBFeHByZXNzaW9uIGZyb20gXCIuLi9leHByZXNzaW9uXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUJ5RXhwcmVzc2lvblN0cmluZyhub2RlLCBleHByZXNzaW9uU3RyaW5nLCBtYXhpbXVtRGVwdGgpIHtcbiAgbGV0IG5vZGVzID0gbnVsbDtcblxuICBjb25zdCBleHByZXNzaW9uID0gRXhwcmVzc2lvbi5mcm9tRXhwcmVzc2lvblN0cmluZyhleHByZXNzaW9uU3RyaW5nKTtcblxuICBpZiAoZXhwcmVzc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oZXhwcmVzc2lvbiwgbWF4aW11bURlcHRoKTtcblxuICAgIG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcbiAgfVxuXG4gIHJldHVybiBub2Rlcztcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBxdWVyeUJ5RXhwcmVzc2lvblN0cmluZ1xufTtcbiJdLCJuYW1lcyI6WyJxdWVyeUJ5RXhwcmVzc2lvblN0cmluZyIsIm5vZGUiLCJleHByZXNzaW9uU3RyaW5nIiwibWF4aW11bURlcHRoIiwibm9kZXMiLCJleHByZXNzaW9uIiwiRXhwcmVzc2lvbiIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwicXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uIiwiZXhlY3V0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBbUJBO2VBQUE7O1FBZGdCQTtlQUFBQTs7OzhEQUhFO21FQUNLOzs7Ozs7QUFFaEIsU0FBU0Esd0JBQXdCQyxJQUFJLEVBQUVDLGdCQUFnQixFQUFFQyxZQUFZO0lBQzFFLElBQUlDLFFBQVE7SUFFWixNQUFNQyxhQUFhQyxtQkFBVSxDQUFDQyxvQkFBb0IsQ0FBQ0w7SUFFbkQsSUFBSUcsZUFBZSxNQUFNO1FBQ3ZCLE1BQU1HLFFBQVFDLGNBQUssQ0FBQ0MsY0FBYyxDQUFDTCxZQUFZRjtRQUUvQ0MsUUFBUUksTUFBTUcsT0FBTyxDQUFDVjtJQUN4QjtJQUVBLE9BQU9HO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JKO0FBQ0YifQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgUXVlcnkgZnJvbSBcIi4uL3F1ZXJ5XCI7XG5pbXBvcnQgRXhwcmVzc2lvbiBmcm9tIFwiLi4vZXhwcmVzc2lvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVF1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIG5vZGUgPSBub2Rlcy5zaGlmdCgpIHx8IG51bGw7IC8vL1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvbikge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb24pO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBxdWVyeSkge1xuICBjb25zdCBxdWVyeU5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgcXVlcnlOb2RlID0gcXVlcnlOb2Rlcy5zaGlmdCgpIHx8IG51bGw7XG5cbiAgbm9kZSA9IHF1ZXJ5Tm9kZTsgIC8vL1xuXG4gIHJldHVybiBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHF1ZXJ5LCBub2RlcyA9IFtdKSB7XG4gIGNvbnN0IHF1ZXJ5Tm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gIHB1c2gobm9kZXMsIHF1ZXJ5Tm9kZXMpO1xuXG4gIHJldHVybiBub2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzRnJvbU5vZGVBbmRRdWVyaWVzKG5vZGUsIHF1ZXJpZXMsIG5vZGVzID0gW10pIHtcbiAgcXVlcmllcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5Tm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcHVzaChub2RlcywgcXVlcnlOb2Rlcyk7XG4gIH0pO1xuXG4gIHJldHVybiBub2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHF1ZXJ5QnlFeHByZXNzaW9uU3RyaW5nKG5vZGUsIGV4cHJlc3Npb25TdHJpbmcsIG1heGltdW1EZXB0aCkge1xuICBsZXQgbm9kZXMgPSBudWxsO1xuXG4gIGNvbnN0IGV4cHJlc3Npb24gPSBFeHByZXNzaW9uLmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIGlmIChleHByZXNzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihleHByZXNzaW9uLCBtYXhpbXVtRGVwdGgpO1xuXG4gICAgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5vZGVRdWVyeSxcbiAgbm9kZXNRdWVyeSxcbiAgbm9kZUZyb21Ob2RlQW5kUXVlcnksXG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeSxcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMsXG4gIHF1ZXJ5QnlFeHByZXNzaW9uU3RyaW5nXG59O1xuIl0sIm5hbWVzIjpbIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJpZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicXVlcnlCeUV4cHJlc3Npb25TdHJpbmciLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJleHByZXNzaW9uIiwicXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwibm9kZSIsIm5vZGVzIiwiZXhlY3V0ZSIsInNoaWZ0IiwicXVlcnlOb2RlcyIsInF1ZXJ5Tm9kZSIsInF1ZXJpZXMiLCJmb3JFYWNoIiwiZXhwcmVzc2lvblN0cmluZyIsIm1heGltdW1EZXB0aCIsIkV4cHJlc3Npb24iLCJmcm9tRXhwcmVzc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBd0VBO2VBQUE7O1FBekNnQkE7ZUFBQUE7O1FBdEJBQztlQUFBQTs7UUF1Q0FDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFuQkFDO2VBQUFBOztRQXFDQUM7ZUFBQUE7OzsyQkF4RGU7OERBRWI7bUVBQ0s7Ozs7OztBQUV2QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUV4QixTQUFTTixVQUFVTyxVQUFVO0lBQ2xDLE1BQU1DLFFBQVFDLGNBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixNQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCQSxPQUFPQyxNQUFNRSxLQUFLLE1BQU0sTUFBTSxHQUFHO1FBRWpDLE9BQU9IO0lBQ1Q7QUFDRjtBQUVPLFNBQVNSLFdBQVdJLFVBQVU7SUFDbkMsTUFBTUMsUUFBUUMsY0FBSyxDQUFDQyxvQkFBb0IsQ0FBQ0g7SUFFekMsT0FBTyxTQUFTSSxJQUFJO1FBQ2xCLE1BQU1DLFFBQVFKLE1BQU1LLE9BQU8sQ0FBQ0Y7UUFFNUIsT0FBT0M7SUFDVDtBQUNGO0FBRU8sU0FBU2IscUJBQXFCWSxJQUFJLEVBQUVILEtBQUs7SUFDOUMsTUFBTU8sYUFBYVAsTUFBTUssT0FBTyxDQUFDRixPQUMzQkssWUFBWUQsV0FBV0QsS0FBSyxNQUFNO0lBRXhDSCxPQUFPSyxXQUFZLEdBQUc7SUFFdEIsT0FBT0w7QUFDVDtBQUVPLFNBQVNULHNCQUFzQlMsSUFBSSxFQUFFSCxLQUFLLEVBQUVJLFFBQVEsRUFBRTtJQUMzRCxNQUFNRyxhQUFhUCxNQUFNSyxPQUFPLENBQUNGO0lBRWpDTixLQUFLTyxPQUFPRztJQUVaLE9BQU9IO0FBQ1Q7QUFFTyxTQUFTWCx3QkFBd0JVLElBQUksRUFBRU0sT0FBTyxFQUFFTCxRQUFRLEVBQUU7SUFDL0RLLFFBQVFDLE9BQU8sQ0FBQyxDQUFDVjtRQUNmLE1BQU1PLGFBQWFQLE1BQU1LLE9BQU8sQ0FBQ0Y7UUFFakNOLEtBQUtPLE9BQU9HO0lBQ2Q7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU1Isd0JBQXdCTyxJQUFJLEVBQUVRLGdCQUFnQixFQUFFQyxZQUFZO0lBQzFFLElBQUlSLFFBQVE7SUFFWixNQUFNTCxhQUFhYyxtQkFBVSxDQUFDWCxvQkFBb0IsQ0FBQ1M7SUFFbkQsSUFBSVosZUFBZSxNQUFNO1FBQ3ZCLE1BQU1DLFFBQVFDLGNBQUssQ0FBQ2EsY0FBYyxDQUFDZixZQUFZYTtRQUUvQ1IsUUFBUUosTUFBTUssT0FBTyxDQUFDRjtJQUN4QjtJQUVBLE9BQU9DO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JaO0lBQ0FHO0lBQ0FKO0lBQ0FHO0lBQ0FEO0lBQ0FHO0FBQ0YifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-query",
3
3
  "author": "James Smith",
4
- "version": "4.1.179",
4
+ "version": "4.1.180",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-query",
7
7
  "description": "Occam's query functionality.",
@@ -1,8 +1,61 @@
1
1
  "use strict";
2
2
 
3
+ import { arrayUtilities } from "necessary";
4
+
3
5
  import Query from "../query";
4
6
  import Expression from "../expression";
5
7
 
8
+ const { push } = arrayUtilities;
9
+
10
+ export function nodeQuery(expression) {
11
+ const query = Query.fromExpressionString(expression);
12
+
13
+ return function(node) {
14
+ const nodes = query.execute(node);
15
+
16
+ node = nodes.shift() || null; ///
17
+
18
+ return node;
19
+ }
20
+ }
21
+
22
+ export function nodesQuery(expression) {
23
+ const query = Query.fromExpressionString(expression);
24
+
25
+ return function(node) {
26
+ const nodes = query.execute(node);
27
+
28
+ return nodes;
29
+ }
30
+ }
31
+
32
+ export function nodeFromNodeAndQuery(node, query) {
33
+ const queryNodes = query.execute(node),
34
+ queryNode = queryNodes.shift() || null;
35
+
36
+ node = queryNode; ///
37
+
38
+ return node;
39
+ }
40
+
41
+ export function nodesFromNodeAndQuery(node, query, nodes = []) {
42
+ const queryNodes = query.execute(node);
43
+
44
+ push(nodes, queryNodes);
45
+
46
+ return nodes;
47
+ }
48
+
49
+ export function nodesFromNodeAndQueries(node, queries, nodes = []) {
50
+ queries.forEach((query) => {
51
+ const queryNodes = query.execute(node);
52
+
53
+ push(nodes, queryNodes);
54
+ });
55
+
56
+ return nodes;
57
+ }
58
+
6
59
  export function queryByExpressionString(node, expressionString, maximumDepth) {
7
60
  let nodes = null;
8
61
 
@@ -18,5 +71,10 @@ export function queryByExpressionString(node, expressionString, maximumDepth) {
18
71
  }
19
72
 
20
73
  export default {
74
+ nodeQuery,
75
+ nodesQuery,
76
+ nodeFromNodeAndQuery,
77
+ nodesFromNodeAndQuery,
78
+ nodesFromNodeAndQueries,
21
79
  queryByExpressionString
22
80
  };