@innet/server 2.0.0-beta.3 → 2.0.0-beta.5

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.
Files changed (84) hide show
  1. package/README.md +215 -0
  2. package/handler/handler.d.ts +1 -1
  3. package/hooks/index.d.ts +24 -23
  4. package/hooks/index.es6.js +24 -23
  5. package/hooks/index.js +24 -23
  6. package/hooks/useEffect/index.d.ts +1 -0
  7. package/hooks/useEffect/index.es6.js +1 -0
  8. package/hooks/useEffect/index.js +9 -0
  9. package/hooks/useEffect/useEffect.d.ts +2 -0
  10. package/hooks/useEffect/useEffect.es6.js +8 -0
  11. package/hooks/useEffect/useEffect.js +12 -0
  12. package/index.d.ts +2 -2
  13. package/index.es6.js +86 -85
  14. package/index.js +195 -193
  15. package/package.json +7 -5
  16. package/plugins/handler/serverFn/serverFn.es6.js +1 -1
  17. package/plugins/handler/serverFn/serverFn.js +1 -5
  18. package/plugins/index.d.ts +2 -2
  19. package/plugins/index.es6.js +2 -2
  20. package/plugins/index.js +2 -2
  21. package/plugins/main/api/api.es6.js +1 -1
  22. package/plugins/main/api/api.js +3 -7
  23. package/plugins/main/body/body.es6.js +4 -4
  24. package/plugins/main/body/body.js +4 -8
  25. package/plugins/main/endpoint/endpoint.es6.js +4 -4
  26. package/plugins/main/endpoint/endpoint.js +4 -8
  27. package/plugins/main/host/host.es6.js +1 -1
  28. package/plugins/main/host/host.js +1 -5
  29. package/plugins/main/index.d.ts +8 -8
  30. package/plugins/main/index.es6.js +8 -8
  31. package/plugins/main/index.js +8 -8
  32. package/plugins/main/param/param.es6.js +1 -1
  33. package/plugins/main/param/param.js +1 -5
  34. package/plugins/main/preset/preset.es6.js +1 -1
  35. package/plugins/main/preset/preset.js +1 -5
  36. package/plugins/main/response/response.es6.js +1 -1
  37. package/plugins/main/response/response.js +1 -5
  38. package/plugins/main/server/server.es6.js +1 -1
  39. package/plugins/main/server/server.js +2 -3
  40. package/plugins/main/tag/tag.es6.js +1 -1
  41. package/plugins/main/tag/tag.js +1 -5
  42. package/plugins/request/cms/cms.es6.js +1 -1
  43. package/plugins/request/cms/cms.js +2 -3
  44. package/plugins/request/file/file.es6.js +1 -1
  45. package/plugins/request/file/file.js +1 -2
  46. package/plugins/request/index.d.ts +5 -5
  47. package/plugins/request/index.es6.js +5 -5
  48. package/plugins/request/index.js +5 -5
  49. package/plugins/schema/array/array.d.ts +3 -0
  50. package/plugins/schema/array/array.es6.js +14 -5
  51. package/plugins/schema/array/array.js +15 -10
  52. package/plugins/schema/field/field.d.ts +2 -0
  53. package/plugins/schema/field/field.es6.js +8 -2
  54. package/plugins/schema/field/field.js +8 -6
  55. package/plugins/schema/index.d.ts +8 -8
  56. package/plugins/schema/index.es6.js +8 -8
  57. package/plugins/schema/index.js +8 -8
  58. package/plugins/schema/integer/integer.d.ts +37 -0
  59. package/plugins/schema/integer/integer.es6.js +21 -7
  60. package/plugins/schema/integer/integer.js +21 -7
  61. package/plugins/schema/number/number.d.ts +32 -0
  62. package/plugins/schema/number/number.es6.js +21 -5
  63. package/plugins/schema/number/number.js +21 -5
  64. package/plugins/schema/object/object.es6.js +4 -4
  65. package/plugins/schema/object/object.js +4 -8
  66. package/plugins/schema/string/string.d.ts +27 -0
  67. package/plugins/schema/string/string.es6.js +9 -3
  68. package/plugins/schema/string/string.js +9 -3
  69. package/plugins/schema/tuple/tuple.es6.js +4 -4
  70. package/plugins/schema/tuple/tuple.js +4 -8
  71. package/plugins/utils/dts/dts.es6.js +5 -2
  72. package/plugins/utils/dts/dts.js +5 -2
  73. package/plugins/utils/env/env.es6.js +1 -1
  74. package/plugins/utils/env/env.js +1 -5
  75. package/plugins/utils/index.d.ts +2 -2
  76. package/plugins/utils/index.es6.js +2 -2
  77. package/plugins/utils/index.js +2 -2
  78. package/types.d.ts +1 -0
  79. package/utils/index.d.ts +8 -8
  80. package/utils/index.es6.js +8 -8
  81. package/utils/index.js +8 -8
  82. package/utils/rules/index.d.ts +17 -17
  83. package/utils/rules/index.es6.js +17 -17
  84. package/utils/rules/index.js +18 -18
