@innet/server 2.0.0-alpha.2 → 2.0.0-alpha.20
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 +1105 -403
- package/example/requests/index.d.ts +1 -1
- package/example/requests/todo/AddTodo/AddTodo.d.ts +1 -0
- package/example/requests/todo/AddTodo/index.d.ts +1 -0
- package/example/requests/todo/DeleteTodo/DeleteTodo.d.ts +1 -0
- package/example/requests/todo/DeleteTodo/index.d.ts +1 -0
- package/example/requests/todo/EditTodo/EditTodo.d.ts +1 -0
- package/example/requests/todo/EditTodo/index.d.ts +1 -0
- package/example/requests/todo/GetTodo/GetTodo.d.ts +1 -0
- package/example/requests/todo/GetTodo/index.d.ts +1 -0
- package/example/requests/todo/GetTodos/GetTodos.d.ts +1 -0
- package/example/requests/todo/GetTodos/index.d.ts +1 -0
- package/example/requests/todo/index.d.ts +5 -0
- package/example/requests/todo/todos.d.ts +1 -0
- package/example/schemas/app/ListQueryParams/ListQueryParams.d.ts +1 -0
- package/example/schemas/app/ListQueryParams/index.d.ts +1 -0
- package/example/schemas/app/ListSchema/ListSchema.d.ts +4 -1
- package/example/schemas/app/index.d.ts +1 -0
- package/example/schemas/index.d.ts +1 -3
- package/example/schemas/todo/TodoSchema/TodoSchema.d.ts +4 -0
- package/example/schemas/todo/TodoSchema/index.d.ts +1 -0
- package/example/schemas/todo/index.d.ts +1 -0
- package/example/tags/Todo/Todo.d.ts +1 -0
- package/example/tags/Todo/index.d.ts +1 -0
- package/example/tags/index.d.ts +1 -1
- package/handler/handler.d.ts +11 -3
- package/handler/handler.es6.js +10 -2
- package/handler/handler.js +10 -2
- package/hooks/index.d.ts +4 -0
- package/hooks/index.es6.js +4 -0
- package/hooks/index.js +4 -0
- 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/index.d.ts +1 -0
- package/hooks/useClientIp/index.es6.js +1 -0
- package/hooks/useClientIp/index.js +9 -0
- package/hooks/useClientIp/useClientIp.d.ts +1 -0
- package/hooks/useClientIp/useClientIp.es6.js +9 -0
- package/hooks/useClientIp/useClientIp.js +13 -0
- package/hooks/useComponentName/useComponentName.d.ts +1 -1
- package/hooks/useEndpoint/useEndpoint.es6.js +3 -1
- package/hooks/useEndpoint/useEndpoint.js +3 -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/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 +2 -3
- package/hooks/useSchemaType/useSchemaType.js +2 -3
- package/hooks/useServer/useServer.d.ts +1 -0
- 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/index.es6.js +13 -5
- package/index.js +24 -6
- package/package.json +2 -2
- package/plugins/main/api/api.d.ts +2 -0
- package/plugins/main/api/api.es6.js +49 -51
- package/plugins/main/api/api.js +49 -51
- package/plugins/main/endpoint/endpoint.es6.js +4 -1
- package/plugins/main/endpoint/endpoint.js +4 -1
- package/plugins/main/index.d.ts +1 -1
- package/plugins/main/index.es6.js +1 -1
- package/plugins/main/index.js +1 -1
- package/plugins/main/preset/index.d.ts +1 -0
- package/plugins/main/preset/index.es6.js +1 -0
- package/{utils/rules/any/any.js → plugins/main/preset/index.js} +4 -4
- package/plugins/main/preset/preset.d.ts +3 -0
- package/plugins/main/preset/preset.es6.js +13 -0
- package/plugins/main/preset/preset.js +21 -0
- package/plugins/main/request/request.es6.js +2 -13
- package/plugins/main/request/request.js +2 -13
- 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 -2
- package/plugins/main/response/response.es6.js +16 -8
- package/plugins/main/response/response.js +16 -7
- package/plugins/main/server/server.d.ts +3 -3
- package/plugins/main/server/server.es6.js +29 -7
- package/plugins/main/server/server.js +29 -7
- package/plugins/main/tag/tag.es6.js +4 -1
- package/plugins/main/tag/tag.js +4 -1
- package/plugins/request/cms/cms.es6.js +1 -1
- package/plugins/request/cms/cms.js +1 -1
- package/plugins/request/cookie/cookie.es6.js +3 -19
- package/plugins/request/cookie/cookie.js +3 -23
- package/plugins/request/proxy/proxy.d.ts +3 -0
- package/plugins/request/proxy/proxy.es6.js +4 -1
- package/plugins/request/proxy/proxy.js +4 -1
- package/plugins/request/redirect/redirect.d.ts +2 -1
- package/plugins/request/success/success.d.ts +1 -0
- package/plugins/request/success/success.es6.js +13 -4
- package/plugins/request/success/success.js +13 -4
- 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/boolean/boolean.es6.js +2 -4
- package/plugins/schema/boolean/boolean.js +1 -3
- package/plugins/schema/field/field.es6.js +3 -5
- package/plugins/schema/field/field.js +2 -4
- 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/object/object.es6.js +17 -4
- package/plugins/schema/object/object.js +17 -4
- package/plugins/utils/blacklist/blacklist.d.ts +4 -0
- package/plugins/utils/blacklist/blacklist.es6.js +18 -0
- package/plugins/utils/blacklist/blacklist.js +22 -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 +3 -3
- package/plugins/utils/dts/dts.es6.js +6 -25
- package/plugins/utils/dts/dts.js +5 -29
- package/plugins/utils/index.d.ts +3 -0
- package/plugins/utils/index.es6.js +3 -0
- package/plugins/utils/index.js +3 -0
- package/plugins/utils/protection/index.d.ts +1 -0
- package/plugins/utils/protection/index.es6.js +1 -0
- package/plugins/utils/protection/index.js +9 -0
- package/plugins/utils/protection/protection.d.ts +8 -0
- package/plugins/utils/protection/protection.es6.js +36 -0
- package/plugins/utils/protection/protection.js +40 -0
- package/plugins/utils/swagger/swagger.es6.js +10 -12
- package/plugins/utils/swagger/swagger.js +10 -12
- 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 +4 -0
- package/plugins/utils/whitelist/whitelist.es6.js +20 -0
- package/plugins/utils/whitelist/whitelist.js +24 -0
- package/types.d.ts +2 -10
- package/utils/action/Action.d.ts +7 -4
- package/utils/action/Action.es6.js +35 -11
- package/utils/action/Action.js +36 -12
- package/utils/generateTypes/generateTypes.d.ts +3 -0
- package/utils/generateTypes/generateTypes.es6.js +151 -0
- package/utils/generateTypes/generateTypes.js +156 -0
- package/utils/generateTypes/generateTypes.test.d.ts +1 -0
- package/utils/generateTypes/index.d.ts +1 -0
- package/utils/generateTypes/index.es6.js +1 -0
- package/utils/generateTypes/index.js +10 -0
- package/utils/getEndpoint/getEndpoint.es6.js +2 -2
- package/utils/getEndpoint/getEndpoint.js +2 -2
- package/utils/index.d.ts +1 -0
- package/utils/index.es6.js +1 -0
- package/utils/index.js +1 -0
- 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/objectOf/objectOf.d.ts +1 -1
- package/utils/rules/objectOf/objectOf.es6.js +15 -2
- package/utils/rules/objectOf/objectOf.js +15 -2
- package/example/requests/partners/EditPartner/EditPartner.d.ts +0 -1
- package/example/requests/partners/EditPartner/index.d.ts +0 -1
- package/example/requests/partners/GetPartner/GetPartner.d.ts +0 -1
- package/example/requests/partners/GetPartner/index.d.ts +0 -1
- package/example/requests/partners/GetPartners/GetPartners.d.ts +0 -1
- package/example/requests/partners/GetPartners/index.d.ts +0 -1
- package/example/requests/partners/index.d.ts +0 -3
- package/example/schemas/address/AddressSchema/AddressSchema.d.ts +0 -1
- package/example/schemas/address/AddressSchema/index.d.ts +0 -1
- package/example/schemas/address/index.d.ts +0 -1
- package/example/schemas/location/LocationSchema/LocationSchema.d.ts +0 -1
- package/example/schemas/location/LocationSchema/index.d.ts +0 -1
- package/example/schemas/location/index.d.ts +0 -1
- package/example/schemas/partner/EditPartnerSchema/EditPartnerSchema.d.ts +0 -1
- package/example/schemas/partner/EditPartnerSchema/index.d.ts +0 -1
- package/example/schemas/partner/PartnerSchema/PartnerSchema.d.ts +0 -1
- package/example/schemas/partner/PartnerSchema/index.d.ts +0 -1
- package/example/schemas/partner/index.d.ts +0 -2
- package/example/tags/Partner/Partner.d.ts +0 -1
- package/example/tags/Partner/index.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/utils/rules/any/any.d.ts +0 -1
- package/utils/rules/any/any.es6.js +0 -5
- /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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ObjectType, type SchemaObject, type ValuesSchemaProps } from '../../types';
|
|
2
|
-
type
|
|
3
|
-
|
|
2
|
+
export type SchemaType = ObjectType | 'any';
|
|
3
|
+
type TypeMap<T extends SchemaType> = T extends 'number' | 'integer' ? number : T extends 'string' ? string : T extends 'object' ? object : T extends 'array' ? any[] : T extends 'boolean' ? boolean : T extends 'null' ? null : T extends 'any' ? any : unknown;
|
|
4
|
+
export declare function useSchemaType<T extends SchemaType>(type: T, { values, ref, example, examples, ...options }?: undefined | ValuesSchemaProps<TypeMap<T>>): SchemaObject | undefined;
|
|
4
5
|
export {};
|
|
@@ -22,11 +22,10 @@ function useSchemaType(type, _a = {}) {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
return (docs.components.schemas[ref] = Object.assign(Object.assign({}, options), { example,
|
|
25
|
-
examples,
|
|
26
|
-
type, enum: values }));
|
|
25
|
+
examples, type: type === 'any' ? undefined : type, enum: values }));
|
|
27
26
|
}
|
|
28
27
|
return useNewSchema(Object.assign(Object.assign({}, options), { example,
|
|
29
|
-
examples, enum: values, type: type }));
|
|
28
|
+
examples, enum: values, type: type === 'any' ? undefined : type }));
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
export { useSchemaType };
|
|
@@ -26,11 +26,10 @@ function useSchemaType(type, _a = {}) {
|
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
return (docs.components.schemas[ref] = Object.assign(Object.assign({}, options), { example,
|
|
29
|
-
examples,
|
|
30
|
-
type, enum: values }));
|
|
29
|
+
examples, type: type === 'any' ? undefined : type, enum: values }));
|
|
31
30
|
}
|
|
32
31
|
return useNewSchema.useNewSchema(Object.assign(Object.assign({}, options), { example,
|
|
33
|
-
examples, enum: values, type: type }));
|
|
32
|
+
examples, enum: values, type: type === 'any' ? undefined : type }));
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
exports.useSchemaType = useSchemaType;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { Context } from '@innet/jsx';
|
|
4
4
|
import { type Server as HttpServer } from 'http';
|
|
5
5
|
import { type Server as HttpsServer } from 'https';
|
|
6
|
+
export type ServerPlugin = () => any;
|
|
6
7
|
export interface ServerContext {
|
|
7
8
|
server: HttpServer | HttpsServer;
|
|
8
9
|
port: number;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Context, useContext } from '@innet/jsx';
|
|
2
|
+
import '../useThrow/index.es6.js';
|
|
3
|
+
import { useThrow } from '../useThrow/useThrow.es6.js';
|
|
2
4
|
|
|
3
5
|
const serverContext = new Context();
|
|
4
6
|
function useServer() {
|
|
5
7
|
const server = useContext(serverContext);
|
|
6
8
|
if (!server) {
|
|
7
|
-
|
|
9
|
+
useThrow('Use <{type}> in <server>');
|
|
8
10
|
}
|
|
9
11
|
return server;
|
|
10
12
|
}
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsx = require('@innet/jsx');
|
|
6
|
+
require('../useThrow/index.js');
|
|
7
|
+
var useThrow = require('../useThrow/useThrow.js');
|
|
6
8
|
|
|
7
9
|
const serverContext = new jsx.Context();
|
|
8
10
|
function useServer() {
|
|
9
11
|
const server = jsx.useContext(serverContext);
|
|
10
12
|
if (!server) {
|
|
11
|
-
|
|
13
|
+
useThrow.useThrow('Use <{type}> in <server>');
|
|
12
14
|
}
|
|
13
15
|
return server;
|
|
14
16
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useServerPlugin';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useServerPlugin } from './useServerPlugin.es6.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { onDestroy } from 'watch-state';
|
|
2
|
+
import '../useServerPlugins/index.es6.js';
|
|
3
|
+
import { useServerPlugins } from '../useServerPlugins/useServerPlugins.es6.js';
|
|
4
|
+
|
|
5
|
+
function useServerPlugin(listener) {
|
|
6
|
+
const requests = useServerPlugins();
|
|
7
|
+
requests.add(listener);
|
|
8
|
+
onDestroy(() => {
|
|
9
|
+
requests.delete(listener);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { useServerPlugin };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var watchState = require('watch-state');
|
|
6
|
+
require('../useServerPlugins/index.js');
|
|
7
|
+
var useServerPlugins = require('../useServerPlugins/useServerPlugins.js');
|
|
8
|
+
|
|
9
|
+
function useServerPlugin(listener) {
|
|
10
|
+
const requests = useServerPlugins.useServerPlugins();
|
|
11
|
+
requests.add(listener);
|
|
12
|
+
watchState.onDestroy(() => {
|
|
13
|
+
requests.delete(listener);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.useServerPlugin = useServerPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useServerPlugins';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { serverPlugins, useServerPlugins } from './useServerPlugins.es6.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var useServerPlugins = require('./useServerPlugins.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.serverPlugins = useServerPlugins.serverPlugins;
|
|
10
|
+
exports.useServerPlugins = useServerPlugins.useServerPlugins;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Context, useContext } from '@innet/jsx';
|
|
2
|
+
import '../useThrow/index.es6.js';
|
|
3
|
+
import { useThrow } from '../useThrow/useThrow.es6.js';
|
|
4
|
+
|
|
5
|
+
const serverPlugins = new Context();
|
|
6
|
+
function useServerPlugins() {
|
|
7
|
+
const plugins = useContext(serverPlugins);
|
|
8
|
+
if (!plugins) {
|
|
9
|
+
useThrow('Use <{type}> in <server>');
|
|
10
|
+
}
|
|
11
|
+
return plugins;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { serverPlugins, useServerPlugins };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsx = require('@innet/jsx');
|
|
6
|
+
require('../useThrow/index.js');
|
|
7
|
+
var useThrow = require('../useThrow/useThrow.js');
|
|
8
|
+
|
|
9
|
+
const serverPlugins = new jsx.Context();
|
|
10
|
+
function useServerPlugins() {
|
|
11
|
+
const plugins = jsx.useContext(serverPlugins);
|
|
12
|
+
if (!plugins) {
|
|
13
|
+
useThrow.useThrow('Use <{type}> in <server>');
|
|
14
|
+
}
|
|
15
|
+
return plugins;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.serverPlugins = serverPlugins;
|
|
19
|
+
exports.useServerPlugins = useServerPlugins;
|
package/index.es6.js
CHANGED
|
@@ -12,11 +12,11 @@ export { host } from './plugins/main/host/host.es6.js';
|
|
|
12
12
|
export { variable } from './plugins/main/variable/variable.es6.js';
|
|
13
13
|
export { tag } from './plugins/main/tag/tag.es6.js';
|
|
14
14
|
export { endpoint } from './plugins/main/endpoint/endpoint.es6.js';
|
|
15
|
-
export { response } from './plugins/main/response/response.es6.js';
|
|
15
|
+
export { response, statuses } from './plugins/main/response/response.es6.js';
|
|
16
16
|
export { request } from './plugins/main/request/request.es6.js';
|
|
17
17
|
export { param } from './plugins/main/param/param.es6.js';
|
|
18
18
|
export { body } from './plugins/main/body/body.es6.js';
|
|
19
|
-
export {
|
|
19
|
+
export { preset } from './plugins/main/preset/preset.es6.js';
|
|
20
20
|
export { object } from './plugins/schema/object/object.es6.js';
|
|
21
21
|
export { field } from './plugins/schema/field/field.es6.js';
|
|
22
22
|
export { number } from './plugins/schema/number/number.es6.js';
|
|
@@ -29,6 +29,7 @@ export { date } from './plugins/schema/date/date.es6.js';
|
|
|
29
29
|
export { tuple } from './plugins/schema/tuple/tuple.es6.js';
|
|
30
30
|
export { uuid } from './plugins/schema/uuid/uuid.es6.js';
|
|
31
31
|
export { binary } from './plugins/schema/binary/binary.es6.js';
|
|
32
|
+
export { any } from './plugins/schema/any/any.es6.js';
|
|
32
33
|
export { success, successStatuses } from './plugins/request/success/success.es6.js';
|
|
33
34
|
export { error, errorStatuses } from './plugins/request/error/error.es6.js';
|
|
34
35
|
export { proxy } from './plugins/request/proxy/proxy.es6.js';
|
|
@@ -41,6 +42,9 @@ export { swagger } from './plugins/utils/swagger/swagger.es6.js';
|
|
|
41
42
|
export { dts } from './plugins/utils/dts/dts.es6.js';
|
|
42
43
|
export { dev } from './plugins/utils/dev/dev.es6.js';
|
|
43
44
|
export { prod } from './plugins/utils/prod/prod.es6.js';
|
|
45
|
+
export { protection } from './plugins/utils/protection/protection.es6.js';
|
|
46
|
+
export { blacklist } from './plugins/utils/blacklist/blacklist.es6.js';
|
|
47
|
+
export { whitelist } from './plugins/utils/whitelist/whitelist.es6.js';
|
|
44
48
|
export { serverFn } from './plugins/handler/serverFn/serverFn.es6.js';
|
|
45
49
|
export { EMPTY_SEARCH, parseSearch } from './utils/parseSearch/parseSearch.es6.js';
|
|
46
50
|
export { stringifySearch } from './utils/stringifySearch/stringifySearch.es6.js';
|
|
@@ -74,13 +78,13 @@ export { minLength } from './utils/rules/minLength/minLength.es6.js';
|
|
|
74
78
|
export { max } from './utils/rules/max/max.es6.js';
|
|
75
79
|
export { min } from './utils/rules/min/min.es6.js';
|
|
76
80
|
export { defaultTo } from './utils/rules/defaultTo/defaultTo.es6.js';
|
|
77
|
-
export { any } from './utils/rules/any/any.es6.js';
|
|
78
81
|
export { bin } from './utils/rules/bin/bin.es6.js';
|
|
79
82
|
export { minBin } from './utils/rules/minBin/minBin.es6.js';
|
|
80
83
|
export { maxBin } from './utils/rules/maxBin/maxBin.es6.js';
|
|
81
84
|
export { binaryAccept } from './utils/rules/binaryAccept/binaryAccept.es6.js';
|
|
82
85
|
export { JSONString } from './utils/JSONString/JSONString.es6.js';
|
|
83
86
|
export { Bin } from './utils/FileData/Bin.es6.js';
|
|
87
|
+
export { generateSchemaTypes, generateTypes } from './utils/generateTypes/generateTypes.es6.js';
|
|
84
88
|
export { serverContext, useServer } from './hooks/useServer/useServer.es6.js';
|
|
85
89
|
export { apiContext, useApi } from './hooks/useApi/useApi.es6.js';
|
|
86
90
|
export { hostContext, useHost } from './hooks/useHost/useHost.es6.js';
|
|
@@ -90,8 +94,8 @@ export { useOneElementError } from './hooks/useOneElementError/useOneElementErro
|
|
|
90
94
|
export { schemaContext, useSchemaContext } from './hooks/useSchemaContext/useSchemaContext.es6.js';
|
|
91
95
|
export { useSchemaType } from './hooks/useSchemaType/useSchemaType.es6.js';
|
|
92
96
|
export { useNewSchema } from './hooks/useNewSchema/useNewSchema.es6.js';
|
|
93
|
-
export {
|
|
94
|
-
export {
|
|
97
|
+
export { useRequest } from './hooks/useRequest/useRequest.es6.js';
|
|
98
|
+
export { useResponse } from './hooks/useResponse/useResponse.es6.js';
|
|
95
99
|
export { paramsContext, useParams } from './hooks/useParams/useParams.es6.js';
|
|
96
100
|
export { useBody } from './hooks/useBody/useBody.es6.js';
|
|
97
101
|
export { useSearch } from './hooks/useSearch/useSearch.es6.js';
|
|
@@ -106,3 +110,7 @@ export { ruleContext, useRule, useSetRule } from './hooks/useRule/useRule.es6.js
|
|
|
106
110
|
export { objectRuleContext, useObjectRule } from './hooks/useObjectRule/useObjectRule.es6.js';
|
|
107
111
|
export { bodyFileContext, useBodyFile } from './hooks/useBodyFile/useBodyFile.es6.js';
|
|
108
112
|
export { usePath } from './hooks/usePath/usePath.es6.js';
|
|
113
|
+
export { useServerPlugin } from './hooks/useServerPlugin/useServerPlugin.es6.js';
|
|
114
|
+
export { useClientIp } from './hooks/useClientIp/useClientIp.es6.js';
|
|
115
|
+
export { serverPlugins, useServerPlugins } from './hooks/useServerPlugins/useServerPlugins.es6.js';
|
|
116
|
+
export { objectSchemaContext, useObjectSchemaContext } from './hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js';
|
package/index.js
CHANGED
|
@@ -20,7 +20,7 @@ var response = require('./plugins/main/response/response.js');
|
|
|
20
20
|
var request = require('./plugins/main/request/request.js');
|
|
21
21
|
var param = require('./plugins/main/param/param.js');
|
|
22
22
|
var body = require('./plugins/main/body/body.js');
|
|
23
|
-
var
|
|
23
|
+
var preset = require('./plugins/main/preset/preset.js');
|
|
24
24
|
var object = require('./plugins/schema/object/object.js');
|
|
25
25
|
var field = require('./plugins/schema/field/field.js');
|
|
26
26
|
var number = require('./plugins/schema/number/number.js');
|
|
@@ -33,6 +33,7 @@ var date = require('./plugins/schema/date/date.js');
|
|
|
33
33
|
var tuple = require('./plugins/schema/tuple/tuple.js');
|
|
34
34
|
var uuid = require('./plugins/schema/uuid/uuid.js');
|
|
35
35
|
var binary = require('./plugins/schema/binary/binary.js');
|
|
36
|
+
var any = require('./plugins/schema/any/any.js');
|
|
36
37
|
var success = require('./plugins/request/success/success.js');
|
|
37
38
|
var error = require('./plugins/request/error/error.js');
|
|
38
39
|
var proxy = require('./plugins/request/proxy/proxy.js');
|
|
@@ -45,6 +46,9 @@ var swagger = require('./plugins/utils/swagger/swagger.js');
|
|
|
45
46
|
var dts = require('./plugins/utils/dts/dts.js');
|
|
46
47
|
var dev = require('./plugins/utils/dev/dev.js');
|
|
47
48
|
var prod = require('./plugins/utils/prod/prod.js');
|
|
49
|
+
var protection = require('./plugins/utils/protection/protection.js');
|
|
50
|
+
var blacklist = require('./plugins/utils/blacklist/blacklist.js');
|
|
51
|
+
var whitelist = require('./plugins/utils/whitelist/whitelist.js');
|
|
48
52
|
var serverFn = require('./plugins/handler/serverFn/serverFn.js');
|
|
49
53
|
var parseSearch = require('./utils/parseSearch/parseSearch.js');
|
|
50
54
|
var stringifySearch = require('./utils/stringifySearch/stringifySearch.js');
|
|
@@ -78,13 +82,13 @@ var minLength = require('./utils/rules/minLength/minLength.js');
|
|
|
78
82
|
var max = require('./utils/rules/max/max.js');
|
|
79
83
|
var min = require('./utils/rules/min/min.js');
|
|
80
84
|
var defaultTo = require('./utils/rules/defaultTo/defaultTo.js');
|
|
81
|
-
var any = require('./utils/rules/any/any.js');
|
|
82
85
|
var bin = require('./utils/rules/bin/bin.js');
|
|
83
86
|
var minBin = require('./utils/rules/minBin/minBin.js');
|
|
84
87
|
var maxBin = require('./utils/rules/maxBin/maxBin.js');
|
|
85
88
|
var binaryAccept = require('./utils/rules/binaryAccept/binaryAccept.js');
|
|
86
89
|
var JSONString = require('./utils/JSONString/JSONString.js');
|
|
87
90
|
var Bin = require('./utils/FileData/Bin.js');
|
|
91
|
+
var generateTypes = require('./utils/generateTypes/generateTypes.js');
|
|
88
92
|
var useServer = require('./hooks/useServer/useServer.js');
|
|
89
93
|
var useApi = require('./hooks/useApi/useApi.js');
|
|
90
94
|
var useHost = require('./hooks/useHost/useHost.js');
|
|
@@ -110,6 +114,10 @@ var useRule = require('./hooks/useRule/useRule.js');
|
|
|
110
114
|
var useObjectRule = require('./hooks/useObjectRule/useObjectRule.js');
|
|
111
115
|
var useBodyFile = require('./hooks/useBodyFile/useBodyFile.js');
|
|
112
116
|
var usePath = require('./hooks/usePath/usePath.js');
|
|
117
|
+
var useServerPlugin = require('./hooks/useServerPlugin/useServerPlugin.js');
|
|
118
|
+
var useClientIp = require('./hooks/useClientIp/useClientIp.js');
|
|
119
|
+
var useServerPlugins = require('./hooks/useServerPlugins/useServerPlugins.js');
|
|
120
|
+
var useObjectSchemaContext = require('./hooks/useObjectSchemaContext/useObjectSchemaContext.js');
|
|
113
121
|
|
|
114
122
|
|
|
115
123
|
|
|
@@ -129,10 +137,11 @@ exports.variable = variable.variable;
|
|
|
129
137
|
exports.tag = tag.tag;
|
|
130
138
|
exports.endpoint = endpoint.endpoint;
|
|
131
139
|
exports.response = response.response;
|
|
140
|
+
exports.statuses = response.statuses;
|
|
132
141
|
exports.request = request.request;
|
|
133
142
|
exports.param = param.param;
|
|
134
143
|
exports.body = body.body;
|
|
135
|
-
exports.
|
|
144
|
+
exports.preset = preset.preset;
|
|
136
145
|
exports.object = object.object;
|
|
137
146
|
exports.field = field.field;
|
|
138
147
|
exports.number = number.number;
|
|
@@ -145,6 +154,7 @@ exports.date = date.date;
|
|
|
145
154
|
exports.tuple = tuple.tuple;
|
|
146
155
|
exports.uuid = uuid.uuid;
|
|
147
156
|
exports.binary = binary.binary;
|
|
157
|
+
exports.any = any.any;
|
|
148
158
|
exports.success = success.success;
|
|
149
159
|
exports.successStatuses = success.successStatuses;
|
|
150
160
|
exports.error = error.error;
|
|
@@ -160,6 +170,9 @@ exports.swagger = swagger.swagger;
|
|
|
160
170
|
exports.dts = dts.dts;
|
|
161
171
|
exports.dev = dev.dev;
|
|
162
172
|
exports.prod = prod.prod;
|
|
173
|
+
exports.protection = protection.protection;
|
|
174
|
+
exports.blacklist = blacklist.blacklist;
|
|
175
|
+
exports.whitelist = whitelist.whitelist;
|
|
163
176
|
exports.serverFn = serverFn.serverFn;
|
|
164
177
|
exports.EMPTY_SEARCH = parseSearch.EMPTY_SEARCH;
|
|
165
178
|
exports.parseSearch = parseSearch.parseSearch;
|
|
@@ -196,13 +209,14 @@ exports.minLength = minLength.minLength;
|
|
|
196
209
|
exports.max = max.max;
|
|
197
210
|
exports.min = min.min;
|
|
198
211
|
exports.defaultTo = defaultTo.defaultTo;
|
|
199
|
-
exports.any = any.any;
|
|
200
212
|
exports.bin = bin.bin;
|
|
201
213
|
exports.minBin = minBin.minBin;
|
|
202
214
|
exports.maxBin = maxBin.maxBin;
|
|
203
215
|
exports.binaryAccept = binaryAccept.binaryAccept;
|
|
204
216
|
exports.JSONString = JSONString.JSONString;
|
|
205
217
|
exports.Bin = Bin.Bin;
|
|
218
|
+
exports.generateSchemaTypes = generateTypes.generateSchemaTypes;
|
|
219
|
+
exports.generateTypes = generateTypes.generateTypes;
|
|
206
220
|
exports.serverContext = useServer.serverContext;
|
|
207
221
|
exports.useServer = useServer.useServer;
|
|
208
222
|
exports.apiContext = useApi.apiContext;
|
|
@@ -217,9 +231,7 @@ exports.schemaContext = useSchemaContext.schemaContext;
|
|
|
217
231
|
exports.useSchemaContext = useSchemaContext.useSchemaContext;
|
|
218
232
|
exports.useSchemaType = useSchemaType.useSchemaType;
|
|
219
233
|
exports.useNewSchema = useNewSchema.useNewSchema;
|
|
220
|
-
exports.requestContext = useRequest.requestContext;
|
|
221
234
|
exports.useRequest = useRequest.useRequest;
|
|
222
|
-
exports.responseContext = useResponse.responseContext;
|
|
223
235
|
exports.useResponse = useResponse.useResponse;
|
|
224
236
|
exports.paramsContext = useParams.paramsContext;
|
|
225
237
|
exports.useParams = useParams.useParams;
|
|
@@ -243,3 +255,9 @@ exports.useObjectRule = useObjectRule.useObjectRule;
|
|
|
243
255
|
exports.bodyFileContext = useBodyFile.bodyFileContext;
|
|
244
256
|
exports.useBodyFile = useBodyFile.useBodyFile;
|
|
245
257
|
exports.usePath = usePath.usePath;
|
|
258
|
+
exports.useServerPlugin = useServerPlugin.useServerPlugin;
|
|
259
|
+
exports.useClientIp = useClientIp.useClientIp;
|
|
260
|
+
exports.serverPlugins = useServerPlugins.serverPlugins;
|
|
261
|
+
exports.useServerPlugins = useServerPlugins.useServerPlugins;
|
|
262
|
+
exports.objectSchemaContext = useObjectSchemaContext.objectSchemaContext;
|
|
263
|
+
exports.useObjectSchemaContext = useObjectSchemaContext.useObjectSchemaContext;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@innet/server",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.20",
|
|
4
4
|
"description": "Create server-side application with innet",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.es6.js",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"@types/multiparty": "^0.0.33",
|
|
43
43
|
"@types/qs": "^6.9.7",
|
|
44
44
|
"cookie": "^0.5.0",
|
|
45
|
-
"dtsgenerator": "^3.18.0",
|
|
46
45
|
"http-proxy": "^1.18.1",
|
|
47
46
|
"innet": "^2.0.0-alpha.3",
|
|
48
47
|
"is-invalid-path": "^1.0.2",
|
|
@@ -50,6 +49,7 @@
|
|
|
50
49
|
"multiparty": "^4.2.3",
|
|
51
50
|
"openapi-types": "^12.1.3",
|
|
52
51
|
"qs": "^6.11.2",
|
|
52
|
+
"request-ip": "^3.3.0",
|
|
53
53
|
"string_decoder": "^1.3.0",
|
|
54
54
|
"tslib": "^2.6.1",
|
|
55
55
|
"uuid": "^9.0.0",
|
|
@@ -1,52 +1,58 @@
|
|
|
1
1
|
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import innet, { useNewHandler, useApp } from 'innet';
|
|
3
|
-
import { onDestroy } from 'watch-state';
|
|
4
3
|
import '../../../hooks/index.es6.js';
|
|
5
4
|
import '../../../utils/index.es6.js';
|
|
6
5
|
import '../../../utils/rules/index.es6.js';
|
|
7
|
-
import {
|
|
6
|
+
import { serverPlugins } from '../../../hooks/useServerPlugins/useServerPlugins.es6.js';
|
|
8
7
|
import { apiContext } from '../../../hooks/useApi/useApi.es6.js';
|
|
9
|
-
import {
|
|
8
|
+
import { useServerPlugin } from '../../../hooks/useServerPlugin/useServerPlugin.es6.js';
|
|
9
|
+
import { useAction, actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
10
10
|
import { JSONString } from '../../../utils/JSONString/JSONString.es6.js';
|
|
11
11
|
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
12
|
import { paramsContext } from '../../../hooks/useParams/useParams.es6.js';
|
|
15
|
-
import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
16
13
|
|
|
17
14
|
const api = () => {
|
|
18
|
-
var _a;
|
|
19
15
|
const handler = useNewHandler();
|
|
20
16
|
const { props = {}, children } = useApp();
|
|
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 { prefix = '', title = '', include, exclude, version = process.env.INNET_API_VERSION || '0.0.0' } = props, rest = __rest(props, ["prefix", "title", "include", "exclude", "version"]);
|
|
18
|
+
const info = Object.assign(Object.assign({}, rest), { version, title });
|
|
24
19
|
const endpoints = {};
|
|
25
20
|
const docs = {
|
|
26
21
|
openapi: '3.1.0',
|
|
27
22
|
info,
|
|
28
23
|
paths: {},
|
|
29
24
|
};
|
|
30
|
-
const
|
|
31
|
-
const context = { docs, endpoints, prefix,
|
|
25
|
+
const plugins = new Set();
|
|
26
|
+
const context = { docs, endpoints, prefix, refRules: {} };
|
|
27
|
+
const condition = (action) => {
|
|
28
|
+
const path = action.parsedUrl.path;
|
|
29
|
+
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
30
|
+
if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
if (include && !include.test(url)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
serverPlugins.set(handler, plugins);
|
|
32
39
|
apiContext.set(handler, context);
|
|
33
|
-
|
|
34
|
-
var _b, _c, _d, _e, _f
|
|
35
|
-
|
|
40
|
+
useServerPlugin(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
var _a, _b, _c, _d, _e, _f;
|
|
42
|
+
const action = useAction();
|
|
43
|
+
if (!condition(action))
|
|
36
44
|
return;
|
|
37
|
-
const
|
|
45
|
+
const actionHandler = useNewHandler();
|
|
38
46
|
const path = action.parsedUrl.path;
|
|
39
47
|
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
48
|
+
const { req, res } = action;
|
|
40
49
|
if (url === (prefix || '')) {
|
|
41
50
|
res.setHeader('Content-Type', 'application/json');
|
|
42
51
|
res.write(JSONString(docs));
|
|
43
52
|
res.end();
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!url.startsWith(prefix)) {
|
|
47
|
-
return;
|
|
53
|
+
return null;
|
|
48
54
|
}
|
|
49
|
-
const method = ((
|
|
55
|
+
const method = ((_b = (_a = req.method) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : 'get');
|
|
50
56
|
const rawSplitPath = url.slice(prefix.length).split('/').slice(1);
|
|
51
57
|
const splitPath = rawSplitPath.at(-1) ? rawSplitPath : rawSplitPath.slice(0, -1);
|
|
52
58
|
const endpoint = endpoints[method];
|
|
@@ -120,32 +126,34 @@ const api = () => {
|
|
|
120
126
|
if (checkActionRules(bodyRules, 'body'))
|
|
121
127
|
return true;
|
|
122
128
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
paramsContext.set(actionHandler, params);
|
|
130
|
+
for (const plugin of runEndpoint.plugins) {
|
|
131
|
+
const result = yield plugin();
|
|
132
|
+
if (result === undefined)
|
|
133
|
+
continue;
|
|
134
|
+
innet(result, actionHandler);
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
129
137
|
return true;
|
|
130
138
|
});
|
|
131
139
|
}
|
|
132
|
-
if ((
|
|
133
|
-
if (!(yield run((
|
|
140
|
+
if ((_d = (_c = currentEndpoint.static) === null || _c === void 0 ? void 0 : _c[key]) === null || _d === void 0 ? void 0 : _d.plugins) {
|
|
141
|
+
if (!(yield run((_e = currentEndpoint.static) === null || _e === void 0 ? void 0 : _e[key], params)))
|
|
134
142
|
continue;
|
|
135
|
-
return;
|
|
143
|
+
return null;
|
|
136
144
|
}
|
|
137
145
|
if (currentEndpoint.dynamic) {
|
|
138
146
|
for (const dynamicEndpoint of currentEndpoint.dynamic) {
|
|
139
|
-
if (dynamicEndpoint.
|
|
147
|
+
if (dynamicEndpoint.plugins) {
|
|
140
148
|
if (!(yield run(dynamicEndpoint, Object.assign(Object.assign({}, params), { [dynamicEndpoint.key.slice(1, -1)]: key }))))
|
|
141
149
|
continue;
|
|
142
|
-
return;
|
|
150
|
+
return null;
|
|
143
151
|
}
|
|
144
152
|
}
|
|
145
153
|
}
|
|
146
154
|
break;
|
|
147
155
|
}
|
|
148
|
-
if ((
|
|
156
|
+
if ((_f = currentEndpoint.static) === null || _f === void 0 ? void 0 : _f[key]) {
|
|
149
157
|
endpointQueue.push([deep + 1, currentEndpoint.static[key], params]);
|
|
150
158
|
}
|
|
151
159
|
if (currentEndpoint.dynamic) {
|
|
@@ -154,26 +162,16 @@ const api = () => {
|
|
|
154
162
|
}
|
|
155
163
|
}
|
|
156
164
|
}
|
|
157
|
-
for (const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const newHandler = Object.create(context.fallback.handler);
|
|
163
|
-
responseContext.set(newHandler, res);
|
|
164
|
-
requestContext.set(newHandler, req);
|
|
165
|
+
for (const plugin of plugins) {
|
|
166
|
+
const result = yield plugin();
|
|
167
|
+
if (result === undefined)
|
|
168
|
+
continue;
|
|
169
|
+
const newHandler = Object.create(handler);
|
|
165
170
|
actionContext.set(newHandler, action);
|
|
166
|
-
innet(
|
|
167
|
-
|
|
168
|
-
else {
|
|
169
|
-
res.statusCode = 404;
|
|
170
|
-
res.end();
|
|
171
|
+
innet(result, newHandler);
|
|
172
|
+
return null;
|
|
171
173
|
}
|
|
172
|
-
});
|
|
173
|
-
server.on('request', listener);
|
|
174
|
-
onDestroy(() => {
|
|
175
|
-
server.off('request', listener);
|
|
176
|
-
});
|
|
174
|
+
}));
|
|
177
175
|
innet(children, handler);
|
|
178
176
|
};
|
|
179
177
|
|