@elysiajs/openapi 1.4.14 → 1.4.15
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 +125 -101
- package/bun.lock +8 -8
- package/dist/cjs/gen/index.js +322 -70
- package/dist/cjs/index.js +340 -87
- package/dist/cjs/scalar/index.js +18 -17
- package/dist/gen/index.mjs +322 -70
- package/dist/index.mjs +340 -87
- package/dist/scalar/index.mjs +18 -17
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,101 +1,125 @@
|
|
|
1
|
-
# @
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## exclude.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
##
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
1
|
+
# @elysia/openapi
|
|
2
|
+
|
|
3
|
+
[Elysia](https://github.com/elysiajs/elysia) plugin to add OpenAPI documentation.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bun add @elysia/openapi
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { Elysia, t } from 'elysia'
|
|
15
|
+
import { openapi } from '@elysia/openapi'
|
|
16
|
+
|
|
17
|
+
const app = new Elysia()
|
|
18
|
+
.use(openapi())
|
|
19
|
+
.get('/', () => 'hi', {
|
|
20
|
+
response: t.String({ description: 'sample description' })
|
|
21
|
+
})
|
|
22
|
+
.post(
|
|
23
|
+
'/json/:id',
|
|
24
|
+
({ body, params: { id }, query: { name } }) => ({
|
|
25
|
+
...body,
|
|
26
|
+
id,
|
|
27
|
+
name
|
|
28
|
+
}),
|
|
29
|
+
{
|
|
30
|
+
params: t.Object({
|
|
31
|
+
id: t.String()
|
|
32
|
+
}),
|
|
33
|
+
query: t.Object({
|
|
34
|
+
name: t.String()
|
|
35
|
+
}),
|
|
36
|
+
body: t.Object({
|
|
37
|
+
username: t.String(),
|
|
38
|
+
password: t.String()
|
|
39
|
+
}),
|
|
40
|
+
response: t.Object(
|
|
41
|
+
{
|
|
42
|
+
username: t.String(),
|
|
43
|
+
password: t.String(),
|
|
44
|
+
id: t.String(),
|
|
45
|
+
name: t.String()
|
|
46
|
+
},
|
|
47
|
+
{ description: 'sample description' }
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
.listen(3000)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then go to `http://localhost:3000/openapi`.
|
|
55
|
+
|
|
56
|
+
# config
|
|
57
|
+
|
|
58
|
+
## enabled
|
|
59
|
+
|
|
60
|
+
@default true
|
|
61
|
+
Enable/Disable the plugin
|
|
62
|
+
|
|
63
|
+
## documentation
|
|
64
|
+
|
|
65
|
+
OpenAPI documentation information
|
|
66
|
+
|
|
67
|
+
@see https://spec.openapis.org/oas/v3.0.3.html
|
|
68
|
+
|
|
69
|
+
## exclude
|
|
70
|
+
|
|
71
|
+
Configuration to exclude paths or methods from documentation
|
|
72
|
+
|
|
73
|
+
## exclude.methods
|
|
74
|
+
|
|
75
|
+
List of methods to exclude from documentation
|
|
76
|
+
|
|
77
|
+
## exclude.paths
|
|
78
|
+
|
|
79
|
+
List of paths to exclude from documentation
|
|
80
|
+
|
|
81
|
+
## exclude.staticFile
|
|
82
|
+
|
|
83
|
+
@default true
|
|
84
|
+
|
|
85
|
+
Exclude static file routes from documentation
|
|
86
|
+
|
|
87
|
+
## exclude.tags
|
|
88
|
+
|
|
89
|
+
List of tags to exclude from documentation
|
|
90
|
+
|
|
91
|
+
## path
|
|
92
|
+
|
|
93
|
+
@default '/openapi'
|
|
94
|
+
|
|
95
|
+
The endpoint to expose OpenAPI documentation frontend
|
|
96
|
+
|
|
97
|
+
## provider
|
|
98
|
+
|
|
99
|
+
@default 'scalar'
|
|
100
|
+
|
|
101
|
+
OpenAPI documentation frontend between:
|
|
102
|
+
|
|
103
|
+
- [Scalar](https://github.com/scalar/scalar)
|
|
104
|
+
- [SwaggerUI](https://github.com/swagger-api/swagger-ui)
|
|
105
|
+
- null: disable frontend
|
|
106
|
+
|
|
107
|
+
## references
|
|
108
|
+
|
|
109
|
+
Additional OpenAPI reference for each endpoint
|
|
110
|
+
|
|
111
|
+
## scalar
|
|
112
|
+
|
|
113
|
+
Scalar configuration, refers to [Scalar config](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)
|
|
114
|
+
|
|
115
|
+
## specPath
|
|
116
|
+
|
|
117
|
+
@default '/${path}/json'
|
|
118
|
+
|
|
119
|
+
The endpoint to expose OpenAPI specification in JSON format
|
|
120
|
+
|
|
121
|
+
## swagger
|
|
122
|
+
|
|
123
|
+
Swagger config, refers to [Swagger config](https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/)
|
|
124
|
+
|
|
125
|
+
See [documentation](https://elysiajs.com/plugins/openapi.html) for more details.
|
package/bun.lock
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
"": {
|
|
6
6
|
"name": "@elysiajs/openapi",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"@apidevtools/swagger-parser": "^12.
|
|
9
|
-
"@scalar/types": "^0.2.
|
|
8
|
+
"@apidevtools/swagger-parser": "^12.1.0",
|
|
9
|
+
"@scalar/types": "^0.2.16",
|
|
10
10
|
"@sinclair/typemap": "^0.10.1",
|
|
11
11
|
"@types/bun": "1.2.20",
|
|
12
|
-
"effect": "^3.
|
|
12
|
+
"effect": "^3.21.2",
|
|
13
13
|
"elysia": "1.4.19",
|
|
14
14
|
"eslint": "9.6.0",
|
|
15
15
|
"openapi-types": "^12.1.3",
|
|
16
|
-
"tsup": "^8.5.
|
|
17
|
-
"typescript": "^5.9.
|
|
18
|
-
"zod": "^4.
|
|
16
|
+
"tsup": "^8.5.1",
|
|
17
|
+
"typescript": "^5.9.3",
|
|
18
|
+
"zod": "^4.3.6",
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"elysia": ">= 1.4.0",
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
|
|
240
240
|
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
|
|
241
241
|
|
|
242
|
-
"effect": ["effect@3.
|
|
242
|
+
"effect": ["effect@3.21.2", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-rXd2FGDM8KdjSIrc+mqEELo7ScW7xTVxEf1iInmPSpIde9/nyGuFM710cjTo7/EreGXiUX2MOonPpprbz2XHCg=="],
|
|
243
243
|
|
|
244
244
|
"elysia": ["elysia@1.4.19", "", { "dependencies": { "cookie": "^1.1.1", "exact-mirror": "0.2.5", "fast-decode-uri-component": "^1.0.1", "memoirist": "^0.4.0" }, "peerDependencies": { "@sinclair/typebox": ">= 0.34.0 < 1", "@types/bun": ">= 1.2.0", "file-type": ">= 20.0.0", "openapi-types": ">= 12.0.0", "typescript": ">= 5.0.0" }, "optionalPeers": ["@types/bun", "typescript"] }, "sha512-DZb9y8FnWyX5IuqY44SvqAV0DjJ15NeCWHrLdgXrKgTPDPsl3VNwWHqrEr9bmnOCpg1vh6QUvAX/tcxNj88jLA=="],
|
|
245
245
|
|
|
@@ -459,7 +459,7 @@
|
|
|
459
459
|
|
|
460
460
|
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
|
|
461
461
|
|
|
462
|
-
"zod": ["zod@4.
|
|
462
|
+
"zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="],
|
|
463
463
|
|
|
464
464
|
"@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
|
|
465
465
|
|