Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions packages/apidom-ast/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,18 @@ along with [formatters for canonical block scalars](https://github.com/swagger-a

## Traversal

`@swagger-api/apidom-ast` comes with its own traversal algorithm convenient for traversing [CST](https://en.wikipedia.org/wiki/Parse_tree) or [AST](https://en.wikipedia.org/wiki/AST).
`@swagger-api/apidom-ast` comes with its own traversal algorithm convenient for traversing [CST](https://en.wikipedia.org/wiki/Parse_tree) or [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree).

### visit

[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L214) will walk through an CST/AST using a depth first traversal, calling
[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L442) will walk through an CST/AST using a depth first traversal, calling
the visitor's enter function at each node in the traversal, and calling the
leave function after visiting that node and all of its child nodes.

By returning different values from the enter and leave functions, the
behavior of the visitor can be altered, including skipping over a sub-tree of
the Node (by returning false), editing the Node Tree by returning a value or null
to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L64).
to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L52).

When using `visit` to edit an Node Tree, the original Node Tree will not be modified, and
a new version of the Node Tree with the changes applied will be returned from the
Expand Down Expand Up @@ -90,9 +90,9 @@ Configuration option | Type | Default | Description
<a name="keyMap"></a>`keyMap` | `Object` | `null` | Defines how nodes map to it's children.
<a name="state"></a>`state` | `Object` | `{}` | Additional state that is provided to the visitor. State is merged inti visitor object in following manner: `Object.assign(visitor, state)`
<a name="breakSymbol"></a>`breakSymbol` | `Object` | `{}` | Defines a symbol that can break the traversal. Symbol is compared by strict equality (`===`).
<a name="visitFnGetter"></a>`visitFnGetter` | `Function` | [getVisitFn](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L33) | Function that extract appropriate method from the visitor given specific Node type.
<a name="nodeTypeGetter"></a>`nodeTypeGetter` | `Function` | [getNodeType](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L67) | Node type extractor function.
<a name="nodePredicate"><a/>`nodePredicate` | `Function` | [isNode](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts#L70) | Predicate that checks if particular Node can be really considered a Node.
<a name="visitFnGetter"></a>`visitFnGetter` | `Function` | [getVisitFn](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L12) | Function that extract appropriate method from the visitor given specific Node type.
<a name="nodeTypeGetter"></a>`nodeTypeGetter` | `Function` | [getNodeType](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L57) | Node type extractor function.
<a name="nodePredicate"><a/>`nodePredicate` | `Function` | [isNode](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L62) | Predicate that checks if particular Node can be really considered a Node.
<a name="detectCycles"><a/>`detectCycles` | `Boolean` | `true` | If the structure that needs to be traversed is represented as directed cyclic graph, `visit` will skip Nodes that have already been traversed to avoid infinite recursion.


8 changes: 4 additions & 4 deletions packages/apidom-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin

## Base namespace

Base namespace consists of [four higher order elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core/src/elements) implemented on top
Base namespace consists of [three higher order elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-core/src/elements) implemented on top
of [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives).

```js
Expand Down Expand Up @@ -578,14 +578,14 @@ objectElement.getMember('info').value.id; // 'OnReGGrO7fMd9ztacvGfwGbOdGKuOFLiQQ

### visit

[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/traversal/visitor.ts#L104-L103) will walk through an AST using a depth first traversal, calling
[visit](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/traversal/visitor.ts#L128) will walk through an AST using a depth first traversal, calling
the visitor's enter function at each node in the traversal, and calling the
leave function after visiting that node and all of its child nodes.

By returning different values from the enter and leave functions, the
behavior of the visitor can be altered, including skipping over a sub-tree of
the ApiDOM (by returning false), editing the ApiDOM by returning a value or null
to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-core/src/index.ts#L52).
to remove the value, or to stop the whole traversal by returning [BREAK](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts#L52).

When using `visit` to edit an ApiDOM, the original ApiDOM will not be modified, and
a new version of the ApiDOM with the changes applied will be returned from the
Expand All @@ -604,7 +604,7 @@ const element = new ObjectElement({ a: 1 });
const newElement = visit(element, visitor); // => ObjectElement<{a: 2}>
```

This function originally comes from [@swagger-api/apidom-ast package](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/visitor.ts)
This function originally comes from [@swagger-api/apidom-ast package](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/src/traversal/visitor.ts)
and is originally designed to work with [CST](https://en.wikipedia.org/wiki/Parse_tree). `apidom-core` package
imports it, specializes it to work with ApiDOM and re-export it.

Expand Down
2 changes: 1 addition & 1 deletion packages/apidom-ns-api-design-systems/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ isMainElement(mainElement); // => true
## Traversal

Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts) and and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts).
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts#L16) and and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-api-design-systems/src/traversal/visitor.ts#L6).
To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).

