Skip to content

Commit 5d73551

Browse files
committed
refactor: improve nodes computation and update dependencies
1 parent 4f64b8d commit 5d73551

File tree

3 files changed

+86
-38
lines changed

3 files changed

+86
-38
lines changed

package-lock.json

Lines changed: 58 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,6 @@
3737
"prettier": "@vuebro/configs/prettierrc",
3838
"devDependencies": {
3939
"@types/node": "^24.9.1",
40-
"@vuebro/configs": "^1.1.41"
40+
"@vuebro/configs": "^1.1.49"
4141
}
4242
}

src/index.ts

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -114,37 +114,35 @@ export default (
114114
* properties
115115
*/
116116
const getNodes = function* (nodes: unObject[]) {
117-
const stack = getItems(nodes);
118-
while (stack.length) {
119-
const { siblings, parent, node } = stack.pop() ?? {};
120-
if (node) {
121-
if (node[keyParent] !== parent)
122-
Object.defineProperty(node, keyParent, {
123-
value: parent,
124-
configurable,
125-
});
126-
if (node[keySiblings] !== siblings)
127-
Object.defineProperty(node, keySiblings, {
128-
value: siblings,
129-
configurable,
130-
});
131-
if (Object.keys(properties).some((key) => !(key in node)))
132-
Object.defineProperties(node, properties);
133-
yield node;
134-
stack.push(
135-
...getItems((node[keyChildren] ?? []) as unObject[], node),
136-
);
137-
}
117+
const stack = getItems(nodes);
118+
while (stack.length) {
119+
const { siblings, parent, node } = stack.pop() ?? {};
120+
if (node) {
121+
if (node[keyParent] !== parent)
122+
Object.defineProperty(node, keyParent, {
123+
value: parent,
124+
configurable,
125+
});
126+
if (node[keySiblings] !== siblings)
127+
Object.defineProperty(node, keySiblings, {
128+
value: siblings,
129+
configurable,
130+
});
131+
if (Object.keys(properties).some((key) => !(key in node)))
132+
Object.defineProperties(node, properties);
133+
yield node;
134+
stack.push(...getItems((node[keyChildren] ?? []) as unObject[], node));
138135
}
139-
},
140-
nodesMap = computed(() =>
141-
Object.fromEntries(
142-
nodes.value.map((node) => [node[keyId] as string, node]),
143-
),
136+
}
137+
};
138+
const nodes = computed(() => [
139+
...getNodes(isReactive(tree) ? tree : reactive(tree)),
140+
]);
141+
const nodesMap = computed(() =>
142+
Object.fromEntries(
143+
nodes.value.map((node) => [node[keyId] as string, node]),
144144
),
145-
nodes = computed(() => [
146-
...getNodes(isReactive(tree) ? tree : reactive(tree)),
147-
]);
145+
);
148146

149147
/* -------------------------------------------------------------------------- */
150148
/* Служебная функция для выполнения действия над элементом дерева */

0 commit comments

Comments
 (0)