source: node_modules/@swagger-api/apidom-core/cjs/traversal/traverse.cjs

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: 1.2 KB
Line 
1"use strict";
2
3exports.__esModule = true;
4exports.default = exports.CallbackVisitor = void 0;
5var _ramda = require("ramda");
6var _ramdaAdjunct = require("ramda-adjunct");
7var _visitor = require("./visitor.cjs");
8var _index = require("../predicates/index.cjs");
9class CallbackVisitor extends _visitor.PredicateVisitor {
10 callback;
11 constructor({
12 callback = _ramdaAdjunct.noop,
13 ...rest
14 } = {}) {
15 super({
16 ...rest
17 });
18 this.callback = callback;
19 }
20 enter(element) {
21 if (this.predicate(element)) {
22 this.callback(element);
23 return this.returnOnTrue;
24 }
25 return this.returnOnFalse;
26 }
27}
28
29// executes the callback on this element and all descendants
30exports.CallbackVisitor = CallbackVisitor;
31const traverse = (options, element) => {
32 let callback;
33 let predicate;
34 if ((0, _ramdaAdjunct.isFunction)(options)) {
35 callback = options;
36 predicate = _index.isElement;
37 } else {
38 callback = (0, _ramda.pathOr)(_ramdaAdjunct.noop, ['callback'], options);
39 predicate = (0, _ramda.pathOr)(_index.isElement, ['predicate'], options);
40 }
41 const visitor = new CallbackVisitor({
42 callback,
43 predicate
44 });
45
46 // @ts-ignore
47 (0, _visitor.visit)(element, visitor);
48};
49var _default = exports.default = traverse;
Note: See TracBrowser for help on using the repository browser.