@innet/server 2.0.0-alpha.11 → 2.0.0-alpha.13
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 +187 -6
- package/handler/handler.d.ts +7 -1
- package/handler/handler.es6.js +6 -0
- package/handler/handler.js +6 -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/useServer/useServer.es6.js +3 -1
- package/hooks/useServer/useServer.js +3 -1
- package/index.es6.js +5 -2
- package/index.js +7 -2
- package/package.json +1 -1
- package/plugins/main/api/api.d.ts +2 -0
- package/plugins/main/api/api.es6.js +17 -11
- package/plugins/main/api/api.js +17 -11
- package/plugins/main/index.d.ts +1 -0
- package/plugins/main/index.es6.js +1 -0
- package/plugins/main/index.js +1 -0
- package/plugins/main/preset/index.d.ts +1 -0
- package/plugins/main/preset/index.es6.js +1 -0
- package/plugins/main/preset/index.js +10 -0
- package/plugins/main/preset/preset.d.ts +7 -0
- package/plugins/main/preset/preset.es6.js +26 -0
- package/plugins/main/preset/preset.js +35 -0
- package/plugins/utils/blacklist/blacklist.d.ts +4 -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/index.d.ts +2 -0
- package/plugins/utils/index.es6.js +2 -0
- package/plugins/utils/index.js +2 -0
- 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 +18 -0
- package/plugins/utils/whitelist/whitelist.js +22 -0
- package/utils/generateTypes/generateTypes.d.ts +1 -1
- package/utils/generateTypes/generateTypes.es6.js +13 -2
- package/utils/generateTypes/generateTypes.js +13 -2
package/README.md
CHANGED
|
@@ -107,7 +107,8 @@ You will see a base Open API JSON structure.
|
|
|
107
107
|
[← back](#index)
|
|
108
108
|
|
|
109
109
|
[\<server>](#server)
|
|
110
|
-
[\<api>](#api)
|
|
110
|
+
[\<api>](#api)
|
|
111
|
+
[\<preset>](#preset)
|
|
111
112
|
|
|
112
113
|
---
|
|
113
114
|
|
|
@@ -309,6 +310,75 @@ export default (
|
|
|
309
310
|
)
|
|
310
311
|
```
|
|
311
312
|
|
|
313
|
+
#### include
|
|
314
|
+
|
|
315
|
+
A regular expression scopes the API.
|
|
316
|
+
|
|
317
|
+
*src/app.tsx*
|
|
318
|
+
```typescript jsx
|
|
319
|
+
export default (
|
|
320
|
+
<server>
|
|
321
|
+
<api
|
|
322
|
+
include={/$\/(api|openapi)/}
|
|
323
|
+
/>
|
|
324
|
+
</server>
|
|
325
|
+
)
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
#### exclude
|
|
329
|
+
|
|
330
|
+
A regular expression does not scope the API.
|
|
331
|
+
|
|
332
|
+
*src/app.tsx*
|
|
333
|
+
```typescript jsx
|
|
334
|
+
export default (
|
|
335
|
+
<server>
|
|
336
|
+
<api prefix='/api' />
|
|
337
|
+
<api prefix='/openapi' />
|
|
338
|
+
<api exclude={/$\/(api|openapi)/} />
|
|
339
|
+
</server>
|
|
340
|
+
)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### \<preset>
|
|
344
|
+
|
|
345
|
+
[← back](#main)
|
|
346
|
+
|
|
347
|
+
`<preset>` element MUST be placed in `<server>` element.
|
|
348
|
+
This element adds handling of each request.
|
|
349
|
+
|
|
350
|
+
*src/app.tsx*
|
|
351
|
+
```typescript jsx
|
|
352
|
+
export default (
|
|
353
|
+
<server>
|
|
354
|
+
<preset>
|
|
355
|
+
<header
|
|
356
|
+
key='Test'
|
|
357
|
+
value='Ok'
|
|
358
|
+
/>
|
|
359
|
+
</preset>
|
|
360
|
+
</server>
|
|
361
|
+
)
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
Place the element inside [\<api>](#api) to preset it on the api requests scope.
|
|
365
|
+
|
|
366
|
+
*src/app.tsx*
|
|
367
|
+
```typescript jsx
|
|
368
|
+
export default (
|
|
369
|
+
<server>
|
|
370
|
+
<api prefix='/api'>
|
|
371
|
+
<preset>
|
|
372
|
+
<header
|
|
373
|
+
key='Cache-Control'
|
|
374
|
+
value='no-cache, no-store, must-revalidate'
|
|
375
|
+
/>
|
|
376
|
+
</preset>
|
|
377
|
+
</api>
|
|
378
|
+
</server>
|
|
379
|
+
)
|
|
380
|
+
```
|
|
381
|
+
|
|
312
382
|
## Utils
|
|
313
383
|
|
|
314
384
|
This section contains elements of utils.
|
|
@@ -319,6 +389,8 @@ This section contains elements of utils.
|
|
|
319
389
|
[\<dev>](#dev)
|
|
320
390
|
[\<prod>](#prod)
|
|
321
391
|
[\<dts>](#dts)
|
|
392
|
+
[\<blacklist>](#blacklist)
|
|
393
|
+
[\<whitelist>](#whitelist)
|
|
322
394
|
[\<protection>](#protection)
|
|
323
395
|
|
|
324
396
|
---
|
|
@@ -402,16 +474,12 @@ export default (
|
|
|
402
474
|
Use `<dts>` element to add types generation.
|
|
403
475
|
`<dts>` element MUST be placed in `<api>` element.
|
|
404
476
|
|
|
405
|
-
`<dts>` has a required prop of `path`. This is a path of api TypeScript types file, `<dts>` generates it.
|
|
406
|
-
|
|
407
477
|
*src/app.tsx*
|
|
408
478
|
```typescript jsx
|
|
409
479
|
export default (
|
|
410
480
|
<server>
|
|
411
481
|
<api>
|
|
412
|
-
<
|
|
413
|
-
<dts path='src/api.d.ts' />
|
|
414
|
-
</dev>
|
|
482
|
+
<dts />
|
|
415
483
|
</api>
|
|
416
484
|
</server>
|
|
417
485
|
)
|
|
@@ -440,6 +508,119 @@ export function DeleteTodo () {
|
|
|
440
508
|
}
|
|
441
509
|
```
|
|
442
510
|
|
|
511
|
+
#### path
|
|
512
|
+
|
|
513
|
+
This is a path of api TypeScript types file, `<dts>` generates it.
|
|
514
|
+
`'src/api.d.ts'` by default.
|
|
515
|
+
|
|
516
|
+
*src/app.tsx*
|
|
517
|
+
```typescript jsx
|
|
518
|
+
export default (
|
|
519
|
+
<server>
|
|
520
|
+
<api>
|
|
521
|
+
<dts path='src/types.d.ts' />
|
|
522
|
+
</api>
|
|
523
|
+
</server>
|
|
524
|
+
)
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
#### namespace
|
|
528
|
+
|
|
529
|
+
This prop changes namespace for generated types. `'Api'` by default.
|
|
530
|
+
|
|
531
|
+
*src/app.tsx*
|
|
532
|
+
```typescript jsx
|
|
533
|
+
export default (
|
|
534
|
+
<server>
|
|
535
|
+
<api>
|
|
536
|
+
<dts namespace='API' />
|
|
537
|
+
</api>
|
|
538
|
+
</server>
|
|
539
|
+
)
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### \<blacklist>
|
|
543
|
+
|
|
544
|
+
This element MUST be placed in `<api>` element.
|
|
545
|
+
|
|
546
|
+
[← back](#utils)
|
|
547
|
+
|
|
548
|
+
This element returns own content for a user from IPs list.
|
|
549
|
+
|
|
550
|
+
*src/app.tsx*
|
|
551
|
+
```typescript jsx
|
|
552
|
+
export default (
|
|
553
|
+
<server>
|
|
554
|
+
<api>
|
|
555
|
+
<blacklist>
|
|
556
|
+
<error />
|
|
557
|
+
</blacklist>
|
|
558
|
+
</api>
|
|
559
|
+
</server>
|
|
560
|
+
)
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
#### ip
|
|
564
|
+
|
|
565
|
+
`ip` prop sets black IPs. By default, it equals `BLACKLIST_IP` node environment variable.
|
|
566
|
+
|
|
567
|
+
You can split IPs by `,` char.
|
|
568
|
+
|
|
569
|
+
*src/app.tsx*
|
|
570
|
+
```typescript jsx
|
|
571
|
+
export default (
|
|
572
|
+
<server>
|
|
573
|
+
<api>
|
|
574
|
+
<blacklist
|
|
575
|
+
ip='0.1.2.3,3.2.1.0'>
|
|
576
|
+
<error />
|
|
577
|
+
</blacklist>
|
|
578
|
+
</api>
|
|
579
|
+
</server>
|
|
580
|
+
)
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### \<whitelist>
|
|
584
|
+
|
|
585
|
+
This element MUST be placed in `<api>` element.
|
|
586
|
+
|
|
587
|
+
[← back](#utils)
|
|
588
|
+
|
|
589
|
+
This element returns own content for a user IP, which is not in a list.
|
|
590
|
+
|
|
591
|
+
*src/app.tsx*
|
|
592
|
+
```typescript jsx
|
|
593
|
+
export default (
|
|
594
|
+
<server>
|
|
595
|
+
<api>
|
|
596
|
+
<whitelist>
|
|
597
|
+
<error />
|
|
598
|
+
</whitelist>
|
|
599
|
+
</api>
|
|
600
|
+
</server>
|
|
601
|
+
)
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
#### ip
|
|
605
|
+
|
|
606
|
+
`ip` prop sets white IPs. By default, it equals `WHITELIST_IP` node environment variable.
|
|
607
|
+
|
|
608
|
+
You can split IPs by `,` char.
|
|
609
|
+
|
|
610
|
+
*src/app.tsx*
|
|
611
|
+
```typescript jsx
|
|
612
|
+
export default (
|
|
613
|
+
<server>
|
|
614
|
+
<api>
|
|
615
|
+
<whitelist
|
|
616
|
+
ip='0.1.2.3,3.2.1.0'>
|
|
617
|
+
<error />
|
|
618
|
+
</whitelist>
|
|
619
|
+
</api>
|
|
620
|
+
</server>
|
|
621
|
+
)
|
|
622
|
+
```
|
|
623
|
+
|
|
443
624
|
### \<protection>
|
|
444
625
|
|
|
445
626
|
This element MUST be placed in `<api>` element.
|
package/handler/handler.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { context, type ContextProps, slot, type SlotProps, slots, type SlotsProps } from '@innet/jsx';
|
|
2
2
|
import { arraySync, async } from '@innet/utils';
|
|
3
|
-
import { type ApiProps, type ArrayProps, type BinaryProps, type BodyProps, type BooleanProps, cms, type CmsProps, type ContactProps, type CookieProps, type DateProps, type DevProps, type DtsProps, type EndpointProps, type ErrorProps, type FallbackProps, type FieldProps, file, type FileProps, type HeaderProps, type HostProps, type IntegerProps, type LicenseProps, type NullProps, type NumberProps, type ObjectProps, type ParamProps, type ProdProps, protection, type ProtectionProps, type ProxyProps, type RedirectProps, type RequestProps, type ResponseProps, type ServerProps, type StringProps, type SuccessProps, type SwaggerProps, type TagProps, type TupleProps, type UuidProps, type VariableProps } from '../plugins';
|
|
3
|
+
import { type ApiProps, type ArrayProps, type BinaryProps, blacklist, type BlacklistProps, type BodyProps, type BooleanProps, cms, type CmsProps, type ContactProps, type CookieProps, type DateProps, type DevProps, type DtsProps, type EndpointProps, type ErrorProps, type FallbackProps, type FieldProps, file, type FileProps, type HeaderProps, type HostProps, type IntegerProps, type LicenseProps, type NullProps, type NumberProps, type ObjectProps, type ParamProps, preset, type PresetProps, type ProdProps, protection, type ProtectionProps, type ProxyProps, type RedirectProps, type RequestProps, type ResponseProps, type ServerProps, type StringProps, type SuccessProps, type SwaggerProps, type TagProps, type TupleProps, type UuidProps, type VariableProps, whitelist, type WhitelistProps } from '../plugins';
|
|
4
4
|
export declare const arrayPlugins: (typeof arraySync)[];
|
|
5
5
|
export declare const JSXPlugins: {
|
|
6
6
|
api: import("innet").HandlerPlugin;
|
|
7
7
|
array: import("innet").HandlerPlugin;
|
|
8
8
|
binary: import("innet").HandlerPlugin;
|
|
9
|
+
blacklist: typeof blacklist;
|
|
9
10
|
body: import("innet").HandlerPlugin;
|
|
10
11
|
boolean: import("innet").HandlerPlugin;
|
|
11
12
|
cms: typeof cms;
|
|
@@ -28,6 +29,7 @@ export declare const JSXPlugins: {
|
|
|
28
29
|
number: import("innet").HandlerPlugin;
|
|
29
30
|
object: import("innet").HandlerPlugin;
|
|
30
31
|
param: import("innet").HandlerPlugin;
|
|
32
|
+
preset: typeof preset;
|
|
31
33
|
prod: import("innet").HandlerPlugin;
|
|
32
34
|
protection: typeof protection;
|
|
33
35
|
proxy: import("innet").HandlerPlugin;
|
|
@@ -44,6 +46,7 @@ export declare const JSXPlugins: {
|
|
|
44
46
|
tuple: import("innet").HandlerPlugin;
|
|
45
47
|
uuid: import("innet").HandlerPlugin;
|
|
46
48
|
variable: import("innet").HandlerPlugin;
|
|
49
|
+
whitelist: typeof whitelist;
|
|
47
50
|
};
|
|
48
51
|
export declare const fnPlugins: import("innet").Plugin[];
|
|
49
52
|
export declare const objectPlugins: import("innet").Plugin[];
|
|
@@ -55,6 +58,7 @@ declare global {
|
|
|
55
58
|
api: ApiProps;
|
|
56
59
|
array: ArrayProps;
|
|
57
60
|
binary: BinaryProps;
|
|
61
|
+
blacklist: BlacklistProps;
|
|
58
62
|
body: BodyProps;
|
|
59
63
|
boolean: BooleanProps;
|
|
60
64
|
cms: CmsProps;
|
|
@@ -77,6 +81,7 @@ declare global {
|
|
|
77
81
|
number: NumberProps;
|
|
78
82
|
object: ObjectProps;
|
|
79
83
|
param: ParamProps;
|
|
84
|
+
preset: PresetProps;
|
|
80
85
|
prod: ProdProps;
|
|
81
86
|
protection: ProtectionProps;
|
|
82
87
|
proxy: ProxyProps;
|
|
@@ -93,6 +98,7 @@ declare global {
|
|
|
93
98
|
tuple: TupleProps;
|
|
94
99
|
uuid: UuidProps;
|
|
95
100
|
variable: VariableProps;
|
|
101
|
+
whitelist: WhitelistProps;
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
}
|
package/handler/handler.es6.js
CHANGED
|
@@ -5,6 +5,7 @@ import '../plugins/index.es6.js';
|
|
|
5
5
|
import { api } from '../plugins/main/api/api.es6.js';
|
|
6
6
|
import { array } from '../plugins/schema/array/array.es6.js';
|
|
7
7
|
import { binary } from '../plugins/schema/binary/binary.es6.js';
|
|
8
|
+
import { blacklist } from '../plugins/utils/blacklist/blacklist.es6.js';
|
|
8
9
|
import { body } from '../plugins/main/body/body.es6.js';
|
|
9
10
|
import { boolean } from '../plugins/schema/boolean/boolean.es6.js';
|
|
10
11
|
import { cms } from '../plugins/request/cms/cms.es6.js';
|
|
@@ -26,6 +27,7 @@ import { nullPlugin } from '../plugins/schema/null/null.es6.js';
|
|
|
26
27
|
import { number } from '../plugins/schema/number/number.es6.js';
|
|
27
28
|
import { object } from '../plugins/schema/object/object.es6.js';
|
|
28
29
|
import { param } from '../plugins/main/param/param.es6.js';
|
|
30
|
+
import { preset } from '../plugins/main/preset/preset.es6.js';
|
|
29
31
|
import { prod } from '../plugins/utils/prod/prod.es6.js';
|
|
30
32
|
import { protection } from '../plugins/utils/protection/protection.es6.js';
|
|
31
33
|
import { proxy } from '../plugins/request/proxy/proxy.es6.js';
|
|
@@ -40,6 +42,7 @@ import { tag } from '../plugins/main/tag/tag.es6.js';
|
|
|
40
42
|
import { tuple } from '../plugins/schema/tuple/tuple.es6.js';
|
|
41
43
|
import { uuid } from '../plugins/schema/uuid/uuid.es6.js';
|
|
42
44
|
import { variable } from '../plugins/main/variable/variable.es6.js';
|
|
45
|
+
import { whitelist } from '../plugins/utils/whitelist/whitelist.es6.js';
|
|
43
46
|
import { serverFn } from '../plugins/handler/serverFn/serverFn.es6.js';
|
|
44
47
|
|
|
45
48
|
const arrayPlugins = [
|
|
@@ -49,6 +52,7 @@ const JSXPlugins = {
|
|
|
49
52
|
api,
|
|
50
53
|
array,
|
|
51
54
|
binary,
|
|
55
|
+
blacklist,
|
|
52
56
|
body,
|
|
53
57
|
boolean,
|
|
54
58
|
cms,
|
|
@@ -71,6 +75,7 @@ const JSXPlugins = {
|
|
|
71
75
|
number,
|
|
72
76
|
object,
|
|
73
77
|
param,
|
|
78
|
+
preset,
|
|
74
79
|
prod,
|
|
75
80
|
protection,
|
|
76
81
|
proxy,
|
|
@@ -87,6 +92,7 @@ const JSXPlugins = {
|
|
|
87
92
|
tuple,
|
|
88
93
|
uuid,
|
|
89
94
|
variable,
|
|
95
|
+
whitelist,
|
|
90
96
|
};
|
|
91
97
|
const fnPlugins = [
|
|
92
98
|
serverFn,
|
package/handler/handler.js
CHANGED
|
@@ -9,6 +9,7 @@ require('../plugins/index.js');
|
|
|
9
9
|
var api = require('../plugins/main/api/api.js');
|
|
10
10
|
var array = require('../plugins/schema/array/array.js');
|
|
11
11
|
var binary = require('../plugins/schema/binary/binary.js');
|
|
12
|
+
var blacklist = require('../plugins/utils/blacklist/blacklist.js');
|
|
12
13
|
var body = require('../plugins/main/body/body.js');
|
|
13
14
|
var boolean = require('../plugins/schema/boolean/boolean.js');
|
|
14
15
|
var cms = require('../plugins/request/cms/cms.js');
|
|
@@ -30,6 +31,7 @@ var _null = require('../plugins/schema/null/null.js');
|
|
|
30
31
|
var number = require('../plugins/schema/number/number.js');
|
|
31
32
|
var object = require('../plugins/schema/object/object.js');
|
|
32
33
|
var param = require('../plugins/main/param/param.js');
|
|
34
|
+
var preset = require('../plugins/main/preset/preset.js');
|
|
33
35
|
var prod = require('../plugins/utils/prod/prod.js');
|
|
34
36
|
var protection = require('../plugins/utils/protection/protection.js');
|
|
35
37
|
var proxy = require('../plugins/request/proxy/proxy.js');
|
|
@@ -44,6 +46,7 @@ var tag = require('../plugins/main/tag/tag.js');
|
|
|
44
46
|
var tuple = require('../plugins/schema/tuple/tuple.js');
|
|
45
47
|
var uuid = require('../plugins/schema/uuid/uuid.js');
|
|
46
48
|
var variable = require('../plugins/main/variable/variable.js');
|
|
49
|
+
var whitelist = require('../plugins/utils/whitelist/whitelist.js');
|
|
47
50
|
var serverFn = require('../plugins/handler/serverFn/serverFn.js');
|
|
48
51
|
|
|
49
52
|
const arrayPlugins = [
|
|
@@ -53,6 +56,7 @@ const JSXPlugins = {
|
|
|
53
56
|
api: api.api,
|
|
54
57
|
array: array.array,
|
|
55
58
|
binary: binary.binary,
|
|
59
|
+
blacklist: blacklist.blacklist,
|
|
56
60
|
body: body.body,
|
|
57
61
|
boolean: boolean.boolean,
|
|
58
62
|
cms: cms.cms,
|
|
@@ -75,6 +79,7 @@ const JSXPlugins = {
|
|
|
75
79
|
number: number.number,
|
|
76
80
|
object: object.object,
|
|
77
81
|
param: param.param,
|
|
82
|
+
preset: preset.preset,
|
|
78
83
|
prod: prod.prod,
|
|
79
84
|
protection: protection.protection,
|
|
80
85
|
proxy: proxy.proxy,
|
|
@@ -91,6 +96,7 @@ const JSXPlugins = {
|
|
|
91
96
|
tuple: tuple.tuple,
|
|
92
97
|
uuid: uuid.uuid,
|
|
93
98
|
variable: variable.variable,
|
|
99
|
+
whitelist: whitelist.whitelist,
|
|
94
100
|
};
|
|
95
101
|
const fnPlugins = [
|
|
96
102
|
serverFn.serverFn,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { useRequest } from './useRequest.es6.js';
|
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
import { type IncomingMessage } from 'http';
|
|
4
|
-
export declare const requestContext: Context<IncomingMessage, IncomingMessage | undefined>;
|
|
5
|
-
export declare function useRequest(): IncomingMessage | undefined;
|
|
2
|
+
export declare function useRequest(): import("http").IncomingMessage;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import '../useAction/index.es6.js';
|
|
2
|
+
import { useAction } from '../useAction/useAction.es6.js';
|
|
2
3
|
|
|
3
|
-
const requestContext = new Context();
|
|
4
4
|
function useRequest() {
|
|
5
|
-
return
|
|
5
|
+
return useAction().req;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export {
|
|
8
|
+
export { useRequest };
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
require('../useAction/index.js');
|
|
6
|
+
var useAction = require('../useAction/useAction.js');
|
|
6
7
|
|
|
7
|
-
const requestContext = new jsx.Context();
|
|
8
8
|
function useRequest() {
|
|
9
|
-
return
|
|
9
|
+
return useAction.useAction().req;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
exports.requestContext = requestContext;
|
|
13
12
|
exports.useRequest = useRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { useResponse } from './useResponse.es6.js';
|
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
import { type ServerResponse } from 'http';
|
|
4
|
-
export declare const responseContext: Context<ServerResponse<import("http").IncomingMessage>, ServerResponse<import("http").IncomingMessage> | undefined>;
|
|
5
|
-
export declare function useResponse(): ServerResponse<import("http").IncomingMessage> | undefined;
|
|
2
|
+
export declare function useResponse(): import("http").ServerResponse<import("http").IncomingMessage>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import '../useAction/index.es6.js';
|
|
2
|
+
import { useAction } from '../useAction/useAction.es6.js';
|
|
2
3
|
|
|
3
|
-
const responseContext = new Context();
|
|
4
4
|
function useResponse() {
|
|
5
|
-
return
|
|
5
|
+
return useAction().res;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export {
|
|
8
|
+
export { useResponse };
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
require('../useAction/index.js');
|
|
6
|
+
var useAction = require('../useAction/useAction.js');
|
|
6
7
|
|
|
7
|
-
const responseContext = new jsx.Context();
|
|
8
8
|
function useResponse() {
|
|
9
|
-
return
|
|
9
|
+
return useAction.useAction().res;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
exports.responseContext = responseContext;
|
|
13
12
|
exports.useResponse = useResponse;
|
|
@@ -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
|
}
|
package/index.es6.js
CHANGED
|
@@ -17,6 +17,7 @@ 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
19
|
export { fallback } from './plugins/main/fallback/fallback.es6.js';
|
|
20
|
+
export { preset, presetCondition } from './plugins/main/preset/preset.es6.js';
|
|
20
21
|
export { object } from './plugins/schema/object/object.es6.js';
|
|
21
22
|
export { field } from './plugins/schema/field/field.es6.js';
|
|
22
23
|
export { number } from './plugins/schema/number/number.es6.js';
|
|
@@ -42,6 +43,8 @@ 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';
|
|
44
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';
|
|
45
48
|
export { serverFn } from './plugins/handler/serverFn/serverFn.es6.js';
|
|
46
49
|
export { EMPTY_SEARCH, parseSearch } from './utils/parseSearch/parseSearch.es6.js';
|
|
47
50
|
export { stringifySearch } from './utils/stringifySearch/stringifySearch.es6.js';
|
|
@@ -92,8 +95,8 @@ export { useOneElementError } from './hooks/useOneElementError/useOneElementErro
|
|
|
92
95
|
export { schemaContext, useSchemaContext } from './hooks/useSchemaContext/useSchemaContext.es6.js';
|
|
93
96
|
export { useSchemaType } from './hooks/useSchemaType/useSchemaType.es6.js';
|
|
94
97
|
export { useNewSchema } from './hooks/useNewSchema/useNewSchema.es6.js';
|
|
95
|
-
export {
|
|
96
|
-
export {
|
|
98
|
+
export { useRequest } from './hooks/useRequest/useRequest.es6.js';
|
|
99
|
+
export { useResponse } from './hooks/useResponse/useResponse.es6.js';
|
|
97
100
|
export { paramsContext, useParams } from './hooks/useParams/useParams.es6.js';
|
|
98
101
|
export { useBody } from './hooks/useBody/useBody.es6.js';
|
|
99
102
|
export { useSearch } from './hooks/useSearch/useSearch.es6.js';
|
package/index.js
CHANGED
|
@@ -21,6 +21,7 @@ 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
23
|
var fallback = require('./plugins/main/fallback/fallback.js');
|
|
24
|
+
var preset = require('./plugins/main/preset/preset.js');
|
|
24
25
|
var object = require('./plugins/schema/object/object.js');
|
|
25
26
|
var field = require('./plugins/schema/field/field.js');
|
|
26
27
|
var number = require('./plugins/schema/number/number.js');
|
|
@@ -46,6 +47,8 @@ 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');
|
|
48
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');
|
|
49
52
|
var serverFn = require('./plugins/handler/serverFn/serverFn.js');
|
|
50
53
|
var parseSearch = require('./utils/parseSearch/parseSearch.js');
|
|
51
54
|
var stringifySearch = require('./utils/stringifySearch/stringifySearch.js');
|
|
@@ -138,6 +141,8 @@ exports.request = request.request;
|
|
|
138
141
|
exports.param = param.param;
|
|
139
142
|
exports.body = body.body;
|
|
140
143
|
exports.fallback = fallback.fallback;
|
|
144
|
+
exports.preset = preset.preset;
|
|
145
|
+
exports.presetCondition = preset.presetCondition;
|
|
141
146
|
exports.object = object.object;
|
|
142
147
|
exports.field = field.field;
|
|
143
148
|
exports.number = number.number;
|
|
@@ -166,6 +171,8 @@ exports.dts = dts.dts;
|
|
|
166
171
|
exports.dev = dev.dev;
|
|
167
172
|
exports.prod = prod.prod;
|
|
168
173
|
exports.protection = protection.protection;
|
|
174
|
+
exports.blacklist = blacklist.blacklist;
|
|
175
|
+
exports.whitelist = whitelist.whitelist;
|
|
169
176
|
exports.serverFn = serverFn.serverFn;
|
|
170
177
|
exports.EMPTY_SEARCH = parseSearch.EMPTY_SEARCH;
|
|
171
178
|
exports.parseSearch = parseSearch.parseSearch;
|
|
@@ -225,9 +232,7 @@ exports.schemaContext = useSchemaContext.schemaContext;
|
|
|
225
232
|
exports.useSchemaContext = useSchemaContext.useSchemaContext;
|
|
226
233
|
exports.useSchemaType = useSchemaType.useSchemaType;
|
|
227
234
|
exports.useNewSchema = useNewSchema.useNewSchema;
|
|
228
|
-
exports.requestContext = useRequest.requestContext;
|
|
229
235
|
exports.useRequest = useRequest.useRequest;
|
|
230
|
-
exports.responseContext = useResponse.responseContext;
|
|
231
236
|
exports.useResponse = useResponse.useResponse;
|
|
232
237
|
exports.paramsContext = useParams.paramsContext;
|
|
233
238
|
exports.useParams = useParams.useParams;
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { __rest, __awaiter } from 'tslib';
|
|
2
2
|
import innet, { useNewHandler, useApp } from 'innet';
|
|
3
3
|
import { onDestroy } from 'watch-state';
|
|
4
|
+
import '../preset/index.es6.js';
|
|
4
5
|
import '../../../hooks/index.es6.js';
|
|
5
6
|
import '../../../utils/index.es6.js';
|
|
6
7
|
import '../../../utils/rules/index.es6.js';
|
|
7
8
|
import { useServer } from '../../../hooks/useServer/useServer.es6.js';
|
|
8
9
|
import { apiContext } from '../../../hooks/useApi/useApi.es6.js';
|
|
10
|
+
import { presetCondition } from '../preset/preset.es6.js';
|
|
9
11
|
import { Action } from '../../../utils/action/Action.es6.js';
|
|
10
|
-
import { responseContext } from '../../../hooks/useResponse/useResponse.es6.js';
|
|
11
|
-
import { requestContext } from '../../../hooks/useRequest/useRequest.es6.js';
|
|
12
12
|
import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
13
13
|
import { JSONString } from '../../../utils/JSONString/JSONString.es6.js';
|
|
14
14
|
import { RulesError } from '../../../utils/rules/helpers.es6.js';
|
|
@@ -19,7 +19,7 @@ const api = () => {
|
|
|
19
19
|
const handler = useNewHandler();
|
|
20
20
|
const { props = {}, children } = useApp();
|
|
21
21
|
const { server } = useServer();
|
|
22
|
-
const { prefix = '', title = '' } = props, rest = __rest(props, ["prefix", "title"]);
|
|
22
|
+
const { prefix = '', title = '', include, exclude } = props, rest = __rest(props, ["prefix", "title", "include", "exclude"]);
|
|
23
23
|
const info = Object.assign(Object.assign({}, rest), { version: (_a = rest.version) !== null && _a !== void 0 ? _a : '0.0.0', title });
|
|
24
24
|
const endpoints = {};
|
|
25
25
|
const docs = {
|
|
@@ -29,7 +29,20 @@ const api = () => {
|
|
|
29
29
|
};
|
|
30
30
|
const requestPlugins = new Set();
|
|
31
31
|
const context = { docs, endpoints, prefix, requestPlugins, refRules: {} };
|
|
32
|
+
const condition = action => {
|
|
33
|
+
const path = action.parsedUrl.path;
|
|
34
|
+
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
35
|
+
if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
if (include && !include.test(url)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
};
|
|
32
43
|
apiContext.set(handler, context);
|
|
44
|
+
presetCondition.set(handler, condition);
|
|
45
|
+
innet(children, handler);
|
|
33
46
|
const listener = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
47
|
var _b, _c, _d, _e, _f, _g;
|
|
35
48
|
if (res.writableEnded)
|
|
@@ -37,7 +50,7 @@ const api = () => {
|
|
|
37
50
|
const action = new Action(req, res);
|
|
38
51
|
const path = action.parsedUrl.path;
|
|
39
52
|
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
40
|
-
if (!
|
|
53
|
+
if (!condition(action)) {
|
|
41
54
|
return;
|
|
42
55
|
}
|
|
43
56
|
for (const requestPlugin of requestPlugins) {
|
|
@@ -45,8 +58,6 @@ const api = () => {
|
|
|
45
58
|
if (!result)
|
|
46
59
|
continue;
|
|
47
60
|
const newHandler = Object.create(handler);
|
|
48
|
-
responseContext.set(newHandler, res);
|
|
49
|
-
requestContext.set(newHandler, req);
|
|
50
61
|
actionContext.set(newHandler, action);
|
|
51
62
|
innet(result, newHandler);
|
|
52
63
|
return;
|
|
@@ -132,8 +143,6 @@ const api = () => {
|
|
|
132
143
|
return true;
|
|
133
144
|
}
|
|
134
145
|
const newHandler = Object.create(runEndpoint.handler);
|
|
135
|
-
responseContext.set(newHandler, res);
|
|
136
|
-
requestContext.set(newHandler, req);
|
|
137
146
|
paramsContext.set(newHandler, params);
|
|
138
147
|
actionContext.set(newHandler, action);
|
|
139
148
|
innet(runEndpoint.content, newHandler);
|
|
@@ -167,8 +176,6 @@ const api = () => {
|
|
|
167
176
|
}
|
|
168
177
|
if (context.fallback) {
|
|
169
178
|
const newHandler = Object.create(context.fallback.handler);
|
|
170
|
-
responseContext.set(newHandler, res);
|
|
171
|
-
requestContext.set(newHandler, req);
|
|
172
179
|
actionContext.set(newHandler, action);
|
|
173
180
|
innet(context.fallback.children, newHandler);
|
|
174
181
|
}
|
|
@@ -181,7 +188,6 @@ const api = () => {
|
|
|
181
188
|
onDestroy(() => {
|
|
182
189
|
server.off('request', listener);
|
|
183
190
|
});
|
|
184
|
-
innet(children, handler);
|
|
185
191
|
};
|
|
186
192
|
|
|
187
193
|
export { api };
|
package/plugins/main/api/api.js
CHANGED
|
@@ -5,14 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var innet = require('innet');
|
|
7
7
|
var watchState = require('watch-state');
|
|
8
|
+
require('../preset/index.js');
|
|
8
9
|
require('../../../hooks/index.js');
|
|
9
10
|
require('../../../utils/index.js');
|
|
10
11
|
require('../../../utils/rules/index.js');
|
|
11
12
|
var useServer = require('../../../hooks/useServer/useServer.js');
|
|
12
13
|
var useApi = require('../../../hooks/useApi/useApi.js');
|
|
14
|
+
var preset = require('../preset/preset.js');
|
|
13
15
|
var Action = require('../../../utils/action/Action.js');
|
|
14
|
-
var useResponse = require('../../../hooks/useResponse/useResponse.js');
|
|
15
|
-
var useRequest = require('../../../hooks/useRequest/useRequest.js');
|
|
16
16
|
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
17
17
|
var JSONString = require('../../../utils/JSONString/JSONString.js');
|
|
18
18
|
var helpers = require('../../../utils/rules/helpers.js');
|
|
@@ -27,7 +27,7 @@ const api = () => {
|
|
|
27
27
|
const handler = innet.useNewHandler();
|
|
28
28
|
const { props = {}, children } = innet.useApp();
|
|
29
29
|
const { server } = useServer.useServer();
|
|
30
|
-
const { prefix = '', title = '' } = props, rest = tslib.__rest(props, ["prefix", "title"]);
|
|
30
|
+
const { prefix = '', title = '', include, exclude } = props, rest = tslib.__rest(props, ["prefix", "title", "include", "exclude"]);
|
|
31
31
|
const info = Object.assign(Object.assign({}, rest), { version: (_a = rest.version) !== null && _a !== void 0 ? _a : '0.0.0', title });
|
|
32
32
|
const endpoints = {};
|
|
33
33
|
const docs = {
|
|
@@ -37,7 +37,20 @@ const api = () => {
|
|
|
37
37
|
};
|
|
38
38
|
const requestPlugins = new Set();
|
|
39
39
|
const context = { docs, endpoints, prefix, requestPlugins, refRules: {} };
|
|
40
|
+
const condition = action => {
|
|
41
|
+
const path = action.parsedUrl.path;
|
|
42
|
+
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
43
|
+
if (!url.startsWith(prefix) || (exclude === null || exclude === void 0 ? void 0 : exclude.test(url))) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (include && !include.test(url)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
40
51
|
useApi.apiContext.set(handler, context);
|
|
52
|
+
preset.presetCondition.set(handler, condition);
|
|
53
|
+
innet__default["default"](children, handler);
|
|
41
54
|
const listener = (req, res) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
55
|
var _b, _c, _d, _e, _f, _g;
|
|
43
56
|
if (res.writableEnded)
|
|
@@ -45,7 +58,7 @@ const api = () => {
|
|
|
45
58
|
const action = new Action.Action(req, res);
|
|
46
59
|
const path = action.parsedUrl.path;
|
|
47
60
|
const url = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
48
|
-
if (!
|
|
61
|
+
if (!condition(action)) {
|
|
49
62
|
return;
|
|
50
63
|
}
|
|
51
64
|
for (const requestPlugin of requestPlugins) {
|
|
@@ -53,8 +66,6 @@ const api = () => {
|
|
|
53
66
|
if (!result)
|
|
54
67
|
continue;
|
|
55
68
|
const newHandler = Object.create(handler);
|
|
56
|
-
useResponse.responseContext.set(newHandler, res);
|
|
57
|
-
useRequest.requestContext.set(newHandler, req);
|
|
58
69
|
useAction.actionContext.set(newHandler, action);
|
|
59
70
|
innet__default["default"](result, newHandler);
|
|
60
71
|
return;
|
|
@@ -140,8 +151,6 @@ const api = () => {
|
|
|
140
151
|
return true;
|
|
141
152
|
}
|
|
142
153
|
const newHandler = Object.create(runEndpoint.handler);
|
|
143
|
-
useResponse.responseContext.set(newHandler, res);
|
|
144
|
-
useRequest.requestContext.set(newHandler, req);
|
|
145
154
|
useParams.paramsContext.set(newHandler, params);
|
|
146
155
|
useAction.actionContext.set(newHandler, action);
|
|
147
156
|
innet__default["default"](runEndpoint.content, newHandler);
|
|
@@ -175,8 +184,6 @@ const api = () => {
|
|
|
175
184
|
}
|
|
176
185
|
if (context.fallback) {
|
|
177
186
|
const newHandler = Object.create(context.fallback.handler);
|
|
178
|
-
useResponse.responseContext.set(newHandler, res);
|
|
179
|
-
useRequest.requestContext.set(newHandler, req);
|
|
180
187
|
useAction.actionContext.set(newHandler, action);
|
|
181
188
|
innet__default["default"](context.fallback.children, newHandler);
|
|
182
189
|
}
|
|
@@ -189,7 +196,6 @@ const api = () => {
|
|
|
189
196
|
watchState.onDestroy(() => {
|
|
190
197
|
server.off('request', listener);
|
|
191
198
|
});
|
|
192
|
-
innet__default["default"](children, handler);
|
|
193
199
|
};
|
|
194
200
|
|
|
195
201
|
exports.api = api;
|
package/plugins/main/index.d.ts
CHANGED
package/plugins/main/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './preset';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { preset, presetCondition } from './preset.es6.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Context } from '@innet/jsx';
|
|
2
|
+
import { Action } from '../../../utils';
|
|
3
|
+
export interface PresetProps {
|
|
4
|
+
}
|
|
5
|
+
export type PresetCondition = (action: Action) => boolean;
|
|
6
|
+
export declare const presetCondition: Context<PresetCondition, PresetCondition>;
|
|
7
|
+
export declare function preset(): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import innet, { useHandler } from 'innet';
|
|
2
|
+
import { Context, useChildren, useContext } from '@innet/jsx';
|
|
3
|
+
import '../../../hooks/index.es6.js';
|
|
4
|
+
import '../../../utils/index.es6.js';
|
|
5
|
+
import { useServer } from '../../../hooks/useServer/useServer.es6.js';
|
|
6
|
+
import { Action } from '../../../utils/action/Action.es6.js';
|
|
7
|
+
import { actionContext } from '../../../hooks/useAction/useAction.es6.js';
|
|
8
|
+
|
|
9
|
+
const presetCondition = new Context(() => true);
|
|
10
|
+
function preset() {
|
|
11
|
+
const { server } = useServer();
|
|
12
|
+
const handler = useHandler();
|
|
13
|
+
const children = useChildren();
|
|
14
|
+
const condition = useContext(presetCondition);
|
|
15
|
+
const listener = (req, res) => {
|
|
16
|
+
const action = new Action(req, res);
|
|
17
|
+
if (condition(action)) {
|
|
18
|
+
const newHandler = Object.create(handler);
|
|
19
|
+
actionContext.set(newHandler, action);
|
|
20
|
+
innet(children, newHandler);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
server.addListener('request', listener);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { preset, presetCondition };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var innet = require('innet');
|
|
6
|
+
var jsx = require('@innet/jsx');
|
|
7
|
+
require('../../../hooks/index.js');
|
|
8
|
+
require('../../../utils/index.js');
|
|
9
|
+
var useServer = require('../../../hooks/useServer/useServer.js');
|
|
10
|
+
var Action = require('../../../utils/action/Action.js');
|
|
11
|
+
var useAction = require('../../../hooks/useAction/useAction.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var innet__default = /*#__PURE__*/_interopDefaultLegacy(innet);
|
|
16
|
+
|
|
17
|
+
const presetCondition = new jsx.Context(() => true);
|
|
18
|
+
function preset() {
|
|
19
|
+
const { server } = useServer.useServer();
|
|
20
|
+
const handler = innet.useHandler();
|
|
21
|
+
const children = jsx.useChildren();
|
|
22
|
+
const condition = jsx.useContext(presetCondition);
|
|
23
|
+
const listener = (req, res) => {
|
|
24
|
+
const action = new Action.Action(req, res);
|
|
25
|
+
if (condition(action)) {
|
|
26
|
+
const newHandler = Object.create(handler);
|
|
27
|
+
useAction.actionContext.set(newHandler, action);
|
|
28
|
+
innet__default["default"](children, newHandler);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
server.addListener('request', listener);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
exports.preset = preset;
|
|
35
|
+
exports.presetCondition = presetCondition;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useProps, useChildren } from '@innet/jsx';
|
|
2
|
+
import '../../../hooks/index.es6.js';
|
|
3
|
+
import { useRequestPlugin } from '../../../hooks/useRequestPlugin/useRequestPlugin.es6.js';
|
|
4
|
+
|
|
5
|
+
function blacklist() {
|
|
6
|
+
const { ip = process.env.BLACKLIST_IP, } = useProps() || {};
|
|
7
|
+
const children = useChildren();
|
|
8
|
+
const ips = typeof ip === 'string' ? ip.split(',') : ip;
|
|
9
|
+
useRequestPlugin(action => {
|
|
10
|
+
console.log(action.clientIp);
|
|
11
|
+
if (!action.clientIp || (ips === null || ips === void 0 ? void 0 : ips.includes(action.clientIp))) {
|
|
12
|
+
return children;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { blacklist };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsx = require('@innet/jsx');
|
|
6
|
+
require('../../../hooks/index.js');
|
|
7
|
+
var useRequestPlugin = require('../../../hooks/useRequestPlugin/useRequestPlugin.js');
|
|
8
|
+
|
|
9
|
+
function blacklist() {
|
|
10
|
+
const { ip = process.env.BLACKLIST_IP, } = jsx.useProps() || {};
|
|
11
|
+
const children = jsx.useChildren();
|
|
12
|
+
const ips = typeof ip === 'string' ? ip.split(',') : ip;
|
|
13
|
+
useRequestPlugin.useRequestPlugin(action => {
|
|
14
|
+
console.log(action.clientIp);
|
|
15
|
+
if (!action.clientIp || (ips === null || ips === void 0 ? void 0 : ips.includes(action.clientIp))) {
|
|
16
|
+
return children;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.blacklist = blacklist;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './blacklist';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { blacklist } from './blacklist.es6.js';
|
|
@@ -6,9 +6,9 @@ import { useApi } from '../../../hooks/useApi/useApi.es6.js';
|
|
|
6
6
|
import { generateTypes } from '../../../utils/generateTypes/generateTypes.es6.js';
|
|
7
7
|
|
|
8
8
|
const dts = () => {
|
|
9
|
-
const { path } = useProps();
|
|
9
|
+
const { path = 'src/api.d.ts', namespace } = useProps() || {};
|
|
10
10
|
const { docs } = useApi();
|
|
11
|
-
promises.writeFile(path, generateTypes(docs)).catch(e => {
|
|
11
|
+
promises.writeFile(path, generateTypes(docs, namespace)).catch(e => {
|
|
12
12
|
console.error(e);
|
|
13
13
|
});
|
|
14
14
|
};
|
package/plugins/utils/dts/dts.js
CHANGED
|
@@ -10,9 +10,9 @@ var useApi = require('../../../hooks/useApi/useApi.js');
|
|
|
10
10
|
var generateTypes = require('../../../utils/generateTypes/generateTypes.js');
|
|
11
11
|
|
|
12
12
|
const dts = () => {
|
|
13
|
-
const { path } = jsx.useProps();
|
|
13
|
+
const { path = 'src/api.d.ts', namespace } = jsx.useProps() || {};
|
|
14
14
|
const { docs } = useApi.useApi();
|
|
15
|
-
fs.promises.writeFile(path, generateTypes.generateTypes(docs)).catch(e => {
|
|
15
|
+
fs.promises.writeFile(path, generateTypes.generateTypes(docs, namespace)).catch(e => {
|
|
16
16
|
console.error(e);
|
|
17
17
|
});
|
|
18
18
|
};
|
package/plugins/utils/index.d.ts
CHANGED
package/plugins/utils/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './whitelist';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { whitelist } from './whitelist.es6.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useProps, useChildren } from '@innet/jsx';
|
|
2
|
+
import '../../../hooks/index.es6.js';
|
|
3
|
+
import { useRequestPlugin } from '../../../hooks/useRequestPlugin/useRequestPlugin.es6.js';
|
|
4
|
+
|
|
5
|
+
function whitelist() {
|
|
6
|
+
const { ip = process.env.WHITELIST_IP, } = useProps() || {};
|
|
7
|
+
const children = useChildren();
|
|
8
|
+
const ips = typeof ip === 'string' ? ip.split(',') : ip;
|
|
9
|
+
if (!ips)
|
|
10
|
+
return;
|
|
11
|
+
useRequestPlugin(action => {
|
|
12
|
+
if (!action.clientIp || !ips.includes(action.clientIp)) {
|
|
13
|
+
return children;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { whitelist };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsx = require('@innet/jsx');
|
|
6
|
+
require('../../../hooks/index.js');
|
|
7
|
+
var useRequestPlugin = require('../../../hooks/useRequestPlugin/useRequestPlugin.js');
|
|
8
|
+
|
|
9
|
+
function whitelist() {
|
|
10
|
+
const { ip = process.env.WHITELIST_IP, } = jsx.useProps() || {};
|
|
11
|
+
const children = jsx.useChildren();
|
|
12
|
+
const ips = typeof ip === 'string' ? ip.split(',') : ip;
|
|
13
|
+
if (!ips)
|
|
14
|
+
return;
|
|
15
|
+
useRequestPlugin.useRequestPlugin(action => {
|
|
16
|
+
if (!action.clientIp || !ips.includes(action.clientIp)) {
|
|
17
|
+
return children;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.whitelist = whitelist;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type Document, type SchemaObject } from '../../types';
|
|
2
2
|
export declare function generateSchemaTypes(schema: SchemaObject, spaces?: number): string;
|
|
3
|
-
export declare function generateTypes(docs: Document): string;
|
|
3
|
+
export declare function generateTypes(docs: Document, namespace?: string): string;
|
|
@@ -41,9 +41,20 @@ function generateSchemaTypes(schema, spaces = 2) {
|
|
|
41
41
|
}
|
|
42
42
|
return `${result}${space.slice(0, -2)}}\n`;
|
|
43
43
|
}
|
|
44
|
-
function generateTypes(docs) {
|
|
44
|
+
function generateTypes(docs, namespace = 'Api') {
|
|
45
45
|
var _a;
|
|
46
|
-
let result =
|
|
46
|
+
let result = `declare namespace ${namespace} {
|
|
47
|
+
export interface Bin {
|
|
48
|
+
filename: string
|
|
49
|
+
fieldName: string
|
|
50
|
+
originalFilename: string
|
|
51
|
+
path: string
|
|
52
|
+
type: string
|
|
53
|
+
disposition: string
|
|
54
|
+
size: number
|
|
55
|
+
extension?: string
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
47
58
|
const schemas = (_a = docs.components) === null || _a === void 0 ? void 0 : _a.schemas;
|
|
48
59
|
const paths = docs.paths;
|
|
49
60
|
if (schemas) {
|
|
@@ -45,9 +45,20 @@ function generateSchemaTypes(schema, spaces = 2) {
|
|
|
45
45
|
}
|
|
46
46
|
return `${result}${space.slice(0, -2)}}\n`;
|
|
47
47
|
}
|
|
48
|
-
function generateTypes(docs) {
|
|
48
|
+
function generateTypes(docs, namespace = 'Api') {
|
|
49
49
|
var _a;
|
|
50
|
-
let result =
|
|
50
|
+
let result = `declare namespace ${namespace} {
|
|
51
|
+
export interface Bin {
|
|
52
|
+
filename: string
|
|
53
|
+
fieldName: string
|
|
54
|
+
originalFilename: string
|
|
55
|
+
path: string
|
|
56
|
+
type: string
|
|
57
|
+
disposition: string
|
|
58
|
+
size: number
|
|
59
|
+
extension?: string
|
|
60
|
+
}
|
|
61
|
+
`;
|
|
51
62
|
const schemas = (_a = docs.components) === null || _a === void 0 ? void 0 : _a.schemas;
|
|
52
63
|
const paths = docs.paths;
|
|
53
64
|
if (schemas) {
|