@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 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
- [useServer](#useserver)
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
- [useComponentName](#usecomponentname)
3330
- [useRequestPlugin](#userequestplugin)
3329
+ [useClientIp](#useclientip)
3331
3330
 
3332
- ---
3331
+ Server start
3332
+ [useRequestPlugin](#userequestplugin)
3333
3333
 
3334
- ### useServer
3335
-
3336
- [← back](#hooks)
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
- return <success />
3352
- }
3353
- ```
3338
+ ---
3354
3339
 
3355
3340
  ### useRequest
3356
3341
 
@@ -3505,21 +3490,21 @@ export function Component () {
3505
3490
  }
3506
3491
  ```
3507
3492
 
3508
- ### useComponentName
3493
+ ### useClientIp
3509
3494
 
3510
3495
  [← back](#hooks)
3511
3496
 
3512
- This hook returns name of current component.
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 { useComponentName } from '@innet/sever'
3502
+ import { useClientIp } from '@innet/sever'
3517
3503
 
3518
3504
  export function Component () {
3519
- // returns this ^-------^
3520
- const name = useComponentName()
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
@@ -24,3 +24,4 @@ export * from './useObjectRule';
24
24
  export * from './useBodyFile';
25
25
  export * from './usePath';
26
26
  export * from './useRequestPlugin';
27
+ export * from './useClientIp';
@@ -24,3 +24,4 @@ import './useObjectRule/index.es6.js';
24
24
  import './useBodyFile/index.es6.js';
25
25
  import './usePath/index.es6.js';
26
26
  import './useRequestPlugin/index.es6.js';
27
+ import './useClientIp/index.es6.js';
package/hooks/index.js CHANGED
@@ -26,4 +26,5 @@ require('./useObjectRule/index.js');
26
26
  require('./useBodyFile/index.js');
27
27
  require('./usePath/index.js');
28
28
  require('./useRequestPlugin/index.js');
29
+ require('./useClientIp/index.js');
29
30
 
@@ -0,0 +1 @@
1
+ export * from './useClientIp';
@@ -0,0 +1 @@
1
+ export { useClientIp } from './useClientIp.es6.js';
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var useClientIp = require('./useClientIp.js');
6
+
7
+
8
+
9
+ exports.useClientIp = useClientIp.useClientIp;
@@ -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.7",
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",