@speclynx/apidom-ns-openapi-2 1.12.1 → 2.0.1
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.
- package/CHANGELOG.md +23 -0
- package/NOTICE +16 -7
- package/README.md +18 -13
- package/dist/apidom-ns-openapi-2.browser.js +9354 -13260
- package/dist/apidom-ns-openapi-2.browser.min.js +1 -1
- package/package.json +10 -9
- package/src/elements/Contact.cjs +2 -2
- package/src/elements/Contact.mjs +1 -1
- package/src/elements/Definitions.cjs +2 -2
- package/src/elements/Definitions.mjs +1 -1
- package/src/elements/Example.cjs +2 -2
- package/src/elements/Example.mjs +1 -1
- package/src/elements/ExternalDocumentation.cjs +2 -2
- package/src/elements/ExternalDocumentation.mjs +1 -1
- package/src/elements/Header.cjs +10 -10
- package/src/elements/Header.mjs +10 -10
- package/src/elements/Headers.cjs +2 -2
- package/src/elements/Headers.mjs +1 -1
- package/src/elements/Info.cjs +2 -2
- package/src/elements/Info.mjs +1 -1
- package/src/elements/Items.cjs +10 -10
- package/src/elements/Items.mjs +10 -10
- package/src/elements/License.cjs +2 -2
- package/src/elements/License.mjs +1 -1
- package/src/elements/Operation.cjs +3 -3
- package/src/elements/Operation.mjs +1 -1
- package/src/elements/Parameter.cjs +11 -11
- package/src/elements/Parameter.mjs +11 -11
- package/src/elements/ParametersDefinitions.cjs +2 -2
- package/src/elements/ParametersDefinitions.mjs +1 -1
- package/src/elements/PathItem.cjs +23 -23
- package/src/elements/PathItem.mjs +22 -22
- package/src/elements/Paths.cjs +2 -2
- package/src/elements/Paths.mjs +1 -1
- package/src/elements/Reference.cjs +2 -2
- package/src/elements/Reference.mjs +1 -1
- package/src/elements/Response.cjs +2 -2
- package/src/elements/Response.mjs +1 -1
- package/src/elements/Responses.cjs +2 -2
- package/src/elements/Responses.mjs +1 -1
- package/src/elements/ResponsesDefinitions.cjs +2 -2
- package/src/elements/ResponsesDefinitions.mjs +1 -1
- package/src/elements/Schema.cjs +43 -8
- package/src/elements/Schema.mjs +43 -9
- package/src/elements/Scopes.cjs +2 -2
- package/src/elements/Scopes.mjs +1 -1
- package/src/elements/SecurityDefinitions.cjs +2 -2
- package/src/elements/SecurityDefinitions.mjs +1 -1
- package/src/elements/SecurityRequirement.cjs +2 -2
- package/src/elements/SecurityRequirement.mjs +1 -1
- package/src/elements/SecurityScheme.cjs +2 -2
- package/src/elements/SecurityScheme.mjs +1 -1
- package/src/elements/Swagger.cjs +2 -2
- package/src/elements/Swagger.mjs +1 -1
- package/src/elements/SwaggerVersion.cjs +2 -2
- package/src/elements/SwaggerVersion.mjs +1 -1
- package/src/elements/Tag.cjs +2 -2
- package/src/elements/Tag.mjs +1 -1
- package/src/elements/Xml.cjs +2 -2
- package/src/elements/Xml.mjs +1 -1
- package/src/elements/nces/OperationConsumes.cjs +2 -2
- package/src/elements/nces/OperationConsumes.mjs +1 -1
- package/src/elements/nces/OperationParameters.cjs +2 -2
- package/src/elements/nces/OperationParameters.mjs +1 -1
- package/src/elements/nces/OperationProduces.cjs +2 -2
- package/src/elements/nces/OperationProduces.mjs +1 -1
- package/src/elements/nces/OperationSchemes.cjs +2 -2
- package/src/elements/nces/OperationSchemes.mjs +1 -1
- package/src/elements/nces/OperationSecurity.cjs +2 -2
- package/src/elements/nces/OperationSecurity.mjs +1 -1
- package/src/elements/nces/OperationTags.cjs +2 -2
- package/src/elements/nces/OperationTags.mjs +1 -1
- package/src/elements/nces/PathItemParameters.cjs +2 -2
- package/src/elements/nces/PathItemParameters.mjs +1 -1
- package/src/elements/nces/SwaggerConsumes.cjs +2 -2
- package/src/elements/nces/SwaggerConsumes.mjs +1 -1
- package/src/elements/nces/SwaggerProduces.cjs +2 -2
- package/src/elements/nces/SwaggerProduces.mjs +1 -1
- package/src/elements/nces/SwaggerSchemes.cjs +2 -2
- package/src/elements/nces/SwaggerSchemes.mjs +1 -1
- package/src/elements/nces/SwaggerSecurity.cjs +2 -2
- package/src/elements/nces/SwaggerSecurity.mjs +1 -1
- package/src/elements/nces/SwaggerTags.cjs +2 -2
- package/src/elements/nces/SwaggerTags.mjs +1 -1
- package/src/index.cjs +65 -45
- package/src/index.mjs +6 -5
- package/src/namespace.mjs +2 -2
- package/src/predicates.cjs +54 -190
- package/src/predicates.mjs +27 -190
- package/src/refractor/index.cjs +279 -17
- package/src/refractor/index.mjs +251 -16
- package/src/refractor/inspect.cjs +157 -0
- package/src/refractor/inspect.mjs +126 -0
- package/src/refractor/plugins/replace-empty-element.cjs +20 -14
- package/src/refractor/plugins/replace-empty-element.mjs +14 -8
- package/src/refractor/predicates.cjs +3 -2
- package/src/refractor/predicates.mjs +2 -1
- package/src/refractor/specification.cjs +41 -12
- package/src/refractor/specification.mjs +41 -12
- package/src/refractor/toolbox.cjs +8 -3
- package/src/refractor/toolbox.mjs +6 -2
- package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
- package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
- package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +4 -4
- package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -4
- package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
- package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
- package/src/refractor/visitors/Visitor.cjs +10 -8
- package/src/refractor/visitors/Visitor.mjs +11 -9
- package/src/refractor/visitors/generics/AlternatingVisitor.cjs +3 -3
- package/src/refractor/visitors/generics/AlternatingVisitor.mjs +3 -3
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +10 -7
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +9 -6
- package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +13 -6
- package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +13 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +9 -6
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -5
- package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/HostVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/HostVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +5 -10
- package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +6 -10
- package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/bases.cjs +72 -0
- package/src/refractor/visitors/open-api-2/bases.mjs +67 -0
- package/src/refractor/visitors/open-api-2/contact/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/contact/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/definitions/index.cjs +5 -12
- package/src/refractor/visitors/open-api-2/definitions/index.mjs +5 -11
- package/src/refractor/visitors/open-api-2/example/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/example/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/header/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/header/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/headers/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/headers/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/info/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/info/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/items/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/items/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/license/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/license/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +5 -11
- package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +5 -10
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +5 -4
- package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +4 -3
- package/src/refractor/visitors/open-api-2/operation/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/operation/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/parameter/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/parameter/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/path-item/index.cjs +8 -14
- package/src/refractor/visitors/open-api-2/path-item/index.mjs +7 -12
- package/src/refractor/visitors/open-api-2/paths/index.cjs +6 -13
- package/src/refractor/visitors/open-api-2/paths/index.mjs +6 -12
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +2 -3
- package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +2 -3
- package/src/refractor/visitors/open-api-2/reference/index.cjs +6 -13
- package/src/refractor/visitors/open-api-2/reference/index.mjs +5 -11
- package/src/refractor/visitors/open-api-2/response/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/response/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +6 -12
- package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +6 -11
- package/src/refractor/visitors/open-api-2/responses/index.cjs +8 -14
- package/src/refractor/visitors/open-api-2/responses/index.mjs +8 -13
- package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +9 -15
- package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +8 -13
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +3 -4
- package/src/refractor/visitors/open-api-2/schema/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/schema/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/scopes/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/scopes/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/tag/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/tag/index.mjs +2 -7
- package/src/refractor/visitors/open-api-2/xml/index.cjs +2 -8
- package/src/refractor/visitors/open-api-2/xml/index.mjs +2 -7
- package/types/apidom-ns-openapi-2.d.ts +541 -565
- package/src/refractor/registration.cjs +0 -87
- package/src/refractor/registration.mjs +0 -56
- package/src/traversal/visitor.cjs +0 -56
- package/src/traversal/visitor.mjs +0 -53
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.1](https://github.com/speclynx/apidom/compare/v2.0.0...v2.0.1) (2026-01-14)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
|
|
9
|
+
|
|
10
|
+
# [2.0.0](https://github.com/speclynx/apidom/compare/v1.12.2...v2.0.0) (2026-01-14)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- limit source maps memory consuption ([#20](https://github.com/speclynx/apidom/issues/20)) ([4a0574f](https://github.com/speclynx/apidom/commit/4a0574fd6d466be7c33c8a5871baacd384918d22))
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- apply innovations learned during last 3 years ([#11](https://github.com/speclynx/apidom/issues/11)) ([cfdbbfc](https://github.com/speclynx/apidom/commit/cfdbbfc2721b0dadc77eeba31dd4e8768c078d22))
|
|
19
|
+
|
|
20
|
+
### BREAKING CHANGES
|
|
21
|
+
|
|
22
|
+
- source maps have been completely rewritten
|
|
23
|
+
- breaking changes introduced to every package public API
|
|
24
|
+
|
|
25
|
+
## [1.12.2](https://github.com/speclynx/apidom/compare/v1.12.1...v1.12.2) (2025-12-23)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
|
|
28
|
+
|
|
6
29
|
## [1.12.1](https://github.com/speclynx/apidom/compare/v1.12.0...v1.12.1) (2025-12-23)
|
|
7
30
|
|
|
8
31
|
**Note:** Version bump only for package @speclynx/apidom-ns-openapi-2
|
package/NOTICE
CHANGED
|
@@ -5,11 +5,6 @@ This distribution includes modifications by SpecLynx.
|
|
|
5
5
|
All such modifications are licensed under the Apache License, Version 2.0.
|
|
6
6
|
A copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt`.
|
|
7
7
|
|
|
8
|
-
ApiDOM
|
|
9
|
-
Copyright 2020 SmartBear Software Inc.
|
|
10
|
-
ApiDOM is licensed under Apache 2.0 license.
|
|
11
|
-
Copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt` file.
|
|
12
|
-
|
|
13
8
|
json-schema-ref-parser
|
|
14
9
|
Copyright (c) 2015 James Messinger
|
|
15
10
|
File packages/apidom-reference/src/util/url.ts (the file) was originally created under MIT license in https://github.com/APIDevTools/json-schema-ref-parser repository.
|
|
@@ -18,8 +13,8 @@ Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
|
|
|
18
13
|
|
|
19
14
|
graphql-js
|
|
20
15
|
Copyright (c) GraphQL Contributors
|
|
21
|
-
File packages/apidom-
|
|
22
|
-
|
|
16
|
+
File packages/apidom-traverse/src/traversal.ts (the file) was originally inspired by https://github.com/graphql/graphql-js repository.
|
|
17
|
+
All modifications are licensed under Apache 2.0 License.
|
|
23
18
|
Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
|
|
24
19
|
|
|
25
20
|
babel-plugin-add-import-extension
|
|
@@ -54,6 +49,20 @@ Copyright (c) 2012 James Halliday, Josh Duff, and other contributors
|
|
|
54
49
|
Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
|
|
55
50
|
All modifications are licensed under Apache 2.0 License.
|
|
56
51
|
|
|
52
|
+
ApiDOM
|
|
53
|
+
Copyright 2020 SmartBear Software Inc.
|
|
54
|
+
ApiDOM is licensed under Apache 2.0 license.
|
|
55
|
+
Copy of the Apache 2.0 license can be found in `LICENSES/Apache-2.0.txt` file.
|
|
56
|
+
|
|
57
|
+
minim
|
|
58
|
+
Copyright (c) 2014 Stephen Mizell
|
|
59
|
+
The apidom-datamodel package contains code originally created under the MIT
|
|
60
|
+
License as part of the Minim project (https://github.com/refractproject/minim).
|
|
61
|
+
This code has been copied into this project and modified.
|
|
62
|
+
The original portions remain licensed under the MIT License. Our modifications
|
|
63
|
+
to that code are licensed under the Apache License 2.0.
|
|
64
|
+
Copy of the MIT license can be found in `LICENSES/MIT.txt` file.
|
|
65
|
+
|
|
57
66
|
---
|
|
58
67
|
|
|
59
68
|
If the SPDX-FileCopyrightText and SPDX-License-Identifier tags are not present in the file,
|
package/README.md
CHANGED
|
@@ -15,20 +15,21 @@ You can install this package via [npm CLI](https://docs.npmjs.com/cli) by runnin
|
|
|
15
15
|
## OpenAPI 2.0 namespace
|
|
16
16
|
|
|
17
17
|
OpenAPI 2.0 namespace consists of [number of elements](https://github.com/speclynx/apidom/tree/main/packages/apidom-ns-openapi-2/src/elements) implemented on top
|
|
18
|
-
of [primitive ones](https://github.com/
|
|
18
|
+
of [primitive ones](https://github.com/speclynx/apidom/tree/main/packages/apidom-datamodel/src/primitives).
|
|
19
19
|
|
|
20
20
|
```js
|
|
21
|
-
import {
|
|
21
|
+
import { Namespace } from '@speclynx/apidom-datamodel';
|
|
22
22
|
import openApi2Namespace from '@speclynx/apidom-ns-openapi-2';
|
|
23
23
|
|
|
24
|
-
const namespace =
|
|
24
|
+
const namespace = new Namespace();
|
|
25
|
+
namespace.use(openApi2Namespace);
|
|
25
26
|
|
|
26
27
|
const objectElement = new namespace.elements.Object();
|
|
27
28
|
const swaggerElement = new namespace.elements.Swagger();
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
When namespace instance is created in this way,
|
|
31
|
-
|
|
31
|
+
When a namespace instance is created in this way, calling `use()` with the namespace plugin
|
|
32
|
+
will extend the base namespace with the OpenAPI 2.0 elements.
|
|
32
33
|
|
|
33
34
|
Elements from the namespace can also be used directly by importing them.
|
|
34
35
|
|
|
@@ -54,23 +55,24 @@ isSwaggerElement(swaggerElement); // => true
|
|
|
54
55
|
|
|
55
56
|
## Traversal
|
|
56
57
|
|
|
57
|
-
Traversing ApiDOM in this namespace is possible by using `
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
Traversing ApiDOM in this namespace is possible by using `traverse` function from `@speclynx/apidom-traverse` package.
|
|
59
|
+
`traverse` uses a Path-based visitor API where visitor methods receive a `Path` object,
|
|
60
|
+
and the actual element is accessed via `path.node`.
|
|
60
61
|
|
|
61
62
|
```js
|
|
62
|
-
import {
|
|
63
|
-
import { SwaggerElement
|
|
63
|
+
import { traverse } from '@speclynx/apidom-traverse';
|
|
64
|
+
import { SwaggerElement } from '@speclynx/apidom-ns-openapi-2';
|
|
64
65
|
|
|
65
66
|
const element = new SwaggerElement();
|
|
66
67
|
|
|
67
68
|
const visitor = {
|
|
68
|
-
SwaggerElement(
|
|
69
|
+
SwaggerElement(path) {
|
|
70
|
+
const swaggerElement = path.node;
|
|
69
71
|
console.dir(swaggerElement);
|
|
70
72
|
},
|
|
71
73
|
};
|
|
72
74
|
|
|
73
|
-
|
|
75
|
+
traverse(element, visitor);
|
|
74
76
|
```
|
|
75
77
|
|
|
76
78
|
## Refractors
|
|
@@ -110,6 +112,8 @@ InfoElement.refract(objectElement); // => InfoElement({ title = 'my title', desc
|
|
|
110
112
|
### Refractor plugins
|
|
111
113
|
|
|
112
114
|
Refractors can accept plugins as a second argument of refract static method.
|
|
115
|
+
Plugin visitors use the Path-based API where visitor methods receive a `Path` object,
|
|
116
|
+
and the actual element is accessed via `path.node`.
|
|
113
117
|
|
|
114
118
|
```js
|
|
115
119
|
import { ObjectElement } from '@speclynx/apidom-core';
|
|
@@ -127,7 +131,8 @@ const plugin = ({ predicates, namespace }) => ({
|
|
|
127
131
|
console.dir('runs before traversal');
|
|
128
132
|
},
|
|
129
133
|
visitor: {
|
|
130
|
-
InfoElement(
|
|
134
|
+
InfoElement(path) {
|
|
135
|
+
const infoElement = path.node;
|
|
131
136
|
infoElement.version = '2.0.0';
|
|
132
137
|
},
|
|
133
138
|
},
|