@weborigami/origami 0.2.12 → 0.3.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weborigami/origami",
3
- "version": "0.2.12",
3
+ "version": "0.3.0",
4
4
  "description": "Web Origami language, CLI, framework, and server",
5
5
  "type": "module",
6
6
  "repository": {
@@ -17,10 +17,10 @@
17
17
  "typescript": "5.8.2"
18
18
  },
19
19
  "dependencies": {
20
- "@weborigami/async-tree": "0.2.12",
21
- "@weborigami/language": "0.2.12",
20
+ "@weborigami/async-tree": "0.3.0",
21
+ "@weborigami/language": "0.3.0",
22
22
  "@weborigami/json-feed-to-rss": "1.0.0",
23
- "@weborigami/types": "0.2.12",
23
+ "@weborigami/types": "0.3.0",
24
24
  "exif-parser": "0.1.12",
25
25
  "graphviz-wasm": "3.0.2",
26
26
  "highlight.js": "11.11.1",
@@ -302,8 +302,8 @@ tree:
302
302
  args: (tree)
303
303
  description: The tree's [key, value] pairs
304
304
  filter:
305
- args: (source, filter)
306
- description: Filter the source tree using the filter tree
305
+ args: (source, options)
306
+ description: Filter the source tree
307
307
  first:
308
308
  args: (tree)
309
309
  description: The first value in the tree
@@ -352,6 +352,9 @@ tree:
352
352
  mapReduce:
353
353
  args: (tree, valueFn, reduceFn)
354
354
  description: Map values and reduce them
355
+ mask:
356
+ args: (source, mask)
357
+ description: Return the source tree with only the keys in the mask
355
358
  match:
356
359
  args: (pattern, fn, [keys])
357
360
  description: Matches simple patterns or regular expressions
@@ -2,7 +2,7 @@ import { filter } from "@weborigami/async-tree";
2
2
  import assertTreeIsDefined from "../common/assertTreeIsDefined.js";
3
3
 
4
4
  /**
5
- * Apply a filter to a tree.
5
+ * Apply a filter to a tree
6
6
  *
7
7
  * @typedef {import("@weborigami/types").AsyncTree} AsyncTree
8
8
  * @typedef {import("@weborigami/async-tree").Treelike} Treelike
@@ -0,0 +1,19 @@
1
+ import { mask } from "@weborigami/async-tree";
2
+ import assertTreeIsDefined from "../common/assertTreeIsDefined.js";
3
+
4
+ /**
5
+ * Apply a mask to a tree
6
+ *
7
+ * @typedef {import("@weborigami/types").AsyncTree} AsyncTree
8
+ * @typedef {import("@weborigami/async-tree").Treelike} Treelike
9
+ *
10
+ * @this {AsyncTree|null}
11
+ * @param {Treelike} sourceTreelike
12
+ * @param {Treelike} maskTreelike
13
+ */
14
+ export default async function maskBuiltin(sourceTreelike, maskTreelike) {
15
+ assertTreeIsDefined(this, "tree:mask");
16
+ const result = mask(sourceTreelike, maskTreelike);
17
+ result.parent = this;
18
+ return result;
19
+ }
package/src/tree/tree.js CHANGED
@@ -21,6 +21,7 @@ export { default as inners } from "./inners.js";
21
21
  export { default as keys } from "./keys.js";
22
22
  export { default as length } from "./length.js";
23
23
  export { default as map } from "./map.js";
24
+ export { default as mask } from "./mask.js";
24
25
  export { default as match } from "./match.js";
25
26
  export { default as merge } from "./merge.js";
26
27
  export { default as paginate } from "./paginate.js";