1
0

run npm install to generate a package lock

This commit is contained in:
sashinexists
2024-12-07 13:18:31 +11:00
parent e7d08a91b5
commit 23437d228e
2501 changed files with 290663 additions and 0 deletions

View 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;
},
};
}