source: node_modules/@swagger-api/apidom-ns-openapi-3-1/es/predicates.mjs@ 65b6638

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

Initial commit

  • Property mode set to 100644
File size: 9.8 KB
Line 
1import { createPredicate, isBooleanElement, isStringElement, toValue } from '@swagger-api/apidom-core';
2import CallbackElement from "./elements/Callback.mjs";
3import ComponentsElement from "./elements/Components.mjs";
4import ContactElement from "./elements/Contact.mjs";
5import ExampleElement from "./elements/Example.mjs";
6import ExternalDocumentationElement from "./elements/ExternalDocumentation.mjs";
7import HeaderElement from "./elements/Header.mjs";
8import InfoElement from "./elements/Info.mjs";
9import JsonSchemaDialectElement from "./elements/JsonSchemaDialect.mjs";
10import LicenseElement from "./elements/License.mjs";
11import LinkElement from "./elements/Link.mjs";
12import OpenapiElement from "./elements/Openapi.mjs";
13import OpenApi3_1Element from "./elements/OpenApi3-1.mjs";
14import OperationElement from "./elements/Operation.mjs";
15import ParameterElement from "./elements/Parameter.mjs";
16import PathItemElement from "./elements/PathItem.mjs";
17import PathsElement from "./elements/Paths.mjs";
18import ReferenceElement from "./elements/Reference.mjs";
19import RequestBodyElement from "./elements/RequestBody.mjs";
20import ResponseElement from "./elements/Response.mjs";
21import ResponsesElement from "./elements/Responses.mjs";
22import SchemaElement from "./elements/Schema.mjs";
23import SecurityRequirementElement from "./elements/SecurityRequirement.mjs";
24import ServerElement from "./elements/Server.mjs";
25import ServerVariableElement from "./elements/ServerVariable.mjs";
26import MediaTypeElement from "./elements/MediaType.mjs";
27export const isCallbackElement = createPredicate(({
28 hasBasicElementProps,
29 isElementType,
30 primitiveEq
31}) => {
32 return element => element instanceof CallbackElement || hasBasicElementProps(element) && isElementType('callback', element) && primitiveEq('object', element);
33});
34export const isComponentsElement = createPredicate(({
35 hasBasicElementProps,
36 isElementType,
37 primitiveEq
38}) => {
39 return element => element instanceof ComponentsElement || hasBasicElementProps(element) && isElementType('components', element) && primitiveEq('object', element);
40});
41export const isContactElement = createPredicate(({
42 hasBasicElementProps,
43 isElementType,
44 primitiveEq
45}) => {
46 return element => element instanceof ContactElement || hasBasicElementProps(element) && isElementType('contact', element) && primitiveEq('object', element);
47});
48export const isExampleElement = createPredicate(({
49 hasBasicElementProps,
50 isElementType,
51 primitiveEq
52}) => {
53 return element => element instanceof ExampleElement || hasBasicElementProps(element) && isElementType('example', element) && primitiveEq('object', element);
54});
55export const isExternalDocumentationElement = createPredicate(({
56 hasBasicElementProps,
57 isElementType,
58 primitiveEq
59}) => {
60 return element => element instanceof ExternalDocumentationElement || hasBasicElementProps(element) && isElementType('externalDocumentation', element) && primitiveEq('object', element);
61});
62export const isHeaderElement = createPredicate(({
63 hasBasicElementProps,
64 isElementType,
65 primitiveEq
66}) => {
67 return element => element instanceof HeaderElement || hasBasicElementProps(element) && isElementType('header', element) && primitiveEq('object', element);
68});
69export const isInfoElement = createPredicate(({
70 hasBasicElementProps,
71 isElementType,
72 primitiveEq
73}) => {
74 return element => element instanceof InfoElement || hasBasicElementProps(element) && isElementType('info', element) && primitiveEq('object', element);
75});
76export const isJsonSchemaDialectElement = createPredicate(({
77 hasBasicElementProps,
78 isElementType,
79 primitiveEq
80}) => {
81 return element => element instanceof JsonSchemaDialectElement || hasBasicElementProps(element) && isElementType('jsonSchemaDialect', element) && primitiveEq('string', element);
82});
83export const isLicenseElement = createPredicate(({
84 hasBasicElementProps,
85 isElementType,
86 primitiveEq
87}) => {
88 return element => element instanceof LicenseElement || hasBasicElementProps(element) && isElementType('license', element) && primitiveEq('object', element);
89});
90export const isLinkElement = createPredicate(({
91 hasBasicElementProps,
92 isElementType,
93 primitiveEq
94}) => {
95 return element => element instanceof LinkElement || hasBasicElementProps(element) && isElementType('link', element) && primitiveEq('object', element);
96});
97export const isOpenapiElement = createPredicate(({
98 hasBasicElementProps,
99 isElementType,
100 primitiveEq
101}) => {
102 return element => element instanceof OpenapiElement || hasBasicElementProps(element) && isElementType('openapi', element) && primitiveEq('string', element);
103});
104
105// eslint-disable-next-line @typescript-eslint/naming-convention
106export const isOpenApi3_1Element = createPredicate(({
107 hasBasicElementProps,
108 isElementType,
109 primitiveEq,
110 hasClass
111}) => {
112 return element => element instanceof OpenApi3_1Element || hasBasicElementProps(element) && isElementType('openApi3_1', element) && primitiveEq('object', element) && hasClass('api', element);
113});
114export const isOperationElement = createPredicate(({
115 hasBasicElementProps,
116 isElementType,
117 primitiveEq
118}) => {
119 return element => element instanceof OperationElement || hasBasicElementProps(element) && isElementType('operation', element) && primitiveEq('object', element);
120});
121export const isParameterElement = createPredicate(({
122 hasBasicElementProps,
123 isElementType,
124 primitiveEq
125}) => {
126 return element => element instanceof ParameterElement || hasBasicElementProps(element) && isElementType('parameter', element) && primitiveEq('object', element);
127});
128export const isPathItemElement = createPredicate(({
129 hasBasicElementProps,
130 isElementType,
131 primitiveEq
132}) => {
133 return element => element instanceof PathItemElement || hasBasicElementProps(element) && isElementType('pathItem', element) && primitiveEq('object', element);
134});
135
136/**
137 * @deprecated
138 * Determining whether a PathItemElement is external or internal is not possible by just looking
139 * at value of the $ref fixed field. The value of the $ref field needs to be resolved in runtime
140 * using the referring document as the Base URI.
141 */
142export const isPathItemElementExternal = element => {
143 if (!isPathItemElement(element)) {
144 return false;
145 }
146 if (!isStringElement(element.$ref)) {
147 return false;
148 }
149 const value = toValue(element.$ref);
150 return typeof value === 'string' && value.length > 0 && !value.startsWith('#');
151};
152export const isPathsElement = createPredicate(({
153 hasBasicElementProps,
154 isElementType,
155 primitiveEq
156}) => {
157 return element => element instanceof PathsElement || hasBasicElementProps(element) && isElementType('paths', element) && primitiveEq('object', element);
158});
159export const isReferenceElement = createPredicate(({
160 hasBasicElementProps,
161 isElementType,
162 primitiveEq
163}) => {
164 return element => element instanceof ReferenceElement || hasBasicElementProps(element) && isElementType('reference', element) && primitiveEq('object', element);
165});
166
167/**
168 * @deprecated
169 * Determining whether a ReferenceElement is external or internal is not possible by just looking
170 * at value of the $ref fixed field. The value of the $ref field needs to be resolved in runtime
171 * using the referring document as the Base URI.
172 */
173export const isReferenceElementExternal = element => {
174 if (!isReferenceElement(element)) {
175 return false;
176 }
177 if (!isStringElement(element.$ref)) {
178 return false;
179 }
180 const value = toValue(element.$ref);
181 return typeof value === 'string' && value.length > 0 && !value.startsWith('#');
182};
183export const isRequestBodyElement = createPredicate(({
184 hasBasicElementProps,
185 isElementType,
186 primitiveEq
187}) => {
188 return element => element instanceof RequestBodyElement || hasBasicElementProps(element) && isElementType('requestBody', element) && primitiveEq('object', element);
189});
190export const isResponseElement = createPredicate(({
191 hasBasicElementProps,
192 isElementType,
193 primitiveEq
194}) => {
195 return element => element instanceof ResponseElement || hasBasicElementProps(element) && isElementType('response', element) && primitiveEq('object', element);
196});
197export const isResponsesElement = createPredicate(({
198 hasBasicElementProps,
199 isElementType,
200 primitiveEq
201}) => {
202 return element => element instanceof ResponsesElement || hasBasicElementProps(element) && isElementType('responses', element) && primitiveEq('object', element);
203});
204export const isSchemaElement = createPredicate(({
205 hasBasicElementProps,
206 isElementType,
207 primitiveEq
208}) => {
209 return element => element instanceof SchemaElement || hasBasicElementProps(element) && isElementType('schema', element) && primitiveEq('object', element);
210});
211export const isBooleanJsonSchemaElement = element => {
212 return isBooleanElement(element) && element.classes.includes('boolean-json-schema');
213};
214export const isSecurityRequirementElement = createPredicate(({
215 hasBasicElementProps,
216 isElementType,
217 primitiveEq
218}) => {
219 return element => element instanceof SecurityRequirementElement || hasBasicElementProps(element) && isElementType('securityRequirement', element) && primitiveEq('object', element);
220});
221export const isServerElement = createPredicate(({
222 hasBasicElementProps,
223 isElementType,
224 primitiveEq
225}) => {
226 return element => element instanceof ServerElement || hasBasicElementProps(element) && isElementType('server', element) && primitiveEq('object', element);
227});
228export const isServerVariableElement = createPredicate(({
229 hasBasicElementProps,
230 isElementType,
231 primitiveEq
232}) => {
233 return element => element instanceof ServerVariableElement || hasBasicElementProps(element) && isElementType('serverVariable', element) && primitiveEq('object', element);
234});
235export const isMediaTypeElement = createPredicate(({
236 hasBasicElementProps,
237 isElementType,
238 primitiveEq
239}) => {
240 return element => element instanceof MediaTypeElement || hasBasicElementProps(element) && isElementType('mediaType', element) && primitiveEq('object', element);
241});
Note: See TracBrowser for help on using the repository browser.