[d24f17c] | 1 | import { keyMap as keyMapBase, isElement } from '@swagger-api/apidom-core';
|
---|
| 2 |
|
---|
| 3 | // getNodeType :: Node -> String
|
---|
| 4 | export const getNodeType = element => {
|
---|
| 5 | if (!isElement(element)) {
|
---|
| 6 | return undefined;
|
---|
| 7 | }
|
---|
| 8 | return `${element.element.charAt(0).toUpperCase() + element.element.slice(1)}Element`;
|
---|
| 9 | };
|
---|
| 10 |
|
---|
| 11 | /**
|
---|
| 12 | * There are unfortunately two `LinkElement` types. One is from base namespace
|
---|
| 13 | * and the other one if from this namespace. `LinkElement` from base namespace
|
---|
| 14 | * is used extremely rarely, so it's almost always safe during traversing
|
---|
| 15 | * to assume that `LinkElement` is element from this namespace.
|
---|
| 16 | *
|
---|
| 17 | * To be 100% sure that currently visiting `LinkElement` is from this namespace
|
---|
| 18 | * use `isLinkElement` predicate from this namespace to assert for it.
|
---|
| 19 | */
|
---|
| 20 |
|
---|
| 21 | export const keyMap = {
|
---|
| 22 | CallbackElement: ['content'],
|
---|
| 23 | ComponentsElement: ['content'],
|
---|
| 24 | ContactElement: ['content'],
|
---|
| 25 | DiscriminatorElement: ['content'],
|
---|
| 26 | Encoding: ['content'],
|
---|
| 27 | Example: ['content'],
|
---|
| 28 | ExternalDocumentationElement: ['content'],
|
---|
| 29 | HeaderElement: ['content'],
|
---|
| 30 | InfoElement: ['content'],
|
---|
| 31 | LicenseElement: ['content'],
|
---|
| 32 | MediaTypeElement: ['content'],
|
---|
| 33 | OAuthFlowElement: ['content'],
|
---|
| 34 | OAuthFlowsElement: ['content'],
|
---|
| 35 | OpenApi3_0Element: ['content'],
|
---|
| 36 | OperationElement: ['content'],
|
---|
| 37 | ParameterElement: ['content'],
|
---|
| 38 | PathItemElement: ['content'],
|
---|
| 39 | PathsElement: ['content'],
|
---|
| 40 | ReferenceElement: ['content'],
|
---|
| 41 | RequestBodyElement: ['content'],
|
---|
| 42 | ResponseElement: ['content'],
|
---|
| 43 | ResponsesElement: ['content'],
|
---|
| 44 | SchemaElement: ['content'],
|
---|
| 45 | SecurityRequirementElement: ['content'],
|
---|
| 46 | SecuritySchemeElement: ['content'],
|
---|
| 47 | ServerElement: ['content'],
|
---|
| 48 | ServerVariableElement: ['content'],
|
---|
| 49 | TagElement: ['content'],
|
---|
| 50 | ...keyMapBase
|
---|
| 51 | }; |
---|