source: node_modules/@swagger-api/apidom-core/es/traversal/parents.mjs

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 784 bytes
Line 
1import { visit } from "./visitor.mjs";
2class Visitor {
3 parentEdges;
4 parent;
5 constructor() {
6 this.parentEdges = new WeakMap();
7 }
8 ObjectElement(objectElement) {
9 this.parentEdges.set(objectElement, this.parent);
10 this.parent = objectElement;
11 }
12 ArrayElement(arrayElement) {
13 this.parentEdges.set(arrayElement, this.parent);
14 this.parent = arrayElement;
15 }
16 MemberElement(memberElement) {
17 this.parentEdges.set(memberElement, this.parent);
18 this.parent = memberElement;
19 }
20 enter(element) {
21 this.parentEdges.set(element, this.parent);
22 }
23}
24
25// computes upwards edges from every child to its parent
26const parents = element => {
27 const visitor = new Visitor();
28 visit(element, visitor);
29 return visitor.parentEdges;
30};
31export default parents;
Note: See TracBrowser for help on using the repository browser.