@innet/server 2.0.0-alpha.9 → 2.0.0-beta.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/README.md +1041 -445
- package/_virtual/_rollup-plugin-process-env.es6.js +10 -0
- package/_virtual/_rollup-plugin-process-env.js +12 -0
- package/handler/handler.d.ts +25 -14
- package/handler/handler.es6.js +15 -11
- package/handler/handler.js +15 -11
- package/hooks/index.d.ts +6 -1
- package/hooks/index.es6.js +6 -1
- package/hooks/index.js +6 -1
- package/hooks/useAction/useAction.es6.js +1 -1
- package/hooks/useAction/useAction.js +1 -1
- package/hooks/useApi/useApi.d.ts +1 -3
- package/hooks/useClientIp/useClientIp.d.ts +1 -1
- package/hooks/useEndpoint/useEndpoint.d.ts +1 -1
- package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
- package/hooks/useEndpoint/useEndpoint.js +3 -1
- package/hooks/useIsServerHttps/index.d.ts +1 -0
- package/hooks/useIsServerHttps/index.es6.js +1 -0
- package/hooks/useIsServerHttps/index.js +10 -0
- package/hooks/useIsServerHttps/useIsServerHttps.d.ts +3 -0
- package/hooks/useIsServerHttps/useIsServerHttps.es6.js +14 -0
- package/hooks/useIsServerHttps/useIsServerHttps.js +19 -0
- package/hooks/useNewSchema/useNewSchema.es6.js +1 -1
- package/hooks/useNewSchema/useNewSchema.js +1 -1
- package/hooks/useObjectSchemaContext/index.d.ts +1 -0
- package/hooks/useObjectSchemaContext/index.es6.js +1 -0
- package/hooks/useObjectSchemaContext/index.js +10 -0
- package/hooks/useObjectSchemaContext/useObjectSchemaContext.d.ts +3 -0
- package/hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js +14 -0
- package/hooks/useObjectSchemaContext/useObjectSchemaContext.js +19 -0
- package/hooks/useRequest/index.es6.js +1 -1
- package/hooks/useRequest/index.js +0 -1
- package/hooks/useRequest/useRequest.d.ts +1 -4
- package/hooks/useRequest/useRequest.es6.js +4 -4
- package/hooks/useRequest/useRequest.js +3 -4
- package/hooks/useRequestHandler/index.d.ts +1 -0
- package/hooks/useRequestHandler/index.es6.js +1 -0
- package/hooks/useRequestHandler/index.js +10 -0
- package/hooks/useRequestHandler/useRequestHandler.d.ts +4 -0
- package/hooks/useRequestHandler/useRequestHandler.es6.js +14 -0
- package/hooks/useRequestHandler/useRequestHandler.js +19 -0
- package/hooks/useResponse/index.es6.js +1 -1
- package/hooks/useResponse/index.js +0 -1
- package/hooks/useResponse/useResponse.d.ts +1 -4
- package/hooks/useResponse/useResponse.es6.js +4 -4
- package/hooks/useResponse/useResponse.js +3 -4
- package/hooks/useSchemaType/useSchemaType.d.ts +3 -2
- package/hooks/useSchemaType/useSchemaType.es6.js +5 -6
- package/hooks/useSchemaType/useSchemaType.js +5 -6
- package/hooks/useServer/useServer.d.ts +2 -1
- package/hooks/useServer/useServer.es6.js +3 -1
- package/hooks/useServer/useServer.js +3 -1
- package/hooks/useServerPlugin/index.d.ts +1 -0
- package/hooks/useServerPlugin/index.es6.js +1 -0
- package/hooks/useServerPlugin/index.js +9 -0
- package/hooks/useServerPlugin/useServerPlugin.d.ts +2 -0
- package/hooks/useServerPlugin/useServerPlugin.es6.js +13 -0
- package/hooks/useServerPlugin/useServerPlugin.js +17 -0
- package/hooks/useServerPlugins/index.d.ts +1 -0
- package/hooks/useServerPlugins/index.es6.js +1 -0
- package/hooks/useServerPlugins/index.js +10 -0
- package/hooks/useServerPlugins/useServerPlugins.d.ts +4 -0
- package/hooks/useServerPlugins/useServerPlugins.es6.js +14 -0
- package/hooks/useServerPlugins/useServerPlugins.js +19 -0
- package/hooks/useServerPort/index.d.ts +1 -0
- package/hooks/useServerPort/index.es6.js +1 -0
- package/hooks/useServerPort/index.js +10 -0
- package/hooks/useServerPort/useServerPort.d.ts +3 -0
- package/hooks/useServerPort/useServerPort.es6.js +14 -0
- package/hooks/useServerPort/useServerPort.js +19 -0
- package/index.es6.js +16 -9
- package/index.js +31 -14
- package/package.json +2 -3
- package/plugins/main/api/api.d.ts +11 -8
- package/plugins/main/api/api.es6.js +55 -56
- package/plugins/main/api/api.js +54 -55
- package/plugins/main/body/body.d.ts +1 -0
- package/plugins/main/contact/contact.d.ts +2 -2
- package/plugins/main/endpoint/endpoint.d.ts +16 -15
- package/plugins/main/endpoint/endpoint.es6.js +8 -6
- package/plugins/main/endpoint/endpoint.js +7 -5
- package/plugins/main/host/host.d.ts +5 -5
- package/plugins/main/index.d.ts +2 -2
- package/plugins/main/index.es6.js +2 -2
- package/plugins/main/index.js +2 -2
- package/plugins/main/license/license.d.ts +5 -5
- package/plugins/main/param/param.d.ts +12 -11
- package/plugins/main/param/param.es6.js +6 -6
- package/plugins/main/param/param.js +5 -5
- package/plugins/main/preset/index.d.ts +1 -0
- package/plugins/main/preset/index.es6.js +1 -0
- package/plugins/{utils/prod → main/preset}/index.js +2 -2
- package/plugins/main/preset/preset.d.ts +3 -0
- package/plugins/main/preset/preset.es6.js +13 -0
- package/plugins/{utils/dev/dev.js → main/preset/preset.js} +9 -6
- package/plugins/main/response/index.es6.js +1 -1
- package/plugins/main/response/index.js +1 -0
- package/plugins/main/response/response.d.ts +6 -1
- package/plugins/main/response/response.es6.js +22 -13
- package/plugins/main/response/response.js +21 -11
- package/plugins/main/return/index.d.ts +1 -0
- package/plugins/main/return/index.es6.js +1 -0
- package/plugins/main/return/index.js +9 -0
- package/plugins/main/return/return.d.ts +4 -0
- package/plugins/main/return/return.es6.js +10 -0
- package/plugins/main/return/return.js +14 -0
- package/plugins/main/server/server.d.ts +6 -5
- package/plugins/main/server/server.es6.js +43 -16
- package/plugins/main/server/server.js +42 -15
- package/plugins/main/tag/tag.d.ts +3 -2
- package/plugins/main/tag/tag.es6.js +6 -4
- package/plugins/main/tag/tag.js +5 -3
- package/plugins/main/variable/variable.d.ts +5 -5
- package/plugins/main/variable/variable.es6.js +3 -1
- package/plugins/main/variable/variable.js +3 -1
- package/plugins/request/cms/cms.d.ts +1 -0
- package/plugins/request/cms/cms.es6.js +3 -4
- package/plugins/request/cms/cms.js +2 -3
- package/plugins/request/error/error.d.ts +41 -40
- package/plugins/request/error/error.es6.js +48 -45
- package/plugins/request/error/error.js +47 -44
- package/plugins/request/file/file.d.ts +1 -0
- package/plugins/request/file/file.es6.js +5 -6
- package/plugins/request/file/file.js +4 -5
- package/plugins/request/header/header.es6.js +1 -1
- package/plugins/request/header/header.js +1 -1
- package/plugins/request/proxy/proxy.d.ts +4 -1
- package/plugins/request/proxy/proxy.es6.js +5 -2
- package/plugins/request/proxy/proxy.js +5 -2
- package/plugins/request/redirect/redirect.d.ts +8 -7
- package/plugins/request/redirect/redirect.es6.js +7 -7
- package/plugins/request/redirect/redirect.js +7 -7
- package/plugins/request/success/success.d.ts +8 -6
- package/plugins/request/success/success.es6.js +21 -11
- package/plugins/request/success/success.js +20 -10
- package/plugins/schema/any/any.d.ts +5 -0
- package/plugins/schema/any/any.es6.js +27 -0
- package/plugins/schema/any/any.js +31 -0
- package/plugins/schema/array/array.d.ts +1 -0
- package/plugins/schema/array/array.es6.js +3 -3
- package/plugins/schema/array/array.js +2 -2
- package/plugins/schema/binary/binary.d.ts +3 -3
- package/plugins/schema/date/date.d.ts +1 -1
- package/plugins/schema/date/date.es6.js +3 -3
- package/plugins/schema/date/date.js +3 -3
- package/plugins/schema/field/field.d.ts +2 -0
- package/plugins/schema/field/field.es6.js +8 -8
- package/plugins/schema/field/field.js +6 -6
- package/plugins/schema/index.d.ts +1 -0
- package/plugins/schema/index.es6.js +1 -0
- package/plugins/schema/index.js +1 -0
- package/plugins/schema/integer/integer.d.ts +3 -3
- package/plugins/schema/integer/integer.es6.js +1 -1
- package/plugins/schema/integer/integer.js +1 -1
- package/plugins/schema/number/number.d.ts +2 -2
- package/plugins/schema/number/number.es6.js +1 -1
- package/plugins/schema/number/number.js +1 -1
- package/plugins/schema/object/object.d.ts +1 -0
- package/plugins/schema/object/object.es6.js +20 -7
- package/plugins/schema/object/object.js +19 -6
- package/plugins/schema/string/string.d.ts +2 -2
- package/plugins/schema/string/string.es6.js +44 -30
- package/plugins/schema/string/string.js +44 -30
- package/plugins/schema/tuple/tuple.d.ts +1 -0
- package/plugins/schema/tuple/tuple.es6.js +5 -5
- package/plugins/schema/tuple/tuple.js +4 -4
- package/plugins/schema/uuid/uuid.es6.js +1 -1
- package/plugins/schema/uuid/uuid.js +1 -1
- package/plugins/utils/blacklist/blacklist.d.ts +5 -0
- package/plugins/utils/blacklist/blacklist.es6.js +17 -0
- package/plugins/utils/blacklist/blacklist.js +21 -0
- package/plugins/utils/blacklist/index.d.ts +1 -0
- package/plugins/utils/blacklist/index.es6.js +1 -0
- package/plugins/utils/blacklist/index.js +9 -0
- package/plugins/utils/dts/dts.d.ts +2 -1
- package/plugins/utils/dts/dts.es6.js +2 -2
- package/plugins/utils/dts/dts.js +2 -2
- package/plugins/utils/env/env.d.ts +7 -0
- package/plugins/utils/env/env.es6.js +11 -0
- package/plugins/utils/{prod/prod.js → env/env.js} +5 -4
- package/plugins/utils/env/index.d.ts +1 -0
- package/plugins/utils/env/index.es6.js +1 -0
- package/plugins/utils/{dev → env}/index.js +2 -2
- package/plugins/utils/index.d.ts +3 -2
- package/plugins/utils/index.es6.js +3 -2
- package/plugins/utils/index.js +3 -2
- package/plugins/utils/protection/protection.d.ts +4 -4
- package/plugins/utils/protection/protection.es6.js +13 -16
- package/plugins/utils/protection/protection.js +13 -16
- package/plugins/utils/swagger/swagger.es6.js +7 -5
- package/plugins/utils/swagger/swagger.js +7 -5
- package/plugins/utils/whitelist/index.d.ts +1 -0
- package/plugins/utils/whitelist/index.es6.js +1 -0
- package/plugins/utils/whitelist/index.js +9 -0
- package/plugins/utils/whitelist/whitelist.d.ts +5 -0
- package/plugins/utils/whitelist/whitelist.es6.js +19 -0
- package/plugins/utils/whitelist/whitelist.js +23 -0
- package/types.d.ts +15 -22
- package/utils/FileData/Bin.d.ts +13 -13
- package/utils/FileData/Bin.es6.js +2 -2
- package/utils/FileData/Bin.js +2 -2
- package/utils/action/Action.d.ts +12 -12
- package/utils/action/Action.es6.js +84 -82
- package/utils/action/Action.js +83 -81
- package/utils/dateFormat/dateFormat.d.ts +1 -1
- package/utils/dateFormat/dateFormat.es6.js +1 -1
- package/utils/dateFormat/dateFormat.js +1 -1
- package/utils/decorators/once/once.es6.js +1 -1
- package/utils/decorators/once/once.js +1 -1
- package/utils/generateTypes/generateTypes.d.ts +2 -2
- package/utils/generateTypes/generateTypes.es6.js +85 -25
- package/utils/generateTypes/generateTypes.js +85 -25
- package/utils/getEndpoint/getEndpoint.es6.js +2 -2
- package/utils/getEndpoint/getEndpoint.js +2 -2
- package/utils/getOrAdd/getOrAdd.d.ts +1 -1
- package/utils/httpOnStart/httpOnStart.d.ts +1 -1
- package/utils/httpOnStart/httpOnStart.es6.js +1 -1
- package/utils/httpOnStart/httpOnStart.js +1 -1
- package/utils/rules/binaryAccept/binaryAccept.es6.js +2 -2
- package/utils/rules/binaryAccept/binaryAccept.js +2 -2
- package/utils/rules/dateTo/dateTo.d.ts +1 -1
- package/utils/rules/helpers.d.ts +1 -1
- package/utils/rules/index.d.ts +0 -1
- package/utils/rules/index.es6.js +0 -1
- package/utils/rules/index.js +0 -1
- package/utils/rules/int/int.es6.js +2 -2
- package/utils/rules/int/int.js +2 -2
- package/utils/rules/max/max.d.ts +1 -1
- package/utils/rules/max/max.es6.js +3 -3
- package/utils/rules/max/max.js +3 -3
- package/utils/rules/maxBin/maxBin.es6.js +2 -2
- package/utils/rules/maxBin/maxBin.js +2 -2
- package/utils/rules/maxDate/maxDate.es6.js +1 -1
- package/utils/rules/maxDate/maxDate.js +1 -1
- package/utils/rules/maxLength/maxLength.es6.js +2 -2
- package/utils/rules/maxLength/maxLength.js +2 -2
- package/utils/rules/min/min.d.ts +1 -1
- package/utils/rules/min/min.es6.js +3 -3
- package/utils/rules/min/min.js +3 -3
- package/utils/rules/minBin/minBin.es6.js +2 -2
- package/utils/rules/minBin/minBin.js +2 -2
- package/utils/rules/minDate/minDate.es6.js +1 -1
- package/utils/rules/minDate/minDate.js +1 -1
- package/utils/rules/minLength/minLength.es6.js +2 -2
- package/utils/rules/minLength/minLength.js +2 -2
- package/utils/rules/objectOf/objectOf.d.ts +1 -1
- package/utils/rules/objectOf/objectOf.es6.js +11 -1
- package/utils/rules/objectOf/objectOf.js +11 -1
- package/utils/rules/pattern/pattern.d.ts +1 -1
- package/utils/rules/pattern/pattern.es6.js +2 -1
- package/utils/rules/pattern/pattern.js +2 -1
- package/example/app/App/App.d.ts +0 -1
- package/example/app/App/index.d.ts +0 -1
- package/example/index.d.ts +0 -1
- package/example/requests/index.d.ts +0 -1
- package/example/requests/todo/AddTodo/AddTodo.d.ts +0 -1
- package/example/requests/todo/AddTodo/index.d.ts +0 -1
- package/example/requests/todo/DeleteTodo/DeleteTodo.d.ts +0 -1
- package/example/requests/todo/DeleteTodo/index.d.ts +0 -1
- package/example/requests/todo/EditTodo/EditTodo.d.ts +0 -1
- package/example/requests/todo/EditTodo/index.d.ts +0 -1
- package/example/requests/todo/GetTodo/GetTodo.d.ts +0 -1
- package/example/requests/todo/GetTodo/index.d.ts +0 -1
- package/example/requests/todo/GetTodos/GetTodos.d.ts +0 -1
- package/example/requests/todo/GetTodos/index.d.ts +0 -1
- package/example/requests/todo/index.d.ts +0 -5
- package/example/requests/todo/todos.d.ts +0 -1
- package/example/schemas/app/ListQueryParams/ListQueryParams.d.ts +0 -1
- package/example/schemas/app/ListQueryParams/index.d.ts +0 -1
- package/example/schemas/app/ListSchema/ListSchema.d.ts +0 -4
- package/example/schemas/app/ListSchema/index.d.ts +0 -1
- package/example/schemas/app/index.d.ts +0 -2
- package/example/schemas/index.d.ts +0 -2
- package/example/schemas/todo/TodoSchema/TodoSchema.d.ts +0 -4
- package/example/schemas/todo/TodoSchema/index.d.ts +0 -1
- package/example/schemas/todo/index.d.ts +0 -1
- package/example/tags/Todo/Todo.d.ts +0 -1
- package/example/tags/Todo/index.d.ts +0 -1
- package/example/tags/index.d.ts +0 -1
- package/hooks/useRequestPlugin/index.d.ts +0 -1
- package/hooks/useRequestPlugin/index.es6.js +0 -1
- package/hooks/useRequestPlugin/index.js +0 -9
- package/hooks/useRequestPlugin/useRequestPlugin.d.ts +0 -2
- package/hooks/useRequestPlugin/useRequestPlugin.es6.js +0 -13
- package/hooks/useRequestPlugin/useRequestPlugin.js +0 -17
- package/openApi.test.d.ts +0 -1
- package/plugins/main/fallback/fallback.d.ts +0 -4
- package/plugins/main/fallback/fallback.es6.js +0 -19
- package/plugins/main/fallback/fallback.js +0 -23
- package/plugins/main/fallback/index.d.ts +0 -1
- package/plugins/main/fallback/index.es6.js +0 -1
- package/plugins/main/fallback/index.js +0 -9
- package/plugins/main/request/index.d.ts +0 -1
- package/plugins/main/request/index.es6.js +0 -1
- package/plugins/main/request/index.js +0 -9
- package/plugins/main/request/request.d.ts +0 -4
- package/plugins/main/request/request.es6.js +0 -21
- package/plugins/main/request/request.js +0 -25
- package/plugins/utils/dev/dev.d.ts +0 -4
- package/plugins/utils/dev/dev.es6.js +0 -10
- package/plugins/utils/dev/index.d.ts +0 -1
- package/plugins/utils/dev/index.es6.js +0 -1
- package/plugins/utils/prod/index.d.ts +0 -1
- package/plugins/utils/prod/index.es6.js +0 -1
- package/plugins/utils/prod/prod.d.ts +0 -4
- package/plugins/utils/prod/prod.es6.js +0 -10
- package/utils/decorators/once/once.test.d.ts +0 -1
- package/utils/generateTypes/generateTypes.test.d.ts +0 -1
- package/utils/parseSearch/parseSearch.test.d.ts +0 -1
- package/utils/rules/any/any.d.ts +0 -1
- package/utils/rules/any/any.es6.js +0 -5
- package/utils/rules/any/any.js +0 -9
- /package/{utils/rules → plugins/schema}/any/index.d.ts +0 -0
- /package/{utils/rules → plugins/schema}/any/index.es6.js +0 -0
- /package/{utils/rules → plugins/schema}/any/index.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@innet/server",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
4
|
"description": "Create server-side application with innet",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.es6.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"homepage": "https://github.com/d8corp/innet-server",
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@cantinc/utils": "^1.4.2",
|
|
39
|
-
"@innet/jsx": "^2.0.0-
|
|
39
|
+
"@innet/jsx": "^2.0.0-beta.2",
|
|
40
40
|
"@innet/utils": "^2.0.0-alpha.1",
|
|
41
41
|
"@types/cookie": "^0.5.1",
|
|
42
42
|
"@types/multiparty": "^0.0.33",
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
"cookie": "^0.5.0",
|
|
45
45
|
"http-proxy": "^1.18.1",
|
|
46
46
|
"innet": "^2.0.0-alpha.3",
|
|
47
|
-
"is-invalid-path": "^1.0.2",
|
|
48
47
|
"mime": "^3.0.0",
|
|
49
48
|
"multiparty": "^4.2.3",
|
|
50
49
|
"openapi-types": "^12.1.3",
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
export interface ApiProps {
|
|
3
|
+
children?: any;
|
|
4
|
+
/** A description of the API. [CommonMark syntax](https://spec.commonmark.or.org) MAY be used for rich text representation. */
|
|
5
|
+
description?: string;
|
|
6
|
+
exclude?: RegExp;
|
|
7
|
+
include?: RegExp;
|
|
8
|
+
/** URL path prefix scopes the API. */
|
|
9
|
+
prefix?: string;
|
|
10
|
+
/** A short summary of the API. */
|
|
11
|
+
summary?: string;
|
|
12
|
+
/** A URL to the Terms of Service for the API. This MUST be in the form of a URL. */
|
|
13
|
+
termsOfService?: string;
|
|
3
14
|
/** The title of the API. */
|
|
4
15
|
title?: string;
|
|
5
16
|
/**
|
|
@@ -10,13 +21,5 @@ export interface ApiProps {
|
|
|
10
21
|
* @default: 0.0.0
|
|
11
22
|
* */
|
|
12
23
|
version?: string;
|
|
13
|
-
/** A short summary of the API. */
|
|
14
|
-
summary?: string;
|
|
15
|
-
/** A description of the API. [CommonMark syntax](https://spec.commonmark.or.org) MAY be used for rich text representation. */
|
|
16
|
-
description?: string;
|
|
17
|
-
/** A URL to the Terms of Service for the API. This MUST be in the form of a URL. */
|
|
18
|
-
termsOfService?: string;
|
|
19
|
-
/** URL path prefix scopes the API. */
|
|
20
|
-
prefix?: string;
|
|
21
24
|
}
|
|
22
25
|
export declare const api: HandlerPlugin;
|
|
@@ -1,56 +1,59 @@
|
|
|
1
1
|
import { __rest, __awaiter } from 'tslib';
|
|
2
|
-
import innet, { useNewHandler
|
|
3
|
-
import {
|
|
2
|
+
import innet, { useNewHandler } from 'innet';
|
|
3
|
+
import { useProps } from '@innet/jsx';
|
|
4
4
|
import '../../../hooks/index.es6.js';
|
|
5
5
|
import '../../../utils/index.es6.js';
|
|
6
6
|
import '../../../utils/rules/index.es6.js';
|
|
7
|
-
import {
|
|
7
|
+
import { serverPlugins } from '../../../hooks/useServerPlugins/useServerPlugins.es6.js';
|
|
8
8
|
import { apiContext } from '../../../hooks/useApi/useApi.es6.js';
|
|
9
|
-
import {
|
|
9
|
+
import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
|
|
10
|
+
import { useAction, actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
10
11
|
import { JSONString } from '../../../utils/JSONString/JSONString.es6.js';
|
|
11
12
|
import { RulesError } from '../../../utils/rules/helpers.es6.js';
|
|
12
|
-
import { responseContext } from '../../../hooks/useResponse/useResponse.es6.js';
|
|
13
|
-
import { requestContext } from '../../../hooks/useRequest/useRequest.es6.js';
|
|
14
13
|
import { paramsContext } from '../../../hooks/useParams/useParams.es6.js';
|
|
15
|
-
import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
16
14
|
|
|
17
15
|
const api = () => {
|
|
18
|
-
var _a;
|
|
19
16
|
const handler = useNewHandler();
|
|
20
|
-
const
|
|
21
|
-
const {
|
|
22
|
-
const
|
|
23
|
-
const info = Object.assign(Object.assign({}, rest), { version: (_a = rest.version) !== null && _a !== void 0 ? _a : '0.0.0', title });
|
|
17
|
+
const props = useProps();
|
|
18
|
+
const { children, exclude, include, prefix = process.env.INNET_API_PREFIX || '', title = '', version = process.env.INNET_API_VERSION || '0.0.0' } = props, rest = __rest(props, ["children", "exclude", "include", "prefix", "title", "version"]);
|
|
19
|
+
const info = Object.assign(Object.assign({}, rest), { title, version });
|
|
24
20
|
const endpoints = {};
|
|
25
21
|
const docs = {
|
|
26
|
-
openapi: '3.1.0',
|
|
27
22
|
info,
|
|
23
|
+
openapi: '3.1.0',
|
|
28
24
|
paths: {},
|
|
29
25
|
};
|
|
30
|
-
const
|
|
31
|
-
const context = { docs, endpoints, prefix,
|
|
26
|
+
const plugins = new Set();
|
|
27
|
+
const context = { docs, endpoints, prefix, refRules: {} };
|
|
28
|
+
const condition = (action) => {
|
|
29
|
+
const path = action.parsedUrl.path;
|
|
30
|
+
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
31
|
+
if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (include && !include.test(url)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
};
|
|
39
|
+
serverPlugins.set(handler, plugins);
|
|
32
40
|
apiContext.set(handler, context);
|
|
33
|
-
|
|
34
|
-
var _b, _c, _d, _e, _f
|
|
35
|
-
|
|
41
|
+
useServerPlugin(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
var _a, _b, _c, _d, _e, _f;
|
|
43
|
+
const action = useAction();
|
|
44
|
+
if (!condition(action))
|
|
36
45
|
return;
|
|
37
|
-
const
|
|
46
|
+
const actionHandler = useNewHandler();
|
|
38
47
|
const path = action.parsedUrl.path;
|
|
39
48
|
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
49
|
+
const { req, res, } = action;
|
|
40
50
|
if (url === (prefix || '')) {
|
|
41
51
|
res.setHeader('Content-Type', 'application/json');
|
|
42
52
|
res.write(JSONString(docs));
|
|
43
53
|
res.end();
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!url.startsWith(prefix)) {
|
|
47
|
-
return;
|
|
54
|
+
return null;
|
|
48
55
|
}
|
|
49
|
-
|
|
50
|
-
if (requestPlugin(action))
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const method = ((_c = (_b = req.method) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : 'get');
|
|
56
|
+
const method = ((_b = (_a = req.method) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : 'get');
|
|
54
57
|
const rawSplitPath = url.slice(prefix.length).split('/').slice(1);
|
|
55
58
|
const splitPath = rawSplitPath.at(-1) ? rawSplitPath : rawSplitPath.slice(0, -1);
|
|
56
59
|
const endpoint = endpoints[method];
|
|
@@ -85,8 +88,8 @@ const api = () => {
|
|
|
85
88
|
if (e instanceof RulesError) {
|
|
86
89
|
res.statusCode = 400;
|
|
87
90
|
res.write(JSONString({
|
|
88
|
-
error: 'requestValidation',
|
|
89
91
|
data: Object.assign(Object.assign({}, e.data), { in: key }),
|
|
92
|
+
error: 'requestValidation',
|
|
90
93
|
}));
|
|
91
94
|
res.end();
|
|
92
95
|
}
|
|
@@ -94,8 +97,8 @@ const api = () => {
|
|
|
94
97
|
console.error(e);
|
|
95
98
|
res.statusCode = 500;
|
|
96
99
|
res.write(JSONString({
|
|
97
|
-
error: 'unknown',
|
|
98
100
|
data: { in: key },
|
|
101
|
+
error: 'unknown',
|
|
99
102
|
}));
|
|
100
103
|
res.end();
|
|
101
104
|
}
|
|
@@ -124,32 +127,34 @@ const api = () => {
|
|
|
124
127
|
if (checkActionRules(bodyRules, 'body'))
|
|
125
128
|
return true;
|
|
126
129
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
paramsContext.set(actionHandler, params);
|
|
131
|
+
for (const plugin of runEndpoint.plugins) {
|
|
132
|
+
const result = yield plugin();
|
|
133
|
+
if (result === undefined)
|
|
134
|
+
continue;
|
|
135
|
+
innet(result, actionHandler);
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
133
138
|
return true;
|
|
134
139
|
});
|
|
135
140
|
}
|
|
136
|
-
if ((
|
|
137
|
-
if (!(yield run((
|
|
141
|
+
if ((_d = (_c = currentEndpoint.static) === null || _c === void 0 ? void 0 : _c[key]) === null || _d === void 0 ? void 0 : _d.plugins) {
|
|
142
|
+
if (!(yield run((_e = currentEndpoint.static) === null || _e === void 0 ? void 0 : _e[key], params)))
|
|
138
143
|
continue;
|
|
139
|
-
return;
|
|
144
|
+
return null;
|
|
140
145
|
}
|
|
141
146
|
if (currentEndpoint.dynamic) {
|
|
142
147
|
for (const dynamicEndpoint of currentEndpoint.dynamic) {
|
|
143
|
-
if (dynamicEndpoint.
|
|
148
|
+
if (dynamicEndpoint.plugins) {
|
|
144
149
|
if (!(yield run(dynamicEndpoint, Object.assign(Object.assign({}, params), { [dynamicEndpoint.key.slice(1, -1)]: key }))))
|
|
145
150
|
continue;
|
|
146
|
-
return;
|
|
151
|
+
return null;
|
|
147
152
|
}
|
|
148
153
|
}
|
|
149
154
|
}
|
|
150
155
|
break;
|
|
151
156
|
}
|
|
152
|
-
if ((
|
|
157
|
+
if ((_f = currentEndpoint.static) === null || _f === void 0 ? void 0 : _f[key]) {
|
|
153
158
|
endpointQueue.push([deep + 1, currentEndpoint.static[key], params]);
|
|
154
159
|
}
|
|
155
160
|
if (currentEndpoint.dynamic) {
|
|
@@ -158,22 +163,16 @@ const api = () => {
|
|
|
158
163
|
}
|
|
159
164
|
}
|
|
160
165
|
}
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
for (const plugin of plugins) {
|
|
167
|
+
const result = yield plugin();
|
|
168
|
+
if (result === undefined)
|
|
169
|
+
continue;
|
|
170
|
+
const newHandler = Object.create(handler);
|
|
165
171
|
actionContext.set(newHandler, action);
|
|
166
|
-
innet(
|
|
167
|
-
|
|
168
|
-
else {
|
|
169
|
-
res.statusCode = 404;
|
|
170
|
-
res.end();
|
|
172
|
+
innet(result, newHandler);
|
|
173
|
+
return null;
|
|
171
174
|
}
|
|
172
|
-
});
|
|
173
|
-
server.on('request', listener);
|
|
174
|
-
onDestroy(() => {
|
|
175
|
-
server.off('request', listener);
|
|
176
|
-
});
|
|
175
|
+
}));
|
|
177
176
|
innet(children, handler);
|
|
178
177
|
};
|
|
179
178
|
|
package/plugins/main/api/api.js
CHANGED
|
@@ -4,61 +4,64 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var innet = require('innet');
|
|
7
|
-
var
|
|
7
|
+
var jsx = require('@innet/jsx');
|
|
8
8
|
require('../../../hooks/index.js');
|
|
9
9
|
require('../../../utils/index.js');
|
|
10
10
|
require('../../../utils/rules/index.js');
|
|
11
|
-
var
|
|
11
|
+
var useServerPlugins = require('../../../hooks/useServerPlugins/useServerPlugins.js');
|
|
12
12
|
var useApi = require('../../../hooks/useApi/useApi.js');
|
|
13
|
-
var
|
|
13
|
+
var useServerPlugin = require('../../../hooks/useServerPlugin/useServerPlugin.js');
|
|
14
|
+
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
14
15
|
var JSONString = require('../../../utils/JSONString/JSONString.js');
|
|
15
16
|
var helpers = require('../../../utils/rules/helpers.js');
|
|
16
|
-
var useResponse = require('../../../hooks/useResponse/useResponse.js');
|
|
17
|
-
var useRequest = require('../../../hooks/useRequest/useRequest.js');
|
|
18
17
|
var useParams = require('../../../hooks/useParams/useParams.js');
|
|
19
|
-
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
20
18
|
|
|
21
19
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
22
20
|
|
|
23
21
|
var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
24
22
|
|
|
25
23
|
const api = () => {
|
|
26
|
-
var _a;
|
|
27
24
|
const handler = innet.useNewHandler();
|
|
28
|
-
const
|
|
29
|
-
const {
|
|
30
|
-
const
|
|
31
|
-
const info = Object.assign(Object.assign({}, rest), { version: (_a = rest.version) !== null && _a !== void 0 ? _a : '0.0.0', title });
|
|
25
|
+
const props = jsx.useProps();
|
|
26
|
+
const { children, exclude, include, prefix = process.env.INNET_API_PREFIX || '', title = '', version = process.env.INNET_API_VERSION || '0.0.0' } = props, rest = tslib.__rest(props, ["children", "exclude", "include", "prefix", "title", "version"]);
|
|
27
|
+
const info = Object.assign(Object.assign({}, rest), { title, version });
|
|
32
28
|
const endpoints = {};
|
|
33
29
|
const docs = {
|
|
34
|
-
openapi: '3.1.0',
|
|
35
30
|
info,
|
|
31
|
+
openapi: '3.1.0',
|
|
36
32
|
paths: {},
|
|
37
33
|
};
|
|
38
|
-
const
|
|
39
|
-
const context = { docs, endpoints, prefix,
|
|
34
|
+
const plugins = new Set();
|
|
35
|
+
const context = { docs, endpoints, prefix, refRules: {} };
|
|
36
|
+
const condition = (action) => {
|
|
37
|
+
const path = action.parsedUrl.path;
|
|
38
|
+
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
39
|
+
if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (include && !include.test(url)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
};
|
|
47
|
+
useServerPlugins.serverPlugins.set(handler, plugins);
|
|
40
48
|
useApi.apiContext.set(handler, context);
|
|
41
|
-
|
|
42
|
-
var _b, _c, _d, _e, _f
|
|
43
|
-
|
|
49
|
+
useServerPlugin.useServerPlugin(() => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
var _a, _b, _c, _d, _e, _f;
|
|
51
|
+
const action = useAction.useAction();
|
|
52
|
+
if (!condition(action))
|
|
44
53
|
return;
|
|
45
|
-
const
|
|
54
|
+
const actionHandler = innet.useNewHandler();
|
|
46
55
|
const path = action.parsedUrl.path;
|
|
47
56
|
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
57
|
+
const { req, res, } = action;
|
|
48
58
|
if (url === (prefix || '')) {
|
|
49
59
|
res.setHeader('Content-Type', 'application/json');
|
|
50
60
|
res.write(JSONString.JSONString(docs));
|
|
51
61
|
res.end();
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
if (!url.startsWith(prefix)) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
for (const requestPlugin of requestPlugins) {
|
|
58
|
-
if (requestPlugin(action))
|
|
59
|
-
return;
|
|
62
|
+
return null;
|
|
60
63
|
}
|
|
61
|
-
const method = ((
|
|
64
|
+
const method = ((_b = (_a = req.method) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : 'get');
|
|
62
65
|
const rawSplitPath = url.slice(prefix.length).split('/').slice(1);
|
|
63
66
|
const splitPath = rawSplitPath.at(-1) ? rawSplitPath : rawSplitPath.slice(0, -1);
|
|
64
67
|
const endpoint = endpoints[method];
|
|
@@ -93,8 +96,8 @@ const api = () => {
|
|
|
93
96
|
if (e instanceof helpers.RulesError) {
|
|
94
97
|
res.statusCode = 400;
|
|
95
98
|
res.write(JSONString.JSONString({
|
|
96
|
-
error: 'requestValidation',
|
|
97
99
|
data: Object.assign(Object.assign({}, e.data), { in: key }),
|
|
100
|
+
error: 'requestValidation',
|
|
98
101
|
}));
|
|
99
102
|
res.end();
|
|
100
103
|
}
|
|
@@ -102,8 +105,8 @@ const api = () => {
|
|
|
102
105
|
console.error(e);
|
|
103
106
|
res.statusCode = 500;
|
|
104
107
|
res.write(JSONString.JSONString({
|
|
105
|
-
error: 'unknown',
|
|
106
108
|
data: { in: key },
|
|
109
|
+
error: 'unknown',
|
|
107
110
|
}));
|
|
108
111
|
res.end();
|
|
109
112
|
}
|
|
@@ -132,32 +135,34 @@ const api = () => {
|
|
|
132
135
|
if (checkActionRules(bodyRules, 'body'))
|
|
133
136
|
return true;
|
|
134
137
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
useParams.paramsContext.set(actionHandler, params);
|
|
139
|
+
for (const plugin of runEndpoint.plugins) {
|
|
140
|
+
const result = yield plugin();
|
|
141
|
+
if (result === undefined)
|
|
142
|
+
continue;
|
|
143
|
+
innet__default["default"](result, actionHandler);
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
141
146
|
return true;
|
|
142
147
|
});
|
|
143
148
|
}
|
|
144
|
-
if ((
|
|
145
|
-
if (!(yield run((
|
|
149
|
+
if ((_d = (_c = currentEndpoint.static) === null || _c === void 0 ? void 0 : _c[key]) === null || _d === void 0 ? void 0 : _d.plugins) {
|
|
150
|
+
if (!(yield run((_e = currentEndpoint.static) === null || _e === void 0 ? void 0 : _e[key], params)))
|
|
146
151
|
continue;
|
|
147
|
-
return;
|
|
152
|
+
return null;
|
|
148
153
|
}
|
|
149
154
|
if (currentEndpoint.dynamic) {
|
|
150
155
|
for (const dynamicEndpoint of currentEndpoint.dynamic) {
|
|
151
|
-
if (dynamicEndpoint.
|
|
156
|
+
if (dynamicEndpoint.plugins) {
|
|
152
157
|
if (!(yield run(dynamicEndpoint, Object.assign(Object.assign({}, params), { [dynamicEndpoint.key.slice(1, -1)]: key }))))
|
|
153
158
|
continue;
|
|
154
|
-
return;
|
|
159
|
+
return null;
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
162
|
}
|
|
158
163
|
break;
|
|
159
164
|
}
|
|
160
|
-
if ((
|
|
165
|
+
if ((_f = currentEndpoint.static) === null || _f === void 0 ? void 0 : _f[key]) {
|
|
161
166
|
endpointQueue.push([deep + 1, currentEndpoint.static[key], params]);
|
|
162
167
|
}
|
|
163
168
|
if (currentEndpoint.dynamic) {
|
|
@@ -166,22 +171,16 @@ const api = () => {
|
|
|
166
171
|
}
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
|
-
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
174
|
+
for (const plugin of plugins) {
|
|
175
|
+
const result = yield plugin();
|
|
176
|
+
if (result === undefined)
|
|
177
|
+
continue;
|
|
178
|
+
const newHandler = Object.create(handler);
|
|
173
179
|
useAction.actionContext.set(newHandler, action);
|
|
174
|
-
innet__default["default"](
|
|
175
|
-
|
|
176
|
-
else {
|
|
177
|
-
res.statusCode = 404;
|
|
178
|
-
res.end();
|
|
180
|
+
innet__default["default"](result, newHandler);
|
|
181
|
+
return null;
|
|
179
182
|
}
|
|
180
|
-
});
|
|
181
|
-
server.on('request', listener);
|
|
182
|
-
watchState.onDestroy(() => {
|
|
183
|
-
server.off('request', listener);
|
|
184
|
-
});
|
|
183
|
+
}));
|
|
185
184
|
innet__default["default"](children, handler);
|
|
186
185
|
};
|
|
187
186
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
export interface ContactProps {
|
|
3
|
+
/** The email address of the contact person/organization. This MUST be in the form of an email address. */
|
|
4
|
+
email?: string;
|
|
3
5
|
/** The identifying name of the contact person/organization. */
|
|
4
6
|
name?: string;
|
|
5
7
|
/** The URL pointing to the contact information. This MUST be in the form of a URL. */
|
|
6
8
|
url?: string;
|
|
7
|
-
/** The email address of the contact person/organization. This MUST be in the form of an email address. */
|
|
8
|
-
email?: string;
|
|
9
9
|
}
|
|
10
10
|
export declare const contact: HandlerPlugin;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
import { type EndpointsMethods } from '../../../types';
|
|
3
3
|
export interface EndpointProps {
|
|
4
|
+
children?: any;
|
|
5
|
+
/**
|
|
6
|
+
* Declares this operation to be deprecated.
|
|
7
|
+
* Consumers SHOULD refrain from usage of the declared operation.
|
|
8
|
+
* Default value is false.
|
|
9
|
+
* */
|
|
10
|
+
deprecated?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* An optional, string description, intended to apply to all operations in this path.
|
|
13
|
+
* [CommonMark syntax](https://spec.commonmark.org) MAY be used for rich text representation.
|
|
14
|
+
* */
|
|
15
|
+
description?: string;
|
|
4
16
|
/**
|
|
5
17
|
* A method of the endpoint.
|
|
6
18
|
* */
|
|
@@ -13,25 +25,14 @@ export interface EndpointProps {
|
|
|
13
25
|
* Templated paths with the same hierarchy but different templated names MUST NOT exist as they are identical.
|
|
14
26
|
* */
|
|
15
27
|
path: string;
|
|
16
|
-
/**
|
|
17
|
-
* An optional, string summary, intended to apply to all operations in this path.
|
|
18
|
-
* */
|
|
19
|
-
summary?: string;
|
|
20
|
-
/**
|
|
21
|
-
* An optional, string description, intended to apply to all operations in this path.
|
|
22
|
-
* [CommonMark syntax](https://spec.commonmark.org) MAY be used for rich text representation.
|
|
23
|
-
* */
|
|
24
|
-
description?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Declares this operation to be deprecated.
|
|
27
|
-
* Consumers SHOULD refrain from usage of the declared operation.
|
|
28
|
-
* Default value is false.
|
|
29
|
-
* */
|
|
30
|
-
deprecated?: boolean;
|
|
31
28
|
/**
|
|
32
29
|
* Declares this operation to make an endpoint private.
|
|
33
30
|
* That means the endpoint should not be described and will not be shown in the Open API documentation.
|
|
34
31
|
* */
|
|
35
32
|
private?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* An optional, string summary, intended to apply to all operations in this path.
|
|
35
|
+
* */
|
|
36
|
+
summary?: string;
|
|
36
37
|
}
|
|
37
38
|
export declare const endpoint: HandlerPlugin;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import innet, { useNewHandler } from 'innet';
|
|
2
|
-
import { useProps
|
|
2
|
+
import { useProps } from '@innet/jsx';
|
|
3
3
|
import '../../../hooks/index.es6.js';
|
|
4
4
|
import '../../../utils/index.es6.js';
|
|
5
5
|
import { useTag } from '../../../hooks/useTag/useTag.es6.js';
|
|
6
6
|
import { useApi } from '../../../hooks/useApi/useApi.es6.js';
|
|
7
7
|
import { getEndpoint } from '../../../utils/getEndpoint/getEndpoint.es6.js';
|
|
8
8
|
import { endpointContext } from '../../../hooks/useEndpoint/useEndpoint.es6.js';
|
|
9
|
+
import { serverPlugins } from '../../../hooks/useServerPlugins/useServerPlugins.es6.js';
|
|
9
10
|
|
|
10
11
|
const endpoint = () => {
|
|
11
12
|
const handler = useNewHandler();
|
|
12
13
|
const tag = useTag();
|
|
13
|
-
const { docs, endpoints } = useApi();
|
|
14
14
|
const props = useProps();
|
|
15
|
-
const {
|
|
16
|
-
const children =
|
|
15
|
+
const { docs, endpoints, } = useApi();
|
|
16
|
+
const { children, deprecated, description, method, path, private: privateMode, summary, } = props;
|
|
17
17
|
const { paths } = docs;
|
|
18
18
|
if (!paths)
|
|
19
19
|
throw Error('cannot find paths in docs');
|
|
@@ -42,12 +42,14 @@ const endpoint = () => {
|
|
|
42
42
|
paths[path][method] = operation;
|
|
43
43
|
}
|
|
44
44
|
if (!endpoints[method]) {
|
|
45
|
-
endpoints[method] = { key: '' };
|
|
45
|
+
endpoints[method] = { key: '', plugins: new Set() };
|
|
46
46
|
}
|
|
47
47
|
// @ts-expect-error: it's always an object
|
|
48
48
|
const endpoint = getEndpoint(path, endpoints[method]);
|
|
49
49
|
// @ts-expect-error: it's always an object
|
|
50
|
-
endpointContext.set(handler, { operation, props
|
|
50
|
+
endpointContext.set(handler, { endpoint, operation, props });
|
|
51
|
+
// @ts-expect-error: it's always an object
|
|
52
|
+
serverPlugins.set(handler, endpoint.plugins);
|
|
51
53
|
innet(children, handler);
|
|
52
54
|
};
|
|
53
55
|
|
|
@@ -10,6 +10,7 @@ var useTag = require('../../../hooks/useTag/useTag.js');
|
|
|
10
10
|
var useApi = require('../../../hooks/useApi/useApi.js');
|
|
11
11
|
var getEndpoint = require('../../../utils/getEndpoint/getEndpoint.js');
|
|
12
12
|
var useEndpoint = require('../../../hooks/useEndpoint/useEndpoint.js');
|
|
13
|
+
var useServerPlugins = require('../../../hooks/useServerPlugins/useServerPlugins.js');
|
|
13
14
|
|
|
14
15
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
16
|
|
|
@@ -18,10 +19,9 @@ var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
|
18
19
|
const endpoint = () => {
|
|
19
20
|
const handler = innet.useNewHandler();
|
|
20
21
|
const tag = useTag.useTag();
|
|
21
|
-
const { docs, endpoints } = useApi.useApi();
|
|
22
22
|
const props = jsx.useProps();
|
|
23
|
-
const {
|
|
24
|
-
const children =
|
|
23
|
+
const { docs, endpoints, } = useApi.useApi();
|
|
24
|
+
const { children, deprecated, description, method, path, private: privateMode, summary, } = props;
|
|
25
25
|
const { paths } = docs;
|
|
26
26
|
if (!paths)
|
|
27
27
|
throw Error('cannot find paths in docs');
|
|
@@ -50,12 +50,14 @@ const endpoint = () => {
|
|
|
50
50
|
paths[path][method] = operation;
|
|
51
51
|
}
|
|
52
52
|
if (!endpoints[method]) {
|
|
53
|
-
endpoints[method] = { key: '' };
|
|
53
|
+
endpoints[method] = { key: '', plugins: new Set() };
|
|
54
54
|
}
|
|
55
55
|
// @ts-expect-error: it's always an object
|
|
56
56
|
const endpoint = getEndpoint.getEndpoint(path, endpoints[method]);
|
|
57
57
|
// @ts-expect-error: it's always an object
|
|
58
|
-
useEndpoint.endpointContext.set(handler, { operation, props
|
|
58
|
+
useEndpoint.endpointContext.set(handler, { endpoint, operation, props });
|
|
59
|
+
// @ts-expect-error: it's always an object
|
|
60
|
+
useServerPlugins.serverPlugins.set(handler, endpoint.plugins);
|
|
59
61
|
innet__default["default"](children, handler);
|
|
60
62
|
};
|
|
61
63
|
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { type HandlerPlugin } from 'innet';
|
|
2
2
|
export interface HostProps {
|
|
3
|
+
/**
|
|
4
|
+
* An optional string describing the host designated by the URL.
|
|
5
|
+
* [CommonMark syntax](https://spec.commonmark.org/) MAY be used for rich text representation.
|
|
6
|
+
* */
|
|
7
|
+
description?: string;
|
|
3
8
|
/**
|
|
4
9
|
* A URL to the target host.
|
|
5
10
|
* This URL supports Server Variables and MAY be relative,
|
|
@@ -7,10 +12,5 @@ export interface HostProps {
|
|
|
7
12
|
* Variable substitutions will be made when a variable is named in {brackets}.
|
|
8
13
|
* */
|
|
9
14
|
url: string;
|
|
10
|
-
/**
|
|
11
|
-
* An optional string describing the host designated by the URL.
|
|
12
|
-
* [CommonMark syntax](https://spec.commonmark.org/) MAY be used for rich text representation.
|
|
13
|
-
* */
|
|
14
|
-
description?: string;
|
|
15
15
|
}
|
|
16
16
|
export declare const host: HandlerPlugin;
|
package/plugins/main/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export * from './variable';
|
|
|
7
7
|
export * from './tag';
|
|
8
8
|
export * from './endpoint';
|
|
9
9
|
export * from './response';
|
|
10
|
-
export * from './
|
|
10
|
+
export * from './return';
|
|
11
11
|
export * from './param';
|
|
12
12
|
export * from './body';
|
|
13
|
-
export * from './
|
|
13
|
+
export * from './preset';
|
|
@@ -7,7 +7,7 @@ import './variable/index.es6.js';
|
|
|
7
7
|
import './tag/index.es6.js';
|
|
8
8
|
import './endpoint/index.es6.js';
|
|
9
9
|
import './response/index.es6.js';
|
|
10
|
-
import './
|
|
10
|
+
import './return/index.es6.js';
|
|
11
11
|
import './param/index.es6.js';
|
|
12
12
|
import './body/index.es6.js';
|
|
13
|
-
import './
|
|
13
|
+
import './preset/index.es6.js';
|
package/plugins/main/index.js
CHANGED
|
@@ -9,8 +9,8 @@ require('./variable/index.js');
|
|
|
9
9
|
require('./tag/index.js');
|
|
10
10
|
require('./endpoint/index.js');
|
|
11
11
|
require('./response/index.js');
|
|
12
|
-
require('./
|
|
12
|
+
require('./return/index.js');
|
|
13
13
|
require('./param/index.js');
|
|
14
14
|
require('./body/index.js');
|
|
15
|
-
require('./
|
|
15
|
+
require('./preset/index.js');
|
|
16
16
|
|