source: node_modules/@swagger-api/apidom-core/cjs/transformers/sexprs.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: 885 bytes
Line 
1"use strict";
2
3exports.__esModule = true;
4exports.default = void 0;
5var _visitor = require("../traversal/visitor.cjs");
6class SymbolicExpressionsVisitor {
7 result = '';
8 nestingLevel = 0;
9 enter(element) {
10 const {
11 element: elementName
12 } = element;
13 const capitalizedElementName = elementName.charAt(0).toUpperCase() + elementName.slice(1);
14 const indent = ' '.repeat(this.nestingLevel);
15 this.result += this.nestingLevel > 0 ? '\n' : '';
16 this.result += `${indent}(${capitalizedElementName}Element`;
17 this.nestingLevel += 1;
18 }
19 leave() {
20 this.nestingLevel -= 1;
21 this.result += ')';
22 }
23}
24
25// transforms ApiDOM into S-expressions (Symbolic Expressions)
26const sexprs = element => {
27 const visitor = new SymbolicExpressionsVisitor();
28 (0, _visitor.visit)(element, visitor);
29 return visitor.result;
30};
31var _default = exports.default = sexprs;
Note: See TracBrowser for help on using the repository browser.