package/README.md CHANGED
@@ -2176,6 +2176,26 @@ you get an error:
2176
2176
  }
2177
2177
  ```
2178
2178
 
2179
+ #### format
2180
+
2181
+ An optional format modifier serves as a hint at the contents and format of the string.
2182
+ Available formats include: `email`, `date-time`, `date`, `uri`, `hostname`, `ipv4`, `ipv6`, `uuid`, `byte`, `binary`, `password` or custom string.
2183
+
2184
+ *src/app.tsx*
2185
+ ```typescript jsx
2186
+ export default (
2187
+ <server>
2188
+ <api>
2189
+ <endpoint method='get' path='/users'>
2190
+ <param in='query' name='email'>
2191
+ <string format='email' />
2192
+ </param>
2193
+ </endpoint>
2194
+ </api>
2195
+ </server>
2196
+ )
2197
+ ```
2198
+
2179
2199
  ### \<number>
2180
2200
 
2181
2201
  [← back](#primitive-data)
@@ -2325,6 +2345,66 @@ export default (
2325
2345
 
2326
2346
  *In this example `/products?rating=5` is valid and `/products?rating=6` is not*
2327
2347
 
2348
+ #### exclusiveMinimum, exclusiveMaximum
2349
+
2350
+ These props restrict the value to be strictly greater than or less than the specified number.
2351
+
2352
+ *src/app.tsx*
2353
+ ```typescript jsx
2354
+ export default (
2355
+ <server>
2356
+ <api>
2357
+ <endpoint method='get' path='/products'>
2358
+ <param in='query' name='rating'>
2359
+ <number
2360
+ exclusiveMinimum={0}
2361
+ exclusiveMaximum={5}
2362
+ />
2363
+ </param>
2364
+ </endpoint>
2365
+ </api>
2366
+ </server>
2367
+ )
2368
+ ```
2369
+
2370
+ #### multipleOf
2371
+
2372
+ This prop restricts the value to be a multiple of the specified number.
2373
+
2374
+ *src/app.tsx*
2375
+ ```typescript jsx
2376
+ export default (
2377
+ <server>
2378
+ <api>
2379
+ <endpoint method='get' path='/products'>
2380
+ <param in='query' name='quantity'>
2381
+ <number multipleOf={10} />
2382
+ </param>
2383
+ </endpoint>
2384
+ </api>
2385
+ </server>
2386
+ )
2387
+ ```
2388
+
2389
+ #### format
2390
+
2391
+ An optional format modifier serves as a hint at the contents and format of the number.
2392
+
2393
+ *src/app.tsx*
2394
+ ```typescript jsx
2395
+ export default (
2396
+ <server>
2397
+ <api>
2398
+ <endpoint method='get' path='/products'>
2399
+ <param in='query' name='price'>
2400
+ <number format='float' />
2401
+ </param>
2402
+ </endpoint>
2403
+ </api>
2404
+ </server>
2405
+ )
2406
+ ```
2407
+
2328
2408
  ### \<integer>
2329
2409
 
2330
2410
  [← back](#primitive-data)
@@ -2498,6 +2578,47 @@ export default (
2498
2578
 
2499
2579
  *In this example `/products?rating=5` is valid and `/products?rating=6` is not*
2500
2580
 
2581
+ #### exclusiveMinimum, exclusiveMaximum
2582
+
2583
+ These props restrict the value to be strictly greater than or less than the specified number.
2584
+
2585
+ *src/app.tsx*
2586
+ ```typescript jsx
2587
+ export default (
2588
+ <server>
2589
+ <api>
2590
+ <endpoint method='get' path='/products'>
2591
+ <param in='query' name='count'>
2592
+ <integer
2593
+ exclusiveMinimum={0}
2594
+ exclusiveMaximum={100}
2595
+ />
2596
+ </param>
2597
+ </endpoint>
2598
+ </api>
2599
+ </server>
2600
+ )
2601
+ ```
2602
+
2603
+ #### multipleOf
2604
+
2605
+ This prop restricts the value to be a multiple of the specified number.
2606
+
2607
+ *src/app.tsx*
2608
+ ```typescript jsx
2609
+ export default (
2610
+ <server>
2611
+ <api>
2612
+ <endpoint method='get' path='/products'>
2613
+ <param in='query' name='quantity'>
2614
+ <integer multipleOf={5} />
2615
+ </param>
2616
+ </endpoint>
2617
+ </api>
2618
+ </server>
2619
+ )
2620
+ ```
2621
+
2501
2622
  ### \<date>
2502
2623
 
2503
2624
  [← back](#primitive-data)
@@ -3135,6 +3256,48 @@ export default (
3135
3256
  )
3136
3257
  ```
