@innet/server 2.0.0-alpha.7 → 2.0.0-alpha.8
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 +55 -30
- package/hooks/index.d.ts +1 -0
- package/hooks/index.es6.js +1 -0
- package/hooks/index.js +1 -0
- 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 +15 -0
- package/hooks/useClientIp/useClientIp.js +19 -0
- package/index.es6.js +1 -0
- package/index.js +2 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -3317,7 +3317,7 @@ Hook functions give you all features to control parent element functionality.
|
|
|
3317
3317
|
|
|
3318
3318
|
[← back](#index)
|
|
3319
3319
|
|
|
3320
|
-
|
|
3320
|
+
Real-time
|
|
3321
3321
|
[useRequest](#userequest)
|
|
3322
3322
|
[useResponse](#useresponse)
|
|
3323
3323
|
[useHeaders](#useheaders)
|
|
@@ -3326,31 +3326,16 @@ Hook functions give you all features to control parent element functionality.
|
|
|
3326
3326
|
[useParams](#useparams)
|
|
3327
3327
|
[useSearch](#usesearch)
|
|
3328
3328
|
[useBody](#usebody)
|
|
3329
|
-
[
|
|
3330
|
-
[useRequestPlugin](#userequestplugin)
|
|
3329
|
+
[useClientIp](#useclientip)
|
|
3331
3330
|
|
|
3332
|
-
|
|
3331
|
+
Server start
|
|
3332
|
+
[useRequestPlugin](#userequestplugin)
|
|
3333
3333
|
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
[
|
|
3337
|
-
|
|
3338
|
-
This hook MUST be used in a component placed in `<server>`.
|
|
3339
|
-
This hook returns current http(s) server instance.
|
|
3340
|
-
|
|
3341
|
-
*src/Component.tsx*
|
|
3342
|
-
|
|
3343
|
-
```typescript jsx
|
|
3344
|
-
import { useServer } from '@innet/sever'
|
|
3345
|
-
|
|
3346
|
-
export function Component () {
|
|
3347
|
-
const server = useServer()
|
|
3348
|
-
|
|
3349
|
-
console.log(server)
|
|
3334
|
+
Both
|
|
3335
|
+
[useServer](#useserver)
|
|
3336
|
+
[useComponentName](#usecomponentname)
|
|
3350
3337
|
|
|
3351
|
-
|
|
3352
|
-
}
|
|
3353
|
-
```
|
|
3338
|
+
---
|
|
3354
3339
|
|
|
3355
3340
|
### useRequest
|
|
3356
3341
|
|
|
@@ -3505,21 +3490,21 @@ export function Component () {
|
|
|
3505
3490
|
}
|
|
3506
3491
|
```
|
|
3507
3492
|
|
|
3508
|
-
###
|
|
3493
|
+
### useClientIp
|
|
3509
3494
|
|
|
3510
3495
|
[← back](#hooks)
|
|
3511
3496
|
|
|
3512
|
-
This hook returns
|
|
3497
|
+
This hook returns request user IP.
|
|
3498
|
+
This hook MUST be used in a component placed in [\<request>](#request) or [\<fallback>](#fallback).
|
|
3513
3499
|
|
|
3514
3500
|
*src/Component.tsx*
|
|
3515
3501
|
```typescript jsx
|
|
3516
|
-
import {
|
|
3502
|
+
import { useClientIp } from '@innet/sever'
|
|
3517
3503
|
|
|
3518
3504
|
export function Component () {
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
return <success>{{ name }}</success>
|
|
3505
|
+
const ip = useClientIp()
|
|
3506
|
+
|
|
3507
|
+
return <success>{{ ip }}</success>
|
|
3523
3508
|
}
|
|
3524
3509
|
```
|
|
3525
3510
|
|
|
@@ -3531,6 +3516,8 @@ This hook adds a request plugin function.
|
|
|
3531
3516
|
The function runs before check endpoints.
|
|
3532
3517
|
If the function returns `true` the request handling stops, and you get full control over the request.
|
|
3533
3518
|
|
|
3519
|
+
This hook MUST be used in a component placed in [\<api>](#api).
|
|
3520
|
+
|
|
3534
3521
|
*src/SecretEndpoint.tsx*
|
|
3535
3522
|
```typescript jsx
|
|
3536
3523
|
import { useRequestPlugin } from '@innet/sever'
|
|
@@ -3568,6 +3555,44 @@ export default (
|
|
|
3568
3555
|
Any endpoint returns an error except for `/secret-endpoint`.
|
|
3569
3556
|
Elements order does not matter.
|
|
3570
3557
|
|
|
3558
|
+
### useServer
|
|
3559
|
+
|
|
3560
|
+
[← back](#hooks)
|
|
3561
|
+
|
|
3562
|
+
This hook MUST be used in a component placed in [\<server>](#server).
|
|
3563
|
+
This hook returns current http(s) server instance.
|
|
3564
|
+
|
|
3565
|
+
*src/Component.tsx*
|
|
3566
|
+
```typescript jsx
|
|
3567
|
+
import { useServer } from '@innet/sever'
|
|
3568
|
+
|
|
3569
|
+
export function Component () {
|
|
3570
|
+
const server = useServer()
|
|
3571
|
+
|
|
3572
|
+
console.log(server)
|
|
3573
|
+
|
|
3574
|
+
return <success />
|
|
3575
|
+
}
|
|
3576
|
+
```
|
|
3577
|
+
|
|
3578
|
+
### useComponentName
|
|
3579
|
+
|
|
3580
|
+
[← back](#hooks)
|
|
3581
|
+
|
|
3582
|
+
This hook returns name of current component.
|
|
3583
|
+
|
|
3584
|
+
*src/Component.tsx*
|
|
3585
|
+
```typescript jsx
|
|
3586
|
+
import { useComponentName } from '@innet/sever'
|
|
3587
|
+
|
|
3588
|
+
export function Component () {
|
|
3589
|
+
// returns this ^-------^
|
|
3590
|
+
const name = useComponentName()
|
|
3591
|
+
|
|
3592
|
+
return <success>{{ name }}</success>
|
|
3593
|
+
}
|
|
3594
|
+
```
|
|
3595
|
+
|
|
3571
3596
|
## Issues
|
|
3572
3597
|
If you find a bug or have a suggestion, please file an issue on [GitHub](https://github.com/d8corp/innet-server/issues).
|
|
3573
3598
|
|
package/hooks/index.d.ts
CHANGED
package/hooks/index.es6.js
CHANGED
package/hooks/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useClientIp';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useClientIp } from './useClientIp.es6.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useClientIp(): string | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getClientIp } from 'request-ip';
|
|
2
|
+
import '../useRequest/index.es6.js';
|
|
3
|
+
import '../useThrow/index.es6.js';
|
|
4
|
+
import { useRequest } from '../useRequest/useRequest.es6.js';
|
|
5
|
+
import { useThrow } from '../useThrow/useThrow.es6.js';
|
|
6
|
+
|
|
7
|
+
function useClientIp() {
|
|
8
|
+
const req = useRequest();
|
|
9
|
+
if (!req) {
|
|
10
|
+
useThrow('<{type}> MUST be in <request> or <fallback>');
|
|
11
|
+
}
|
|
12
|
+
return getClientIp(req);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { useClientIp };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var requestIp = require('request-ip');
|
|
6
|
+
require('../useRequest/index.js');
|
|
7
|
+
require('../useThrow/index.js');
|
|
8
|
+
var useRequest = require('../useRequest/useRequest.js');
|
|
9
|
+
var useThrow = require('../useThrow/useThrow.js');
|
|
10
|
+
|
|
11
|
+
function useClientIp() {
|
|
12
|
+
const req = useRequest.useRequest();
|
|
13
|
+
if (!req) {
|
|
14
|
+
useThrow.useThrow('<{type}> MUST be in <request> or <fallback>');
|
|
15
|
+
}
|
|
16
|
+
return requestIp.getClientIp(req);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.useClientIp = useClientIp;
|
package/index.es6.js
CHANGED
|
@@ -108,3 +108,4 @@ export { objectRuleContext, useObjectRule } from './hooks/useObjectRule/useObjec
|
|
|
108
108
|
export { bodyFileContext, useBodyFile } from './hooks/useBodyFile/useBodyFile.es6.js';
|
|
109
109
|
export { usePath } from './hooks/usePath/usePath.es6.js';
|
|
110
110
|
export { useRequestPlugin } from './hooks/useRequestPlugin/useRequestPlugin.es6.js';
|
|
111
|
+
export { useClientIp } from './hooks/useClientIp/useClientIp.es6.js';
|
package/index.js
CHANGED
|
@@ -112,6 +112,7 @@ var useObjectRule = require('./hooks/useObjectRule/useObjectRule.js');
|
|
|
112
112
|
var useBodyFile = require('./hooks/useBodyFile/useBodyFile.js');
|
|
113
113
|
var usePath = require('./hooks/usePath/usePath.js');
|
|
114
114
|
var useRequestPlugin = require('./hooks/useRequestPlugin/useRequestPlugin.js');
|
|
115
|
+
var useClientIp = require('./hooks/useClientIp/useClientIp.js');
|
|
115
116
|
|
|
116
117
|
|
|
117
118
|
|
|
@@ -248,3 +249,4 @@ exports.bodyFileContext = useBodyFile.bodyFileContext;
|
|
|
248
249
|
exports.useBodyFile = useBodyFile.useBodyFile;
|
|
249
250
|
exports.usePath = usePath.usePath;
|
|
250
251
|
exports.useRequestPlugin = useRequestPlugin.useRequestPlugin;
|
|
252
|
+
exports.useClientIp = useClientIp.useClientIp;
|
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.8",
|
|
4
4
|
"description": "Create server-side application with innet",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.es6.js",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"multiparty": "^4.2.3",
|
|
50
50
|
"openapi-types": "^12.1.3",
|
|
51
51
|
"qs": "^6.11.2",
|
|
52
|
+
"request-ip": "^3.3.0",
|
|
52
53
|
"string_decoder": "^1.3.0",
|
|
53
54
|
"tslib": "^2.6.1",
|
|
54
55
|
"uuid": "^9.0.0",
|