@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 CHANGED
@@ -1,101 +1,125 @@
1
- # @elysiajs/openapi
2
- Plugin for [elysia](https://github.com/elysiajs/elysia) to auto-generate API documentation page.
3
-
4
- ## Installation
5
- ```bash
6
- bun add @elysiajs/openapi
7
- ```
8
-
9
- ## Example
10
- ```typescript
11
- import { Elysia, t } from 'elysia'
12
- import { openapi } from '@elysiajs/openapi'
13
-
14
- const app = new Elysia()
15
- .use(openapi())
16
- .get('/', () => 'hi', { response: t.String({ description: 'sample description' }) })
17
- .post(
18
- '/json/:id',
19
- ({ body, params: { id }, query: { name } }) => ({
20
- ...body,
21
- id,
22
- name
23
- }),
24
- {
25
- params: t.Object({
26
- id: t.String()
27
- }),
28
- query: t.Object({
29
- name: t.String()
30
- }),
31
- body: t.Object({
32
- username: t.String(),
33
- password: t.String()
34
- }),
35
- response: t.Object({
36
- username: t.String(),
37
- password: t.String(),
38
- id: t.String(),
39
- name: t.String()
40
- }, { description: 'sample description' })
41
- }
42
- )
43
- .listen(8080);
44
- ```
45
-
46
- Then go to `http://localhost:8080/openapi`.
47
-
48
- # config
49
-
50
- ## enabled
51
- @default true
52
- Enable/Disable the plugin
53
-
54
- ## documentation
55
- OpenAPI documentation information
56
-
57
- @see https://spec.openapis.org/oas/v3.0.3.html
58
-
59
- ## exclude
60
- Configuration to exclude paths or methods from documentation
61
-
62
- ## exclude.methods
63
- List of methods to exclude from documentation
64
-
65
- ## exclude.paths
66
- List of paths to exclude from documentation
67
-
68
- ## exclude.staticFile
69
- @default true
70
-
71
- Exclude static file routes from documentation
72
-
73
- ## exclude.tags
74
- List of tags to exclude from documentation
75
-
76
- ## path
77
- @default '/openapi'
78
-
79
- The endpoint to expose OpenAPI documentation frontend
80
-
81
- ## provider
82
- @default 'scalar'
83
-
84
- OpenAPI documentation frontend between:
85
- - [Scalar](https://github.com/scalar/scalar)
86
- - [SwaggerUI](https://github.com/swagger-api/swagger-ui)
87
- - null: disable frontend
88
-
89
- ## references
90
- Additional OpenAPI reference for each endpoint
91
-
92
- ## scalar
93
- Scalar configuration, refers to [Scalar config](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)
94
-
95
- ## specPath
96
- @default '/${path}/json'
97
-
98
- The endpoint to expose OpenAPI specification in JSON format
99
-
100
- ## swagger
101
- Swagger config, refers to [Swagger config](https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/)
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.0.0",
9
- "@scalar/types": "^0.2.13",
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.17.13",
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.0",
17
- "typescript": "^5.9.2",
18
- "zod": "^4.2.1",
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.19.12", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "fast-check": "^3.23.1" } }, "sha512-7F9RGTrCTC3D7nh9Zw+3VlJWwZgo5k33KA+476BAaD0rKIXKZsY/jQ+ipyhR/Avo239Fi6GqAVFs1mqM1IJ7yg=="],
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.2.1", "", {}, "sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw=="],
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