treenode.ts 0.4.0 → 0.5.0

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.
@@ -3,12 +3,12 @@ import { IParseable } from "./IParseable";
3
3
  * Search callback passed to `.pre`, `.post`, and `.breadth`.
4
4
  * @public
5
5
  */
6
- export declare type SearchCallback<T> = (node: TreeNode<T>) => (boolean | void);
6
+ export declare type SearchCallback<T> = (node: TreeNode<T>) => boolean | void;
7
7
  /**
8
8
  * Search methods on TreeNode, passed to `.flatten`.
9
9
  * @public
10
10
  */
11
- export declare type SearchStrategy = 'pre' | 'post' | 'breadth';
11
+ export declare type SearchStrategy = "pre" | "post" | "breadth";
12
12
  /**
13
13
  * @public
14
14
  */
@@ -49,6 +49,10 @@ export declare class TreeNode<T> {
49
49
  * Returns a shallow-copy.
50
50
  */
51
51
  clone(): TreeNode<T>;
52
+ /**
53
+ * Returns a node given a list of indices
54
+ */
55
+ fetch(indices: number[]): TreeNode<T> | null;
52
56
  /**
53
57
  * Returns list of nodes to the root.
54
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../src/TreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAExE;;;GAGG;AACH,oBAAY,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC;IAEZ,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAFvB,KAAK,EAAE,CAAC,EACR,MAAM,GAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAW,EACjC,QAAQ,GAAE,QAAQ,CAAC,CAAC,CAAC,EAAO;IAGrC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAMjD;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAGtB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAMpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAI/B;;OAEG;IACH,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;IASnB;;OAEG;IACH,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;IAUpB;;OAEG;IACH,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;IAUrB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAUvD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAcxD;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWpD;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWrD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAM9C;;OAEG;IACH,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;CAM1B"}
1
+ {"version":3,"file":"TreeNode.d.ts","sourceRoot":"","sources":["../src/TreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;AAEtE;;;GAGG;AACH,oBAAY,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC;IAEZ,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAC1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;gBAFvB,KAAK,EAAE,CAAC,EACR,MAAM,GAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAW,EACjC,QAAQ,GAAE,QAAQ,CAAC,CAAC,CAAC,EAAO;IAGrC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAMjD;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAGlB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAGtB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAMpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAI/B;;OAEG;IACH,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC;IASnB;;OAEG;IACH,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;IAUpB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAS5C;;OAEG;IACH,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;IAUrB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAUvD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAcxD;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWpD;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAWrD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAQ9C;;OAEG;IACH,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC;CAM1B"}
package/dist/TreeNode.js CHANGED
@@ -96,6 +96,19 @@ var TreeNode = /** @class */ (function () {
96
96
  });
97
97
  return node;
98
98
  };
99
+ /**
100
+ * Returns a node given a list of indices
101
+ */
102
+ TreeNode.prototype.fetch = function (indices) {
103
+ var node = this;
104
+ for (var _i = 0, indices_1 = indices; _i < indices_1.length; _i++) {
105
+ var i = indices_1[_i];
106
+ node = node.children[i];
107
+ if (!node)
108
+ return null;
109
+ }
110
+ return node || null;
111
+ };
99
112
  /**
100
113
  * Returns list of nodes to the root.
101
114
  */
@@ -167,7 +180,9 @@ var TreeNode = /** @class */ (function () {
167
180
  */
168
181
  TreeNode.prototype.flatten = function (method) {
169
182
  var list = [];
170
- this[method].call(this, function (node) { list.push(node); });
183
+ this[method].call(this, function (node) {
184
+ list.push(node);
185
+ });
171
186
  return list;
172
187
  };
173
188
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.js","sourceRoot":"","sources":["../src/TreeNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeNode.js","sourceRoot":"","sources":["../src/TreeNode.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,13 @@ export declare interface IParseable<T> {
11
11
  * Search callback passed to `.pre`, `.post`, and `.breadth`.
12
12
  * @public
13
13
  */
14
- export declare type SearchCallback<T> = (node: TreeNode<T>) => (boolean | void);
14
+ export declare type SearchCallback<T> = (node: TreeNode<T>) => boolean | void;
15
15
 
16
16
  /**
17
17
  * Search methods on TreeNode, passed to `.flatten`.
18
18
  * @public
19
19
  */
20
- export declare type SearchStrategy = 'pre' | 'post' | 'breadth';
20
+ export declare type SearchStrategy = "pre" | "post" | "breadth";
21
21
 
22
22
  /**
23
23
  * @public
@@ -59,6 +59,10 @@ export declare class TreeNode<T> {
59
59
  * Returns a shallow-copy.
60
60
  */
61
61
  clone(): TreeNode<T>;
62
+ /**
63
+ * Returns a node given a list of indices
64
+ */
65
+ fetch(indices: number[]): TreeNode<T> | null;
62
66
  /**
63
67
  * Returns list of nodes to the root.
64
68
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "treenode.ts",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Tree-like data structure for typescript",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "homepage": "https://github.com/lubert/treenode.ts#readme",
28
28
  "devDependencies": {
29
- "@microsoft/api-documenter": "^7.13.6",
29
+ "@microsoft/api-documenter": "^7.17.17",
30
30
  "@microsoft/api-extractor": "^7.15.1",
31
31
  "@types/jest": "^26.0.23",
32
32
  "@typescript-eslint/eslint-plugin": "^4.23.0",