```js
Expand Down
2 changes: 1 addition & 1 deletion packages/apidom-ns-arazzo-1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ isArazzoSpecification1Element(arazzoElement); // => true
## Traversal

Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts).
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts#L18) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-arazzo-1/src/traversal/visitor.ts#L6).
To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).

```js
Expand Down
74 changes: 37 additions & 37 deletions packages/apidom-ns-asyncapi-2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin
## AsyncApi 2.x.y namespace

AsyncApi 2.x.y namespace consists of [number of elements](https://github.com/swagger-api/apidom/tree/main/packages/apidom-ns-asyncapi-2/src/elements) implemented on top
of [primitive ones](https://github.com/refractproject/minim/tree/main/lib/primitives).
of [primitive ones](https://github.com/refractproject/minim/tree/master/lib/primitives).

```js
import { createNamespace } from '@swagger-api/apidom-core';
Expand Down Expand Up @@ -62,7 +62,7 @@ isAsyncApi2Element(asyncApiElement); // => true
## Traversal

Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L4).
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L16) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-asyncapi-2/src/traversal/visitor.ts#L6).
To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).

```js
Expand Down Expand Up @@ -193,41 +193,41 @@ Only fully implemented specification objects should be checked here.

### Specification Objects

- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SObject)
- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SVersionString)
- [x] [Identifier](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString)
- [x] [Info Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#A2SIdString)
- [x] [Contact Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#contactObject)
- [x] [License Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#license-object)
- [x] [Servers Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serversObject)
- [x] [Server Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverObject)
- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverVariableObject)
- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#defaultContentTypeString)
- [x] [Channels Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelsObject)
- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channelItemObject)
- [x] [Operation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationObject)
- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operationTraitObject)
- [x] [Message Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageObject)
- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageTraitObject)
- [x] [Message Example Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageExampleObject)
- [x] [Tags Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tagsObject)
- [x] [Tag Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#tag-object)
- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#externalDocumentationObject)
- [x] [Components Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#componentsObject)
- [x] [Reference Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#referenceObject)
- [x] [Schema Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#schemaObject)
- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#securitySchemeObject)
- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#security-requirement-object)
- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flows-object)
- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#oauth-flow-object)
- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#serverBindingsObject)
- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parametersObject)
- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#parameterObject)
- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#channel-bindings-object)
- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#operation-bindings-object)
- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#messageBindingsObject)
- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#correlationIdObject)
- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md#specificationExtensions)
- [x] [AsyncAPI Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#asyncapi-object)
- [x] [AsyncAPI Version String](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#asyncapi-version-string)
- [x] [Identifier](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#identifier)
- [x] [Info Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#info-object)
- [x] [Contact Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#contact-object)
- [x] [License Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#license-object)
- [x] [Servers Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#servers-object)
- [x] [Server Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-object)
- [x] [Server Variable Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-variable-object)
- [x] [Default Content Type](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#default-content-type)
- [x] [Channels Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channels-object)
- [x] [Channel Item Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channel-item-object)
- [x] [Operation Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-object)
- [x] [Operation Trait Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-trait-object)
- [x] [Message Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-object)
- [x] [Message Trait Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-trait-object)
- [x] [Message Example Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#-message-example-object)
- [x] [Tags Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#tags-object)
- [x] [Tag Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#tag-object)
- [x] [External Documentation Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#external-documentation-object)
- [x] [Components Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#components-object)
- [x] [Reference Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#reference-object)
- [x] [Schema Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#schema-object)
- [x] [Security Scheme Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#security-scheme-object)
- [x] [Security Requirement Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#security-requirement-object)
- [x] [OAuth Flows Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#oauth-flows-object)
- [x] [OAuth Flow Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#oauth-flow-object)
- [x] [Server Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#server-bindings-object)
- [x] [Parameters Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#parameters-object)
- [x] [Parameter Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#parameter-object)
- [x] [Channel Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#channel-bindings-object)
- [x] [Operation Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#operation-bindings-object)
- [x] [Message Bindings Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#message-bindings-object)
- [x] [Correlation ID Object](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#correlation-id-object)
- [x] [Specification Extension](https://github.com/asyncapi/spec/blob/v2.6.0/spec/asyncapi.md#specification-extensions)

### Binding Objects

Expand Down
2 changes: 1 addition & 1 deletion packages/apidom-ns-json-schema-2019-09/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true
## Traversal

Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L4).
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L8) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2019-09/src/traversal/visitor.ts#L3).
To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).

```js
Expand Down
2 changes: 1 addition & 1 deletion packages/apidom-ns-json-schema-2020-12/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ isJSONSchemaElement(jsonSchemaElement); // => true
## Traversal

Traversing ApiDOM in this namespace is possible by using `visit` function from `apidom-core` package.
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L11) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L4).
This package comes with its own [keyMap](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L7) and [nodeTypeGetter](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ns-json-schema-2020-12/src/traversal/visitor.ts#L3).
To learn more about these `visit` configuration options please refer to [@swagger-api/apidom-ast documentation](https://github.com/swagger-api/apidom/blob/main/packages/apidom-ast/README.md#visit).

```js
Expand Down
Loading