3137
3258
 
3259
+ #### minItems, maxItems
3260
+
3261
+ Those two props validate the array by minimum and maximum number of items.
3262
+
3263
+ *src/app.tsx*
3264
+ ```typescript jsx
3265
+ export default (
3266
+ <server>
3267
+ <api>
3268
+ <endpoint method='get' path='/products'>
3269
+ <param in='query' name='tags'>
3270
+ <array minItems={1} maxItems={10}>
3271
+ <string />
3272
+ </array>
3273
+ </param>
3274
+ </endpoint>
3275
+ </api>
3276
+ </server>
3277
+ )
3278
+ ```
3279
+
3280
+ #### uniqueItems
3281
+
3282
+ This prop validates that all items in the array are unique.
3283
+
3284
+ *src/app.tsx*
3285
+ ```typescript jsx
3286
+ export default (
3287
+ <server>
3288
+ <api>
3289
+ <endpoint method='get' path='/products'>
3290
+ <param in='query' name='ids'>
3291
+ <array uniqueItems>
3292
+ <number />
3293
+ </array>
3294
+ </param>
3295
+ </endpoint>
3296
+ </api>
3297
+ </server>
3298
+ )
3299
+ ```
3300
+
3138
3301
  ### \<object>
3139
3302
 
3140
3303
  [← back](#list-of-data)
@@ -3298,6 +3461,58 @@ export default (
3298
3461
  )
3299
3462
  ```
3300
3463
 
3464
+ #### readOnly
3465
+
3466
+ You can mark a field as read-only, meaning it can only be returned in responses, not sent in requests.
3467
+
3468
+ *src/app.tsx*
3469
+ ```typescript jsx
3470
+ export default (
3471
+ <server>
3472
+ <api>
3473
+ <endpoint method='get' path='/users'>
3474
+ <response>
3475
+ <object>
3476
+ <field key='id' readOnly>
3477
+ <uuid />
3478
+ </field>
3479
+ <field key='name'>
3480
+ <string />
3481
+ </field>
3482
+ </object>
3483
+ </response>
3484
+ </endpoint>
3485
+ </api>
3486
+ </server>
3487
+ )
3488
+ ```
3489
+
3490
+ #### writeOnly
3491
+
3492
+ You can mark a field as write-only, meaning it can only be sent in requests, not returned in responses.
3493
+
3494
+ *src/app.tsx*
3495
+ ```typescript jsx
3496
+ export default (
3497
+ <server>
3498
+ <api>
3499
+ <endpoint method='post' path='/users'>
3500
+ <body>
3501
+ <object>
3502
+ <field key='password' writeOnly>
3503
+ <string />
3504
+ </field>
3505
+ <field key='name'>
3506
+ <string />
3507
+ </field>
3508
+ </object>
3509
+ </body>
3510
+ </endpoint>
3511
+ </api>
3512
+ </server>
3513
+ )
3514
+ ```
3515
+
3301
3516
  ## Run-Time
3302
3517
 
3303
3518
  Next elements relate to run-time action.
@@ -50,7 +50,7 @@ export declare const promisePlugins: (typeof async)[];
50
50
  export declare const handler: import("innet").Handler;
51
51
  declare global {
52
52
  namespace JSX {
53
- type Element = ArrayElement | FunctionElement | JSXElement | boolean | null | number | (string & {}) | undefined;
53
+ type Element = ({} & string) | ArrayElement | FunctionElement | JSXElement | boolean | null | number | undefined;
54
54
  interface ArrayElement extends Array<Element> {
55
55
  }
56
56
  type FunctionElement = () => Element;
package/hooks/index.d.ts CHANGED
@@ -1,32 +1,33 @@
1
- export * from './useServer';
1
+ export * from './useAction';
2
2
  export * from './useApi';
3
- export * from './useHost';
4
- export * from './useTag';
5
- export * from './useComponentName';
6
- export * from './useOneElementError';
7
- export * from './useSchemaContext';
8
- export * from './useSchemaType';
9
- export * from './useNewSchema';
10
- export * from './useRequest';
11
- export * from './useResponse';
12
- export * from './useParams';
3
+ export * from './useBlock';
13
4
  export * from './useBody';
14
- export * from './useSearch';
15
- export * from './useParam';
5
+ export * from './useBodyFile';
6
+ export * from './useClientIp';
7
+ export * from './useComponentName';
8
+ export * from './useCookies';
9
+ export * from './useEffect';
16
10
  export * from './useEndpoint';
17
- export * from './useBlock';
18
11
  export * from './useHeaders';
19
- export * from './useCookies';
20
- export * from './useAction';
21
- export * from './useThrow';
22
- export * from './useRule';
12
+ export * from './useHost';
13
+ export * from './useIsServerHttps';
14
+ export * from './useNewSchema';
23
15
  export * from './useObjectRule';
24
- export * from './useBodyFile';
16
+ export * from './useObjectSchemaContext';
17
+ export * from './useOneElementError';
18
+ export * from './useParam';
19
+ export * from './useParams';
25
20
  export * from './usePath';
21
+ export * from './useRequest';
22
+ export * from './useRequestHandler';
23
+ export * from './useResponse';
24
+ export * from './useRule';
25
+ export * from './useSchemaContext';
26
+ export * from './useSchemaType';
27
+ export * from './useSearch';
28
+ export * from './useServer';
26
29
  export * from './useServerPlugin';
27
- export * from './useClientIp';
28
30
  export * from './useServerPlugins';
29
- export * from './useObjectSchemaContext';
30
31
  export * from './useServerPort';
31
- export * from './useIsServerHttps';
32
- export * from './useRequestHandler';
32
+ export * from './useTag';
33
+ export * from './useThrow';
@@ -1,32 +1,33 @@
1
- import './useServer/index.es6.js';
1
+ import './useAction/index.es6.js';
2
2
  import './useApi/index.es6.js';
3
- import './useHost/index.es6.js';
4
- import './useTag/index.es6.js';
5
- import './useComponentName/index.es6.js';
6
- import './useOneElementError/index.es6.js';
7
- import './useSchemaContext/index.es6.js';
8
- import './useSchemaType/index.es6.js';
9
- import './useNewSchema/index.es6.js';
10
- import './useRequest/index.es6.js';
11
- import './useResponse/index.es6.js';
12
- import './useParams/index.es6.js';
3
+ import './useBlock/index.es6.js';
13
4
  import './useBody/index.es6.js';
14
- import './useSearch/index.es6.js';
15
- import './useParam/index.es6.js';
5
+ import './useBodyFile/index.es6.js';
6
+ import './useClientIp/index.es6.js';
7
+ import './useComponentName/index.es6.js';
8
+ import './useCookies/index.es6.js';
9
+ import './useEffect/index.es6.js';
16
10
  import './useEndpoint/index.es6.js';
17
- import './useBlock/index.es6.js';
18
11
  import './useHeaders/index.es6.js';
19
- import './useCookies/index.es6.js';
20
- import './useAction/index.es6.js';
21
- import './useThrow/index.es6.js';
22
- import './useRule/index.es6.js';
12
+ import './useHost/index.es6.js';
13
+ import './useIsServerHttps/index.es6.js';
14
+ import './useNewSchema/index.es6.js';
23
15
  import './useObjectRule/index.es6.js';
24
- import './useBodyFile/index.es6.js';
16
+ import './useObjectSchemaContext/index.es6.js';
17
+ import './useOneElementError/index.es6.js';
18
+ import './useParam/index.es6.js';
19
+ import './useParams/index.es6.js';
25
20
  import './usePath/index.es6.js';
21
+ import './useRequest/index.es6.js';
22
+ import './useRequestHandler/index.es6.js';
23
+ import './useResponse/index.es6.js';
24
+ import './useRule/index.es6.js';
25
+ import './useSchemaContext/index.es6.js';
26
+ import './useSchemaType/index.es6.js';
27
+ import './useSearch/index.es6.js';
28
+ import './useServer/index.es6.js';
26
29
  import './useServerPlugin/index.es6.js';
27
- import './useClientIp/index.es6.js';
28
30
  import './useServerPlugins/index.es6.js';
29
- import './useObjectSchemaContext/index.es6.js';
30
31
  import './useServerPort/index.es6.js';
31
- import './useIsServerHttps/index.es6.js';
32
- import './useRequestHandler/index.es6.js';
32
+ import './useTag/index.es6.js';
33
+ import './useThrow/index.es6.js';
package/hooks/index.js CHANGED
@@ -1,35 +1,36 @@
1
1
  'use strict';
2
2
 
3
- require('./useServer/index.js');
3
+ require('./useAction/index.js');
4
4
  require('./useApi/index.js');
5
- require('./useHost/index.js');
6
- require('./useTag/index.js');
7
- require('./useComponentName/index.js');
8
- require('./useOneElementError/index.js');
9
- require('./useSchemaContext/index.js');
10
- require('./useSchemaType/index.js');
11
- require('./useNewSchema/index.js');
12
- require('./useRequest/index.js');
13
- require('./useResponse/index.js');
14
- require('./useParams/index.js');
5
+ require('./useBlock/index.js');
15
6
  require('./useBody/index.js');
16
- require('./useSearch/index.js');
17
- require('./useParam/index.js');
7
+ require('./useBodyFile/index.js');
8
+ require('./useClientIp/index.js');
9
+ require('./useComponentName/index.js');
10
+ require('./useCookies/index.js');
11
+ require('./useEffect/index.js');
18
12
  require('./useEndpoint/index.js');
19
- require('./useBlock/index.js');
20
13
  require('./useHeaders/index.js');
21
- require('./useCookies/index.js');
22
- require('./useAction/index.js');
23
- require('./useThrow/index.js');
24
- require('./useRule/index.js');
14
+ require('./useHost/index.js');
15
+ require('./useIsServerHttps/index.js');
16
+ require('./useNewSchema/index.js');
25
17
  require('./useObjectRule/index.js');
26
- require('./useBodyFile/index.js');
18
+ require('./useObjectSchemaContext/index.js');
19
+ require('./useOneElementError/index.js');
20
+ require('./useParam/index.js');
21
+ require('./useParams/index.js');
27
22
  require('./usePath/index.js');
23
+ require('./useRequest/index.js');
24
+ require('./useRequestHandler/index.js');
25
+ require('./useResponse/index.js');
26
+ require('./useRule/index.js');
27
+ require('./useSchemaContext/index.js');
28
+ require('./useSchemaType/index.js');
29
+ require('./useSearch/index.js');
30
+ require('./useServer/index.js');
28
31
  require('./useServerPlugin/index.js');
29
- require('./useClientIp/index.js');
30
32
  require('./useServerPlugins/index.js');
31
- require('./useObjectSchemaContext/index.js');
32
33
  require('./useServerPort/index.js');
33
- require('./useIsServerHttps/index.js');
34
- require('./useRequestHandler/index.js');
34
+ require('./useTag/index.js');
35
+ require('./useThrow/index.js');
35
36
 
@@ -0,0 +1 @@
1
+ export * from './useEffect';
@@ -0,0 +1 @@
1
+ export { useEffect } from './useEffect.es6.js';
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var useEffect = require('./useEffect.js');
6
+
7
+
8
+
9
+ exports.useEffect = useEffect.useEffect;
@@ -0,0 +1,2 @@
1
+ import { type Effect } from '../../types';
2
+ export declare function useEffect(effect: Effect): void;
@@ -0,0 +1,8 @@
1
+ import { innet } from 'innet';
2
+ import { callHandler } from '@innet/utils';
3
+
4
+ function useEffect(effect) {
5
+ innet(effect, callHandler, 1, true);
6
+ }
7
+
8
+ export { useEffect };
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var innet = require('innet');
6
+ var utils = require('@innet/utils');
7
+
8
+ function useEffect(effect) {
9
+ innet.innet(effect, utils.callHandler, 1, true);
10
+ }
11
+
12
+ exports.useEffect = useEffect;
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { handler as default } from './handler';
2
- export * from './plugins';
3
2
  export * from './handler';
4
- export * from './utils';
5
3
  export * from './hooks';
4
+ export * from './plugins';
6
5
  export * from './types';
6
+ export * from './utils';