@kubb/adapter-oas 5.0.0-beta.4 → 5.0.0-beta.40
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/README.md +100 -0
- package/dist/index.cjs +900 -311
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +52 -69
- package/dist/index.js +902 -310
- package/dist/index.js.map +1 -1
- package/extension.yaml +144 -57
- package/package.json +6 -4
- package/src/adapter.bench.ts +64 -0
- package/src/adapter.ts +143 -48
- package/src/constants.ts +8 -0
- package/src/dialect.ts +38 -0
- package/src/discriminator.ts +31 -47
- package/src/factory.ts +38 -12
- package/src/index.ts +2 -2
- package/src/parser.ts +233 -137
- package/src/refs.ts +31 -5
- package/src/resolvers.ts +77 -38
- package/src/schemaDiagnostics.ts +76 -0
- package/src/stream.ts +278 -0
- package/src/types.ts +34 -11
- /package/dist/{chunk--u3MIqq1.js → chunk-C0LytTxp.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://kubb.dev" target="_blank" rel="noopener noreferrer">
|
|
3
|
+
<img src="https://kubb.dev/og.png" alt="Kubb banner">
|
|
4
|
+
</a>
|
|
5
|
+
|
|
6
|
+
[![npm version][npm-version-src]][npm-version-href]
|
|
7
|
+
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
8
|
+
[![Coverage][coverage-src]][coverage-href]
|
|
9
|
+
[![License][license-src]][license-href]
|
|
10
|
+
[![Sponsors][sponsors-src]][sponsors-href]
|
|
11
|
+
|
|
12
|
+
<h4>
|
|
13
|
+
<a href="https://kubb.dev" target="_blank">Documentation</a>
|
|
14
|
+
<span> · </span>
|
|
15
|
+
<a href="https://github.com/kubb-labs/kubb/issues/" target="_blank">Report Bug</a>
|
|
16
|
+
<span> · </span>
|
|
17
|
+
<a href="https://github.com/kubb-labs/kubb/issues/" target="_blank">Request Feature</a>
|
|
18
|
+
</h4>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<br />
|
|
22
|
+
|
|
23
|
+
# @kubb/adapter-oas
|
|
24
|
+
|
|
25
|
+
### OpenAPI and Swagger adapter for Kubb
|
|
26
|
+
|
|
27
|
+
Parses and validates Swagger 2.0, OpenAPI 3.0, and OpenAPI 3.1 specifications and transforms them into a `@kubb/ast` `RootNode` for downstream code generation plugins.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @kubb/adapter-oas
|
|
33
|
+
# or
|
|
34
|
+
pnpm add @kubb/adapter-oas
|
|
35
|
+
# or
|
|
36
|
+
npm install @kubb/adapter-oas
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
Use `adapterOas` inside your `kubb.config.ts`:
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
import { defineConfig } from 'kubb'
|
|
45
|
+
import { adapterOas } from '@kubb/adapter-oas'
|
|
46
|
+
|
|
47
|
+
export default defineConfig({
|
|
48
|
+
input: {
|
|
49
|
+
path: './openapi.yaml',
|
|
50
|
+
},
|
|
51
|
+
output: {
|
|
52
|
+
path: './src/gen',
|
|
53
|
+
},
|
|
54
|
+
adapters: [adapterOas()],
|
|
55
|
+
})
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## API
|
|
59
|
+
|
|
60
|
+
### `adapterOas(options?)`
|
|
61
|
+
|
|
62
|
+
Creates the OAS adapter instance. Pass it in the `adapters` array of `defineConfig`.
|
|
63
|
+
|
|
64
|
+
### `mergeDocuments(documents)`
|
|
65
|
+
|
|
66
|
+
Merges multiple OpenAPI documents into a single document before parsing.
|
|
67
|
+
|
|
68
|
+
### Types
|
|
69
|
+
|
|
70
|
+
All OpenAPI types (`Document`, `Operation`, `SchemaObject`, `HttpMethod`, etc.) are re-exported from this package.
|
|
71
|
+
|
|
72
|
+
## Supporting Kubb
|
|
73
|
+
|
|
74
|
+
Kubb is an open source project, and its development is funded entirely by sponsors. If you would like to become a sponsor, please consider:
|
|
75
|
+
|
|
76
|
+
- [Become a Sponsor on GitHub](https://github.com/sponsors/stijnvanhulle)
|
|
77
|
+
- [See sponsorship tiers and our sponsors](https://kubb.dev/sponsors)
|
|
78
|
+
|
|
79
|
+
<p align="center">
|
|
80
|
+
<a href="https://github.com/sponsors/stijnvanhulle">
|
|
81
|
+
<img src="https://raw.githubusercontent.com/stijnvanhulle/sponsors/main/sponsors.svg" alt="My sponsors" />
|
|
82
|
+
</a>
|
|
83
|
+
</p>
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
[MIT](https://github.com/kubb-labs/kubb/blob/main/licenses/LICENSE-MIT)
|
|
88
|
+
|
|
89
|
+
<!-- Badges -->
|
|
90
|
+
|
|
91
|
+
[npm-version-src]: https://img.shields.io/npm/v/@kubb/adapter-oas?flat&colorA=18181B&colorB=f58517
|
|
92
|
+
[npm-version-href]: https://npmjs.com/package/@kubb/adapter-oas
|
|
93
|
+
[npm-downloads-src]: https://img.shields.io/npm/dm/@kubb/adapter-oas?flat&colorA=18181B&colorB=f58517
|
|
94
|
+
[npm-downloads-href]: https://npmjs.com/package/@kubb/adapter-oas
|
|
95
|
+
[license-src]: https://img.shields.io/github/license/kubb-labs/kubb.svg?flat&colorA=18181B&colorB=f58517
|
|
96
|
+
[license-href]: https://github.com/kubb-labs/kubb/blob/main/LICENSE
|
|
97
|
+
[coverage-src]: https://img.shields.io/codecov/c/github/kubb-labs/kubb?style=flat&colorA=18181B&colorB=f58517
|
|
98
|
+
[coverage-href]: https://www.npmjs.com/package/@kubb/adapter-oas
|
|
99
|
+
[sponsors-src]: https://img.shields.io/github/sponsors/stijnvanhulle?style=flat&colorA=18181B&colorB=f58517
|
|
100
|
+
[sponsors-href]: https://github.com/sponsors/stijnvanhulle/
|