forked from sashin/sashinexists
run npm install to generate a package lock
This commit is contained in:
37
node_modules/@weborigami/async-tree/src/operations/deepReverse.js
generated
vendored
Normal file
37
node_modules/@weborigami/async-tree/src/operations/deepReverse.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
import { Tree } from "../internal.js";
|
||||
|
||||
/**
|
||||
* Reverse the order of keys at all levels of the tree.
|
||||
*
|
||||
* @typedef {import("@weborigami/types").AsyncTree} AsyncTree
|
||||
* @typedef {import("../../index.ts").Treelike} Treelike
|
||||
*
|
||||
* @param {Treelike} treelike
|
||||
* @returns {AsyncTree}
|
||||
*/
|
||||
export default function deepReverse(treelike) {
|
||||
if (!treelike) {
|
||||
const error = new TypeError(
|
||||
`deepReverse: The tree to reverse isn't defined.`
|
||||
);
|
||||
/** @type {any} */ (error).position = 0;
|
||||
throw error;
|
||||
}
|
||||
|
||||
const tree = Tree.from(treelike, { deep: true });
|
||||
return {
|
||||
async get(key) {
|
||||
let value = await tree.get(key);
|
||||
if (Tree.isAsyncTree(value)) {
|
||||
value = deepReverse(value);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
|
||||
async keys() {
|
||||
const keys = Array.from(await tree.keys());
|
||||
keys.reverse();
|
||||
return keys;
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user