@swagger-api/apidom-parser-adapter-json 0.91.0 → 0.92.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
3
  exports.__esModule = true;
5
4
  exports.keyMap = exports.isNode = exports.getNodeType = exports.default = void 0;
6
- var _stampit = _interopRequireDefault(require("stampit"));
7
5
  var _apidomAst = require("@swagger-api/apidom-ast");
8
6
  var _apidomCore = require("@swagger-api/apidom-core");
9
7
  const keyMap = exports.keyMap = {
@@ -35,150 +33,144 @@ const isNode = element => (0, _apidomCore.isElement)(element) || (0, _apidomAst.
35
33
 
36
34
  /* eslint-disable no-underscore-dangle */
37
35
  exports.isNode = isNode;
38
- const JsonAstVisitor = (0, _stampit.default)({
39
- props: {
40
- sourceMap: false,
41
- annotations: []
42
- },
43
- init() {
44
- /**
45
- * Private API.
46
- */
47
-
48
- this.annotation = [];
49
- const maybeAddSourceMap = (node, element) => {
50
- if (!this.sourceMap) {
51
- return;
52
- }
53
- const sourceMap = new _apidomCore.SourceMapElement();
54
- // @ts-ignore
55
- sourceMap.position = node.position;
36
+ class JsonAstVisitor {
37
+ sourceMap = false;
38
+ ParseResultElement = {
39
+ leave: element => {
40
+ // mark first-non Annotation element as result
56
41
  // @ts-ignore
57
- sourceMap.astNode = node;
58
- element.meta.set('sourceMap', sourceMap);
59
- };
60
-
61
- /**
62
- * Public API.
63
- */
42
+ const elements = element.findElements(_apidomCore.isPrimitiveElement);
43
+ if (elements.length > 0) {
44
+ const resultElement = elements[0];
45
+ resultElement.classes.push('result');
46
+ }
64
47
 
65
- this.document = function document(node) {
66
- const element = new _apidomCore.ParseResultElement();
67
- // @ts-ignore
68
- element._content = node.children;
69
- return element;
70
- };
71
- this.ParseResultElement = {
72
- leave(element) {
73
- // mark first-non Annotation element as result
74
- // @ts-ignore
75
- const elements = element.findElements(_apidomCore.isPrimitiveElement);
76
- if (elements.length > 0) {
77
- const resultElement = elements[0];
78
- resultElement.classes.push('result');
79
- }
48
+ // provide annotations
49
+ this.annotations.forEach(annotationElement => {
50
+ element.push(annotationElement);
51
+ });
52
+ this.annotations = [];
53
+ }
54
+ };
55
+ constructor() {
56
+ this.annotations = [];
57
+ }
80
58
 
81
- // provide annotations
82
- this.annotations.forEach(annotationElement => {
83
- element.push(annotationElement);
84
- });
85
- this.annotations = [];
86
- }
87
- };
88
- this.object = function object(node) {
89
- const element = new _apidomCore.ObjectElement();
90
- // @ts-ignore
91
- element._content = node.children;
92
- maybeAddSourceMap(node, element);
93
- return element;
94
- };
95
- this.property = function property(node) {
96
- const element = new _apidomCore.MemberElement();
59
+ // eslint-disable-next-line class-methods-use-this
60
+ document(node) {
61
+ const element = new _apidomCore.ParseResultElement();
62
+ // @ts-ignore
63
+ element._content = node.children;
64
+ return element;
65
+ }
66
+ object(node) {
67
+ const element = new _apidomCore.ObjectElement();
68
+ // @ts-ignore
69
+ element._content = node.children;
70
+ this.maybeAddSourceMap(node, element);
71
+ return element;
72
+ }
73
+ property(node) {
74
+ const element = new _apidomCore.MemberElement();
97
75
 
98
- // @ts-ignore
99
- element.content.key = node.key;
100
- // @ts-ignore
101
- element.content.value = node.value;
102
- maybeAddSourceMap(node, element);
76
+ // @ts-ignore
77
+ element.content.key = node.key;
78
+ // @ts-ignore
79
+ element.content.value = node.value;
80
+ this.maybeAddSourceMap(node, element);
103
81
 
104
- /**
105
- * Process possible errors here that may be present in pair node children as we're using direct field access.
106
- * There are usually 3 children here found: "key", ":", "value".
107
- */
108
- if (node.children.length > 3) {
109
- node.children.filter(child => child.type === 'error').forEach(errorNode => {
110
- this.error(errorNode, node, [], [node]);
111
- });
112
- }
113
- return element;
114
- };
115
- this.key = function key(node) {
116
- const element = new _apidomCore.StringElement(node.value);
117
- maybeAddSourceMap(node, element);
118
- return element;
119
- };
120
- this.array = function array(node) {
121
- const element = new _apidomCore.ArrayElement();
122
- // @ts-ignore
123
- element._content = node.children;
124
- maybeAddSourceMap(node, element);
125
- return element;
126
- };
127
- this.string = function string(node) {
128
- const element = new _apidomCore.StringElement(node.value);
129
- maybeAddSourceMap(node, element);
130
- return element;
131
- };
132
- this.number = function number(node) {
133
- const element = new _apidomCore.NumberElement(Number(node.value));
134
- maybeAddSourceMap(node, element);
135
- return element;
136
- };
82
+ /**
83
+ * Process possible errors here that may be present in pair node children as we're using direct field access.
84
+ * There are usually 3 children here found: "key", ":", "value".
85
+ */
86
+ if (node.children.length > 3) {
87
+ node.children
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
+ .filter(child => child.type === 'error')
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
91
+ .forEach(errorNode => {
92
+ this.error(errorNode, node, [], [node]);
93
+ });
94
+ }
95
+ return element;
96
+ }
97
+ key(node) {
98
+ const element = new _apidomCore.StringElement(node.value);
99
+ this.maybeAddSourceMap(node, element);
100
+ return element;
101
+ }
102
+ array(node) {
103
+ const element = new _apidomCore.ArrayElement();
104
+ // @ts-ignore
105
+ element._content = node.children;
106
+ this.maybeAddSourceMap(node, element);
107
+ return element;
108
+ }
109
+ string(node) {
110
+ const element = new _apidomCore.StringElement(node.value);
111
+ this.maybeAddSourceMap(node, element);
112
+ return element;
113
+ }
114
+ number(node) {
115
+ const element = new _apidomCore.NumberElement(Number(node.value));
116
+ this.maybeAddSourceMap(node, element);
117
+ return element;
118
+ }
137
119
 
138
- // eslint-disable-next-line @typescript-eslint/naming-convention
139
- this.null = function _null(node) {
140
- const element = new _apidomCore.NullElement();
141
- maybeAddSourceMap(node, element);
142
- return element;
143
- };
120
+ // eslint-disable-next-line @typescript-eslint/naming-convention
121
+ null(node) {
122
+ const element = new _apidomCore.NullElement();
123
+ this.maybeAddSourceMap(node, element);
124
+ return element;
125
+ }
144
126
 
145
- // eslint-disable-next-line @typescript-eslint/naming-convention
146
- this.true = function _true(node) {
147
- const element = new _apidomCore.BooleanElement(true);
148
- maybeAddSourceMap(node, element);
149
- return element;
150
- };
127
+ // eslint-disable-next-line @typescript-eslint/naming-convention
128
+ true(node) {
129
+ const element = new _apidomCore.BooleanElement(true);
130
+ this.maybeAddSourceMap(node, element);
131
+ return element;
132
+ }
151
133
 
152
- // eslint-disable-next-line @typescript-eslint/naming-convention
153
- this.false = function _false(node) {
154
- const element = new _apidomCore.BooleanElement(false);
155
- maybeAddSourceMap(node, element);
156
- return element;
157
- };
158
- this.literal = function literal(node) {
159
- if (node.isMissing) {
160
- const message = `(Missing ${node.value})`;
161
- const element = new _apidomCore.AnnotationElement(message);
162
- element.classes.push('warning');
163
- maybeAddSourceMap(node, element);
164
- this.annotations.push(element);
165
- }
166
- return null;
167
- };
168
- this.error = function error(node, key, parent, path) {
169
- const message = node.isUnexpected ? `(Unexpected ${node.value})` : `(Error ${node.value})`;
134
+ // eslint-disable-next-line @typescript-eslint/naming-convention
135
+ false(node) {
136
+ const element = new _apidomCore.BooleanElement(false);
137
+ this.maybeAddSourceMap(node, element);
138
+ return element;
139
+ }
140
+ literal(node) {
141
+ if (node.isMissing) {
142
+ const message = `(Missing ${node.value})`;
170
143
  const element = new _apidomCore.AnnotationElement(message);
171
- element.classes.push('error');
172
- maybeAddSourceMap(node, element);
173
- if (path.length === 0) {
174
- // no document to visit, only error is present in CST
175
- const parseResultElement = new _apidomCore.ParseResultElement();
176
- parseResultElement.push(element);
177
- return parseResultElement;
178
- }
144
+ element.classes.push('warning');
145
+ this.maybeAddSourceMap(node, element);
179
146
  this.annotations.push(element);
180
- return null;
181
- };
147
+ }
148
+ return null;
149
+ }
150
+ error(node, key, parent, path) {
151
+ const message = node.isUnexpected ? `(Unexpected ${node.value})` : `(Error ${node.value})`;
152
+ const element = new _apidomCore.AnnotationElement(message);
153
+ element.classes.push('error');
154
+ this.maybeAddSourceMap(node, element);
155
+ if (path.length === 0) {
156
+ // no document to visit, only error is present in CST
157
+ const parseResultElement = new _apidomCore.ParseResultElement();
158
+ parseResultElement.push(element);
159
+ return parseResultElement;
160
+ }
161
+ this.annotations.push(element);
162
+ return null;
163
+ }
164
+ maybeAddSourceMap(node, element) {
165
+ if (!this.sourceMap) {
166
+ return;
167
+ }
168
+ const sourceMap = new _apidomCore.SourceMapElement();
169
+ // @ts-ignore
170
+ sourceMap.position = node.position;
171
+ // @ts-ignore
172
+ sourceMap.astNode = node;
173
+ element.meta.set('sourceMap', sourceMap);
182
174
  }
183
- });
175
+ }
184
176
  var _default = exports.default = JsonAstVisitor;