@innet/server 2.0.0-alpha.30 → 2.0.0-alpha.31
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 +23 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.es6.js +1 -0
- package/hooks/index.js +1 -0
- 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/index.es6.js +1 -0
- package/index.js +3 -0
- package/package.json +1 -1
- package/plugins/main/response/response.es6.js +6 -4
- package/plugins/main/response/response.js +6 -4
- package/plugins/main/server/server.es6.js +2 -0
- package/plugins/main/server/server.js +2 -0
- package/utils/generateTypes/generateTypes.es6.js +10 -5
- package/utils/generateTypes/generateTypes.js +10 -5
package/README.md
CHANGED
|
@@ -3253,6 +3253,29 @@ export default (
|
|
|
3253
3253
|
)
|
|
3254
3254
|
```
|
|
3255
3255
|
|
|
3256
|
+
#### deprecated
|
|
3257
|
+
|
|
3258
|
+
You can deprecate a field.
|
|
3259
|
+
|
|
3260
|
+
*src/app.tsx*
|
|
3261
|
+
```typescript jsx
|
|
3262
|
+
export default (
|
|
3263
|
+
<server>
|
|
3264
|
+
<api>
|
|
3265
|
+
<endpoint method='post' path='/users'>
|
|
3266
|
+
<body>
|
|
3267
|
+
<object>
|
|
3268
|
+
<field key='name' />
|
|
3269
|
+
<field key='surname' />
|
|
3270
|
+
<field deprecated optional key='birthbay' />
|
|
3271
|
+
</object>
|
|
3272
|
+
</body>
|
|
3273
|
+
</endpoint>
|
|
3274
|
+
</api>
|
|
3275
|
+
</server>
|
|
3276
|
+
)
|
|
3277
|
+
```
|
|
3278
|
+
|
|
3256
3279
|
## Run-Time
|
|
3257
3280
|
|
|
3258
3281
|
Next elements relate to run-time action.
|
package/hooks/index.d.ts
CHANGED
package/hooks/index.es6.js
CHANGED
package/hooks/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useRequestHandler';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { requestHandlerContext, useRequestHandler } from './useRequestHandler.es6.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var useRequestHandler = require('./useRequestHandler.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
exports.requestHandlerContext = useRequestHandler.requestHandlerContext;
|
|
10
|
+
exports.useRequestHandler = useRequestHandler.useRequestHandler;
|
|
@@ -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 requestHandlerContext = new Context();
|
|
6
|
+
function useRequestHandler() {
|
|
7
|
+
const handler = useContext(requestHandlerContext);
|
|
8
|
+
if (!handler) {
|
|
9
|
+
useThrow('You cannot use useRequestHandler inside {type}, this hook can be used only in a request component');
|
|
10
|
+
}
|
|
11
|
+
return handler;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { requestHandlerContext, useRequestHandler };
|
|
@@ -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 requestHandlerContext = new jsx.Context();
|
|
10
|
+
function useRequestHandler() {
|
|
11
|
+
const handler = jsx.useContext(requestHandlerContext);
|
|
12
|
+
if (!handler) {
|
|
13
|
+
useThrow.useThrow('You cannot use useRequestHandler inside {type}, this hook can be used only in a request component');
|
|
14
|
+
}
|
|
15
|
+
return handler;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.requestHandlerContext = requestHandlerContext;
|
|
19
|
+
exports.useRequestHandler = useRequestHandler;
|
package/index.es6.js
CHANGED
|
@@ -115,3 +115,4 @@ export { serverPlugins, useServerPlugins } from './hooks/useServerPlugins/useSer
|
|
|
115
115
|
export { objectSchemaContext, useObjectSchemaContext } from './hooks/useObjectSchemaContext/useObjectSchemaContext.es6.js';
|
|
116
116
|
export { serverPortContext, useServerPort } from './hooks/useServerPort/useServerPort.es6.js';
|
|
117
117
|
export { serverHttpsContext, useIsServerHttps } from './hooks/useIsServerHttps/useIsServerHttps.es6.js';
|
|
118
|
+
export { requestHandlerContext, useRequestHandler } from './hooks/useRequestHandler/useRequestHandler.es6.js';
|
package/index.js
CHANGED
|
@@ -119,6 +119,7 @@ var useServerPlugins = require('./hooks/useServerPlugins/useServerPlugins.js');
|
|
|
119
119
|
var useObjectSchemaContext = require('./hooks/useObjectSchemaContext/useObjectSchemaContext.js');
|
|
120
120
|
var useServerPort = require('./hooks/useServerPort/useServerPort.js');
|
|
121
121
|
var useIsServerHttps = require('./hooks/useIsServerHttps/useIsServerHttps.js');
|
|
122
|
+
var useRequestHandler = require('./hooks/useRequestHandler/useRequestHandler.js');
|
|
122
123
|
|
|
123
124
|
|
|
124
125
|
|
|
@@ -265,3 +266,5 @@ exports.serverPortContext = useServerPort.serverPortContext;
|
|
|
265
266
|
exports.useServerPort = useServerPort.useServerPort;
|
|
266
267
|
exports.serverHttpsContext = useIsServerHttps.serverHttpsContext;
|
|
267
268
|
exports.useIsServerHttps = useIsServerHttps.useIsServerHttps;
|
|
269
|
+
exports.requestHandlerContext = useRequestHandler.requestHandlerContext;
|
|
270
|
+
exports.useRequestHandler = useRequestHandler.useRequestHandler;
|
package/package.json
CHANGED
|
@@ -33,13 +33,15 @@ const response = () => {
|
|
|
33
33
|
if ((_a = defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content) === null || _a === void 0 ? void 0 : _a[type]) {
|
|
34
34
|
throw Error(`status ${status} and type ${type} for '${path}' already used`);
|
|
35
35
|
}
|
|
36
|
-
const schema = {};
|
|
36
|
+
const schema = status === 204 || !children ? undefined : {};
|
|
37
37
|
const response = {
|
|
38
|
-
content: Object.assign(Object.assign({}, defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content), { [type]: {
|
|
39
|
-
schema,
|
|
40
|
-
} }),
|
|
41
38
|
description,
|
|
42
39
|
};
|
|
40
|
+
if (schema) {
|
|
41
|
+
response.content = Object.assign(Object.assign({}, defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content), { [type]: {
|
|
42
|
+
schema,
|
|
43
|
+
} });
|
|
44
|
+
}
|
|
43
45
|
operation.responses[status] = response;
|
|
44
46
|
schemaContext.set(handler, schema);
|
|
45
47
|
const rules = getOrAdd(endpoint, 'endpoint.rules', [{}, {}]);
|
|
@@ -41,13 +41,15 @@ const response = () => {
|
|
|
41
41
|
if ((_a = defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content) === null || _a === void 0 ? void 0 : _a[type]) {
|
|
42
42
|
throw Error(`status ${status} and type ${type} for '${path}' already used`);
|
|
43
43
|
}
|
|
44
|
-
const schema = {};
|
|
44
|
+
const schema = status === 204 || !children ? undefined : {};
|
|
45
45
|
const response = {
|
|
46
|
-
content: Object.assign(Object.assign({}, defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content), { [type]: {
|
|
47
|
-
schema,
|
|
48
|
-
} }),
|
|
49
46
|
description,
|
|
50
47
|
};
|
|
48
|
+
if (schema) {
|
|
49
|
+
response.content = Object.assign(Object.assign({}, defaultResponse === null || defaultResponse === void 0 ? void 0 : defaultResponse.content), { [type]: {
|
|
50
|
+
schema,
|
|
51
|
+
} });
|
|
52
|
+
}
|
|
51
53
|
operation.responses[status] = response;
|
|
52
54
|
useSchemaContext.schemaContext.set(handler, schema);
|
|
53
55
|
const rules = getOrAdd.getOrAdd(endpoint, 'endpoint.rules', [{}, {}]);
|
|
@@ -12,6 +12,7 @@ import { serverPortContext } from '../../../hooks/useServerPort/useServerPort.es
|
|
|
12
12
|
import { serverHttpsContext } from '../../../hooks/useIsServerHttps/useIsServerHttps.es6.js';
|
|
13
13
|
import { Action } from '../../../utils/action/Action.es6.js';
|
|
14
14
|
import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
15
|
+
import { requestHandlerContext } from '../../../hooks/useRequestHandler/useRequestHandler.es6.js';
|
|
15
16
|
|
|
16
17
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
17
18
|
const isInvalidPath = require('is-invalid-path');
|
|
@@ -55,6 +56,7 @@ const server = () => {
|
|
|
55
56
|
const action = new Action(req, res);
|
|
56
57
|
const requestHandler = Object.create(handler);
|
|
57
58
|
actionContext.set(requestHandler, action);
|
|
59
|
+
requestHandlerContext.set(requestHandler, requestHandler);
|
|
58
60
|
function server() {
|
|
59
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
62
|
for (const plugin of plugins) {
|
|
@@ -16,6 +16,7 @@ var useServerPort = require('../../../hooks/useServerPort/useServerPort.js');
|
|
|
16
16
|
var useIsServerHttps = require('../../../hooks/useIsServerHttps/useIsServerHttps.js');
|
|
17
17
|
var Action = require('../../../utils/action/Action.js');
|
|
18
18
|
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
19
|
+
var useRequestHandler = require('../../../hooks/useRequestHandler/useRequestHandler.js');
|
|
19
20
|
|
|
20
21
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
22
|
|
|
@@ -66,6 +67,7 @@ const server = () => {
|
|
|
66
67
|
const action = new Action.Action(req, res);
|
|
67
68
|
const requestHandler = Object.create(handler);
|
|
68
69
|
useAction.actionContext.set(requestHandler, action);
|
|
70
|
+
useRequestHandler.requestHandlerContext.set(requestHandler, requestHandler);
|
|
69
71
|
function server() {
|
|
70
72
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
71
73
|
for (const plugin of plugins) {
|
|
@@ -137,12 +137,17 @@ function generateTypes(docs, namespace = 'Api') {
|
|
|
137
137
|
let multiple = false;
|
|
138
138
|
const response = responses[key];
|
|
139
139
|
result += ` ['${key}']: `;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
if (!response.content) {
|
|
141
|
+
result += 'void';
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
for (const type in response.content) {
|
|
145
|
+
if (multiple) {
|
|
146
|
+
result += ' | ';
|
|
147
|
+
}
|
|
148
|
+
result += generateSchemaTypes(response.content[type].schema, 10, '');
|
|
149
|
+
multiple = true;
|
|
143
150
|
}
|
|
144
|
-
result += generateSchemaTypes(response.content[type].schema, 10, '');
|
|
145
|
-
multiple = true;
|
|
146
151
|
}
|
|
147
152
|
result += '\n';
|
|
148
153
|
}
|
|
@@ -141,12 +141,17 @@ function generateTypes(docs, namespace = 'Api') {
|
|
|
141
141
|
let multiple = false;
|
|
142
142
|
const response = responses[key];
|
|
143
143
|
result += ` ['${key}']: `;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
144
|
+
if (!response.content) {
|
|
145
|
+
result += 'void';
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
for (const type in response.content) {
|
|
149
|
+
if (multiple) {
|
|
150
|
+
result += ' | ';
|
|
151
|
+
}
|
|
152
|
+
result += generateSchemaTypes(response.content[type].schema, 10, '');
|
|
153
|
+
multiple = true;
|
|
147
154
|
}
|
|
148
|
-
result += generateSchemaTypes(response.content[type].schema, 10, '');
|
|
149
|
-
multiple = true;
|
|
150
155
|
}
|
|
151
156
|
result += '\n';
|
|
152
157
|
}
|