@feathersjs/schema 5.0.0-pre.35 → 5.0.0-pre.36
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/CHANGELOG.md +10 -0
- package/LICENSE +1 -1
- package/README.md +1 -1
- package/lib/default-schemas.d.ts +297 -9
- package/lib/default-schemas.js +22 -1
- package/lib/default-schemas.js.map +1 -1
- package/lib/hooks/resolve.d.ts +18 -7
- package/lib/hooks/resolve.js +40 -15
- package/lib/hooks/resolve.js.map +1 -1
- package/lib/json-schema.d.ts +17 -0
- package/lib/json-schema.js +21 -8
- package/lib/json-schema.js.map +1 -1
- package/package.json +8 -8
- package/src/default-schemas.ts +22 -1
- package/src/hooks/resolve.ts +52 -26
- package/src/json-schema.ts +21 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [5.0.0-pre.36](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.35...v5.0.0-pre.36) (2023-01-29)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **configuration:** Add pool and connection object to SQL database default configuration ([#3023](https://github.com/feathersjs/feathers/issues/3023)) ([092c749](https://github.com/feathersjs/feathers/commit/092c749d43f7da4d019576d1210fe7d3719a44a2))
|
|
11
|
+
- **databases:** Ensure that query sanitization is not necessary when using query schemas ([#3022](https://github.com/feathersjs/feathers/issues/3022)) ([dbf514e](https://github.com/feathersjs/feathers/commit/dbf514e85d1508b95c007462a39b3cadd4ff391d))
|
|
12
|
+
- **schema:** Allow any type in resolver hooks ([#3006](https://github.com/feathersjs/feathers/issues/3006)) ([f01281f](https://github.com/feathersjs/feathers/commit/f01281f7d83262738459585fc3f53f56c0a0deb8))
|
|
13
|
+
- **schema:** Ensure all types of nested data are securely dispatched ([#3005](https://github.com/feathersjs/feathers/issues/3005)) ([e4a9da5](https://github.com/feathersjs/feathers/commit/e4a9da5f3288e8e9f02087754473c7a9dfda6cb1))
|
|
14
|
+
- Update all dependencies ([#3024](https://github.com/feathersjs/feathers/issues/3024)) ([283dc47](https://github.com/feathersjs/feathers/commit/283dc4798d85584bc031e6e54b83b4ea77d1edd0))
|
|
15
|
+
|
|
6
16
|
# [5.0.0-pre.35](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.34...v5.0.0-pre.35) (2023-01-12)
|
|
7
17
|
|
|
8
18
|
### Features
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -18,6 +18,6 @@ Refer to the [Feathers documentation](https://docs.feathersjs.com) for more deta
|
|
|
18
18
|
|
|
19
19
|
## License
|
|
20
20
|
|
|
21
|
-
Copyright (c)
|
|
21
|
+
Copyright (c) 2023 [Feathers contributors](https://github.com/feathersjs/feathers/graphs/contributors)
|
|
22
22
|
|
|
23
23
|
Licensed under the [MIT license](LICENSE).
|
package/lib/default-schemas.d.ts
CHANGED
|
@@ -122,8 +122,40 @@ export declare const sqlSettingsSchema: {
|
|
|
122
122
|
readonly client: {
|
|
123
123
|
readonly type: "string";
|
|
124
124
|
};
|
|
125
|
+
readonly pool: {
|
|
126
|
+
readonly type: "object";
|
|
127
|
+
readonly properties: {
|
|
128
|
+
readonly min: {
|
|
129
|
+
readonly type: "number";
|
|
130
|
+
};
|
|
131
|
+
readonly max: {
|
|
132
|
+
readonly type: "number";
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
};
|
|
125
136
|
readonly connection: {
|
|
126
|
-
readonly
|
|
137
|
+
readonly oneOf: readonly [{
|
|
138
|
+
readonly type: "string";
|
|
139
|
+
}, {
|
|
140
|
+
readonly type: "object";
|
|
141
|
+
readonly properties: {
|
|
142
|
+
readonly host: {
|
|
143
|
+
readonly type: "string";
|
|
144
|
+
};
|
|
145
|
+
readonly port: {
|
|
146
|
+
readonly type: "number";
|
|
147
|
+
};
|
|
148
|
+
readonly user: {
|
|
149
|
+
readonly type: "string";
|
|
150
|
+
};
|
|
151
|
+
readonly password: {
|
|
152
|
+
readonly type: "string";
|
|
153
|
+
};
|
|
154
|
+
readonly database: {
|
|
155
|
+
readonly type: "string";
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
}];
|
|
127
159
|
};
|
|
128
160
|
};
|
|
129
161
|
};
|
|
@@ -275,8 +307,40 @@ export declare const defaultAppSettings: {
|
|
|
275
307
|
readonly client: {
|
|
276
308
|
readonly type: "string";
|
|
277
309
|
};
|
|
310
|
+
readonly pool: {
|
|
311
|
+
readonly type: "object";
|
|
312
|
+
readonly properties: {
|
|
313
|
+
readonly min: {
|
|
314
|
+
readonly type: "number";
|
|
315
|
+
};
|
|
316
|
+
readonly max: {
|
|
317
|
+
readonly type: "number";
|
|
318
|
+
};
|
|
319
|
+
};
|
|
320
|
+
};
|
|
278
321
|
readonly connection: {
|
|
279
|
-
readonly
|
|
322
|
+
readonly oneOf: readonly [{
|
|
323
|
+
readonly type: "string";
|
|
324
|
+
}, {
|
|
325
|
+
readonly type: "object";
|
|
326
|
+
readonly properties: {
|
|
327
|
+
readonly host: {
|
|
328
|
+
readonly type: "string";
|
|
329
|
+
};
|
|
330
|
+
readonly port: {
|
|
331
|
+
readonly type: "number";
|
|
332
|
+
};
|
|
333
|
+
readonly user: {
|
|
334
|
+
readonly type: "string";
|
|
335
|
+
};
|
|
336
|
+
readonly password: {
|
|
337
|
+
readonly type: "string";
|
|
338
|
+
};
|
|
339
|
+
readonly database: {
|
|
340
|
+
readonly type: "string";
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
}];
|
|
280
344
|
};
|
|
281
345
|
};
|
|
282
346
|
};
|
|
@@ -286,8 +350,40 @@ export declare const defaultAppSettings: {
|
|
|
286
350
|
readonly client: {
|
|
287
351
|
readonly type: "string";
|
|
288
352
|
};
|
|
353
|
+
readonly pool: {
|
|
354
|
+
readonly type: "object";
|
|
355
|
+
readonly properties: {
|
|
356
|
+
readonly min: {
|
|
357
|
+
readonly type: "number";
|
|
358
|
+
};
|
|
359
|
+
readonly max: {
|
|
360
|
+
readonly type: "number";
|
|
361
|
+
};
|
|
362
|
+
};
|
|
363
|
+
};
|
|
289
364
|
readonly connection: {
|
|
290
|
-
readonly
|
|
365
|
+
readonly oneOf: readonly [{
|
|
366
|
+
readonly type: "string";
|
|
367
|
+
}, {
|
|
368
|
+
readonly type: "object";
|
|
369
|
+
readonly properties: {
|
|
370
|
+
readonly host: {
|
|
371
|
+
readonly type: "string";
|
|
372
|
+
};
|
|
373
|
+
readonly port: {
|
|
374
|
+
readonly type: "number";
|
|
375
|
+
};
|
|
376
|
+
readonly user: {
|
|
377
|
+
readonly type: "string";
|
|
378
|
+
};
|
|
379
|
+
readonly password: {
|
|
380
|
+
readonly type: "string";
|
|
381
|
+
};
|
|
382
|
+
readonly database: {
|
|
383
|
+
readonly type: "string";
|
|
384
|
+
};
|
|
385
|
+
};
|
|
386
|
+
}];
|
|
291
387
|
};
|
|
292
388
|
};
|
|
293
389
|
};
|
|
@@ -297,8 +393,40 @@ export declare const defaultAppSettings: {
|
|
|
297
393
|
readonly client: {
|
|
298
394
|
readonly type: "string";
|
|
299
395
|
};
|
|
396
|
+
readonly pool: {
|
|
397
|
+
readonly type: "object";
|
|
398
|
+
readonly properties: {
|
|
399
|
+
readonly min: {
|
|
400
|
+
readonly type: "number";
|
|
401
|
+
};
|
|
402
|
+
readonly max: {
|
|
403
|
+
readonly type: "number";
|
|
404
|
+
};
|
|
405
|
+
};
|
|
406
|
+
};
|
|
300
407
|
readonly connection: {
|
|
301
|
-
readonly
|
|
408
|
+
readonly oneOf: readonly [{
|
|
409
|
+
readonly type: "string";
|
|
410
|
+
}, {
|
|
411
|
+
readonly type: "object";
|
|
412
|
+
readonly properties: {
|
|
413
|
+
readonly host: {
|
|
414
|
+
readonly type: "string";
|
|
415
|
+
};
|
|
416
|
+
readonly port: {
|
|
417
|
+
readonly type: "number";
|
|
418
|
+
};
|
|
419
|
+
readonly user: {
|
|
420
|
+
readonly type: "string";
|
|
421
|
+
};
|
|
422
|
+
readonly password: {
|
|
423
|
+
readonly type: "string";
|
|
424
|
+
};
|
|
425
|
+
readonly database: {
|
|
426
|
+
readonly type: "string";
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
}];
|
|
302
430
|
};
|
|
303
431
|
};
|
|
304
432
|
};
|
|
@@ -308,8 +436,40 @@ export declare const defaultAppSettings: {
|
|
|
308
436
|
readonly client: {
|
|
309
437
|
readonly type: "string";
|
|
310
438
|
};
|
|
439
|
+
readonly pool: {
|
|
440
|
+
readonly type: "object";
|
|
441
|
+
readonly properties: {
|
|
442
|
+
readonly min: {
|
|
443
|
+
readonly type: "number";
|
|
444
|
+
};
|
|
445
|
+
readonly max: {
|
|
446
|
+
readonly type: "number";
|
|
447
|
+
};
|
|
448
|
+
};
|
|
449
|
+
};
|
|
311
450
|
readonly connection: {
|
|
312
|
-
readonly
|
|
451
|
+
readonly oneOf: readonly [{
|
|
452
|
+
readonly type: "string";
|
|
453
|
+
}, {
|
|
454
|
+
readonly type: "object";
|
|
455
|
+
readonly properties: {
|
|
456
|
+
readonly host: {
|
|
457
|
+
readonly type: "string";
|
|
458
|
+
};
|
|
459
|
+
readonly port: {
|
|
460
|
+
readonly type: "number";
|
|
461
|
+
};
|
|
462
|
+
readonly user: {
|
|
463
|
+
readonly type: "string";
|
|
464
|
+
};
|
|
465
|
+
readonly password: {
|
|
466
|
+
readonly type: "string";
|
|
467
|
+
};
|
|
468
|
+
readonly database: {
|
|
469
|
+
readonly type: "string";
|
|
470
|
+
};
|
|
471
|
+
};
|
|
472
|
+
}];
|
|
313
473
|
};
|
|
314
474
|
};
|
|
315
475
|
};
|
|
@@ -462,8 +622,40 @@ export declare const defaultAppConfiguration: {
|
|
|
462
622
|
readonly client: {
|
|
463
623
|
readonly type: "string";
|
|
464
624
|
};
|
|
625
|
+
readonly pool: {
|
|
626
|
+
readonly type: "object";
|
|
627
|
+
readonly properties: {
|
|
628
|
+
readonly min: {
|
|
629
|
+
readonly type: "number";
|
|
630
|
+
};
|
|
631
|
+
readonly max: {
|
|
632
|
+
readonly type: "number";
|
|
633
|
+
};
|
|
634
|
+
};
|
|
635
|
+
};
|
|
465
636
|
readonly connection: {
|
|
466
|
-
readonly
|
|
637
|
+
readonly oneOf: readonly [{
|
|
638
|
+
readonly type: "string";
|
|
639
|
+
}, {
|
|
640
|
+
readonly type: "object";
|
|
641
|
+
readonly properties: {
|
|
642
|
+
readonly host: {
|
|
643
|
+
readonly type: "string";
|
|
644
|
+
};
|
|
645
|
+
readonly port: {
|
|
646
|
+
readonly type: "number";
|
|
647
|
+
};
|
|
648
|
+
readonly user: {
|
|
649
|
+
readonly type: "string";
|
|
650
|
+
};
|
|
651
|
+
readonly password: {
|
|
652
|
+
readonly type: "string";
|
|
653
|
+
};
|
|
654
|
+
readonly database: {
|
|
655
|
+
readonly type: "string";
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
}];
|
|
467
659
|
};
|
|
468
660
|
};
|
|
469
661
|
};
|
|
@@ -473,8 +665,40 @@ export declare const defaultAppConfiguration: {
|
|
|
473
665
|
readonly client: {
|
|
474
666
|
readonly type: "string";
|
|
475
667
|
};
|
|
668
|
+
readonly pool: {
|
|
669
|
+
readonly type: "object";
|
|
670
|
+
readonly properties: {
|
|
671
|
+
readonly min: {
|
|
672
|
+
readonly type: "number";
|
|
673
|
+
};
|
|
674
|
+
readonly max: {
|
|
675
|
+
readonly type: "number";
|
|
676
|
+
};
|
|
677
|
+
};
|
|
678
|
+
};
|
|
476
679
|
readonly connection: {
|
|
477
|
-
readonly
|
|
680
|
+
readonly oneOf: readonly [{
|
|
681
|
+
readonly type: "string";
|
|
682
|
+
}, {
|
|
683
|
+
readonly type: "object";
|
|
684
|
+
readonly properties: {
|
|
685
|
+
readonly host: {
|
|
686
|
+
readonly type: "string";
|
|
687
|
+
};
|
|
688
|
+
readonly port: {
|
|
689
|
+
readonly type: "number";
|
|
690
|
+
};
|
|
691
|
+
readonly user: {
|
|
692
|
+
readonly type: "string";
|
|
693
|
+
};
|
|
694
|
+
readonly password: {
|
|
695
|
+
readonly type: "string";
|
|
696
|
+
};
|
|
697
|
+
readonly database: {
|
|
698
|
+
readonly type: "string";
|
|
699
|
+
};
|
|
700
|
+
};
|
|
701
|
+
}];
|
|
478
702
|
};
|
|
479
703
|
};
|
|
480
704
|
};
|
|
@@ -484,8 +708,40 @@ export declare const defaultAppConfiguration: {
|
|
|
484
708
|
readonly client: {
|
|
485
709
|
readonly type: "string";
|
|
486
710
|
};
|
|
711
|
+
readonly pool: {
|
|
712
|
+
readonly type: "object";
|
|
713
|
+
readonly properties: {
|
|
714
|
+
readonly min: {
|
|
715
|
+
readonly type: "number";
|
|
716
|
+
};
|
|
717
|
+
readonly max: {
|
|
718
|
+
readonly type: "number";
|
|
719
|
+
};
|
|
720
|
+
};
|
|
721
|
+
};
|
|
487
722
|
readonly connection: {
|
|
488
|
-
readonly
|
|
723
|
+
readonly oneOf: readonly [{
|
|
724
|
+
readonly type: "string";
|
|
725
|
+
}, {
|
|
726
|
+
readonly type: "object";
|
|
727
|
+
readonly properties: {
|
|
728
|
+
readonly host: {
|
|
729
|
+
readonly type: "string";
|
|
730
|
+
};
|
|
731
|
+
readonly port: {
|
|
732
|
+
readonly type: "number";
|
|
733
|
+
};
|
|
734
|
+
readonly user: {
|
|
735
|
+
readonly type: "string";
|
|
736
|
+
};
|
|
737
|
+
readonly password: {
|
|
738
|
+
readonly type: "string";
|
|
739
|
+
};
|
|
740
|
+
readonly database: {
|
|
741
|
+
readonly type: "string";
|
|
742
|
+
};
|
|
743
|
+
};
|
|
744
|
+
}];
|
|
489
745
|
};
|
|
490
746
|
};
|
|
491
747
|
};
|
|
@@ -495,8 +751,40 @@ export declare const defaultAppConfiguration: {
|
|
|
495
751
|
readonly client: {
|
|
496
752
|
readonly type: "string";
|
|
497
753
|
};
|
|
754
|
+
readonly pool: {
|
|
755
|
+
readonly type: "object";
|
|
756
|
+
readonly properties: {
|
|
757
|
+
readonly min: {
|
|
758
|
+
readonly type: "number";
|
|
759
|
+
};
|
|
760
|
+
readonly max: {
|
|
761
|
+
readonly type: "number";
|
|
762
|
+
};
|
|
763
|
+
};
|
|
764
|
+
};
|
|
498
765
|
readonly connection: {
|
|
499
|
-
readonly
|
|
766
|
+
readonly oneOf: readonly [{
|
|
767
|
+
readonly type: "string";
|
|
768
|
+
}, {
|
|
769
|
+
readonly type: "object";
|
|
770
|
+
readonly properties: {
|
|
771
|
+
readonly host: {
|
|
772
|
+
readonly type: "string";
|
|
773
|
+
};
|
|
774
|
+
readonly port: {
|
|
775
|
+
readonly type: "number";
|
|
776
|
+
};
|
|
777
|
+
readonly user: {
|
|
778
|
+
readonly type: "string";
|
|
779
|
+
};
|
|
780
|
+
readonly password: {
|
|
781
|
+
readonly type: "string";
|
|
782
|
+
};
|
|
783
|
+
readonly database: {
|
|
784
|
+
readonly type: "string";
|
|
785
|
+
};
|
|
786
|
+
};
|
|
787
|
+
}];
|
|
500
788
|
};
|
|
501
789
|
};
|
|
502
790
|
};
|
package/lib/default-schemas.js
CHANGED
|
@@ -112,7 +112,28 @@ exports.sqlSettingsSchema = {
|
|
|
112
112
|
type: 'object',
|
|
113
113
|
properties: {
|
|
114
114
|
client: { type: 'string' },
|
|
115
|
-
|
|
115
|
+
pool: {
|
|
116
|
+
type: 'object',
|
|
117
|
+
properties: {
|
|
118
|
+
min: { type: 'number' },
|
|
119
|
+
max: { type: 'number' }
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
connection: {
|
|
123
|
+
oneOf: [
|
|
124
|
+
{ type: 'string' },
|
|
125
|
+
{
|
|
126
|
+
type: 'object',
|
|
127
|
+
properties: {
|
|
128
|
+
host: { type: 'string' },
|
|
129
|
+
port: { type: 'number' },
|
|
130
|
+
user: { type: 'string' },
|
|
131
|
+
password: { type: 'string' },
|
|
132
|
+
database: { type: 'string' }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
116
137
|
}
|
|
117
138
|
};
|
|
118
139
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-schemas.js","sourceRoot":"","sources":["../src/default-schemas.ts"],"names":[],"mappings":";;;AAEa,QAAA,4BAA4B,GAAG;IAC1C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAChD,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wBAAwB;SACtC;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,MAAM;iBACb;gBACD;oBACE,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,WAAW,EAAE,mDAAmD;SACjE;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mDAAmD;SACjE;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gCAAgC;SAC9C;QACD,cAAc,EAAE;YACd,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,sFAAsF;SACpG;QACD,eAAe,EAAE;YACf,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EACT,sIAAsI;SACzI;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;SACf;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe;oBACxB,WAAW,EAAE,oCAAoC;iBAClD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,gCAAgC;iBAC9C;aACF;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;YAC5C,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;iBACzD;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe;oBACxB,WAAW,EAAE,uCAAuC;iBACrD;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;iBACjH;gBACD,mBAAmB,EAAE;oBACnB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;iBACjH;aACF;SACF;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;iBACf;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC3B;iBACF;aACF;SACF;KACF;CACO,CAAA;AAIG,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"default-schemas.js","sourceRoot":"","sources":["../src/default-schemas.ts"],"names":[],"mappings":"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"}
|
package/lib/hooks/resolve.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { HookContext, NextFunction } from '@feathersjs/feathers';
|
|
2
2
|
import { Resolver } from '../resolver';
|
|
3
3
|
export type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[];
|
|
4
|
-
export declare const resolveQuery: <
|
|
5
|
-
export declare const resolveData: <
|
|
6
|
-
export declare const resolveResult: <
|
|
4
|
+
export declare const resolveQuery: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
|
|
5
|
+
export declare const resolveData: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<any>;
|
|
6
|
+
export declare const resolveResult: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
|
|
7
7
|
export declare const DISPATCH: unique symbol;
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export
|
|
8
|
+
export declare const getDispatchValue: (value: any) => any;
|
|
9
|
+
export declare const getDispatch: (value: any) => any;
|
|
10
|
+
export declare const setDispatch: (current: any, dispatch: any) => any;
|
|
11
|
+
export declare const resolveDispatch: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
|
|
12
|
+
export declare const resolveExternal: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(...resolvers: Resolver<any, H>[]) => (context: H, next?: NextFunction) => Promise<void>;
|
|
13
|
+
type ResolveAllSettings<H extends HookContext> = {
|
|
12
14
|
data?: {
|
|
13
15
|
create: Resolver<any, H>;
|
|
14
16
|
patch: Resolver<any, H>;
|
|
@@ -18,4 +20,13 @@ export type ResolveAllSettings<H extends HookContext> = {
|
|
|
18
20
|
result?: Resolver<any, H>;
|
|
19
21
|
dispatch?: Resolver<any, H>;
|
|
20
22
|
};
|
|
23
|
+
/**
|
|
24
|
+
* Resolve all resolvers at once.
|
|
25
|
+
*
|
|
26
|
+
* @param map The individual resolvers
|
|
27
|
+
* @returns A combined resolver middleware
|
|
28
|
+
* @deprecated Use individual data, query and external resolvers and hooks instead.
|
|
29
|
+
* @see https://dove.feathersjs.com/guides/cli/service.schemas.html
|
|
30
|
+
*/
|
|
21
31
|
export declare const resolveAll: <H extends HookContext<import("@feathersjs/feathers").Application<any, any>, any>>(map: ResolveAllSettings<H>) => (this: any, context: H, next?: import("@feathersjs/hooks").AsyncMiddleware<H>) => Promise<any>;
|
|
32
|
+
export {};
|
package/lib/hooks/resolve.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveAll = exports.resolveExternal = exports.resolveDispatch = exports.getDispatch = exports.DISPATCH = exports.resolveResult = exports.resolveData = exports.resolveQuery = void 0;
|
|
3
|
+
exports.resolveAll = exports.resolveExternal = exports.resolveDispatch = exports.setDispatch = exports.getDispatch = exports.getDispatchValue = exports.DISPATCH = exports.resolveResult = exports.resolveData = exports.resolveQuery = void 0;
|
|
4
4
|
const hooks_1 = require("@feathersjs/hooks");
|
|
5
5
|
const getContext = (context) => {
|
|
6
6
|
return Object.freeze({
|
|
@@ -11,7 +11,7 @@ const getContext = (context) => {
|
|
|
11
11
|
})
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
const
|
|
14
|
+
const getResult = (context) => {
|
|
15
15
|
const isPaginated = context.method === 'find' && context.result.data;
|
|
16
16
|
const data = isPaginated ? context.result.data : context.result;
|
|
17
17
|
return { isPaginated, data };
|
|
@@ -75,14 +75,14 @@ const resolveResult = (...resolvers) => {
|
|
|
75
75
|
resolve,
|
|
76
76
|
query: {
|
|
77
77
|
...query,
|
|
78
|
-
$select
|
|
78
|
+
...($select ? { $select } : {})
|
|
79
79
|
}
|
|
80
80
|
};
|
|
81
81
|
await next();
|
|
82
82
|
}
|
|
83
83
|
const ctx = getContext(context);
|
|
84
84
|
const status = context.params.resolve;
|
|
85
|
-
const { isPaginated, data } =
|
|
85
|
+
const { isPaginated, data } = getResult(context);
|
|
86
86
|
const result = Array.isArray(data)
|
|
87
87
|
? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
|
|
88
88
|
: await runResolvers(resolvers, data, ctx, status);
|
|
@@ -96,26 +96,48 @@ const resolveResult = (...resolvers) => {
|
|
|
96
96
|
};
|
|
97
97
|
exports.resolveResult = resolveResult;
|
|
98
98
|
exports.DISPATCH = Symbol('@feathersjs/schema/dispatch');
|
|
99
|
-
const
|
|
99
|
+
const getDispatchValue = (value) => {
|
|
100
|
+
if (typeof value === 'object' && value !== null) {
|
|
101
|
+
if (value[exports.DISPATCH] !== undefined) {
|
|
102
|
+
return value[exports.DISPATCH];
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(value)) {
|
|
105
|
+
return value.map((item) => (0, exports.getDispatchValue)(item));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return value;
|
|
109
|
+
};
|
|
110
|
+
exports.getDispatchValue = getDispatchValue;
|
|
111
|
+
const getDispatch = (value) => typeof value === 'object' && value !== null && value[exports.DISPATCH] ? value[exports.DISPATCH] : null;
|
|
100
112
|
exports.getDispatch = getDispatch;
|
|
113
|
+
const setDispatch = (current, dispatch) => {
|
|
114
|
+
Object.defineProperty(current, exports.DISPATCH, {
|
|
115
|
+
value: dispatch,
|
|
116
|
+
enumerable: false,
|
|
117
|
+
configurable: false
|
|
118
|
+
});
|
|
119
|
+
return dispatch;
|
|
120
|
+
};
|
|
121
|
+
exports.setDispatch = setDispatch;
|
|
101
122
|
const resolveDispatch = (...resolvers) => async (context, next) => {
|
|
102
123
|
if (typeof next === 'function') {
|
|
103
124
|
await next();
|
|
104
125
|
}
|
|
105
126
|
const ctx = getContext(context);
|
|
106
|
-
const existingDispatch = (0, exports.getDispatch)(context.result
|
|
127
|
+
const existingDispatch = (0, exports.getDispatch)(context.result);
|
|
107
128
|
if (existingDispatch !== null) {
|
|
108
129
|
context.dispatch = existingDispatch;
|
|
109
130
|
}
|
|
110
131
|
else {
|
|
111
132
|
const status = context.params.resolve;
|
|
112
|
-
const { isPaginated, data } =
|
|
133
|
+
const { isPaginated, data } = getResult(context);
|
|
113
134
|
const resolveAndGetDispatch = async (current) => {
|
|
114
135
|
const resolved = await runResolvers(resolvers, current, ctx, status);
|
|
115
|
-
|
|
116
|
-
res[key] = (0, exports.
|
|
136
|
+
const currentDispatch = Object.keys(resolved).reduce((res, key) => {
|
|
137
|
+
res[key] = (0, exports.getDispatchValue)(resolved[key]);
|
|
117
138
|
return res;
|
|
118
139
|
}, {});
|
|
140
|
+
return (0, exports.setDispatch)(current, currentDispatch);
|
|
119
141
|
};
|
|
120
142
|
const result = await (Array.isArray(data)
|
|
121
143
|
? Promise.all(data.map(resolveAndGetDispatch))
|
|
@@ -126,17 +148,20 @@ const resolveDispatch = (...resolvers) => async (context, next) => {
|
|
|
126
148
|
data: result
|
|
127
149
|
}
|
|
128
150
|
: result;
|
|
129
|
-
context.dispatch = dispatch;
|
|
130
|
-
Object.defineProperty(context.result, exports.DISPATCH, {
|
|
131
|
-
value: dispatch,
|
|
132
|
-
enumerable: false,
|
|
133
|
-
configurable: false
|
|
134
|
-
});
|
|
151
|
+
context.dispatch = (0, exports.setDispatch)(context.result, dispatch);
|
|
135
152
|
}
|
|
136
153
|
};
|
|
137
154
|
exports.resolveDispatch = resolveDispatch;
|
|
138
155
|
exports.resolveExternal = exports.resolveDispatch;
|
|
139
156
|
const dataMethods = ['create', 'update', 'patch'];
|
|
157
|
+
/**
|
|
158
|
+
* Resolve all resolvers at once.
|
|
159
|
+
*
|
|
160
|
+
* @param map The individual resolvers
|
|
161
|
+
* @returns A combined resolver middleware
|
|
162
|
+
* @deprecated Use individual data, query and external resolvers and hooks instead.
|
|
163
|
+
* @see https://dove.feathersjs.com/guides/cli/service.schemas.html
|
|
164
|
+
*/
|
|
140
165
|
const resolveAll = (map) => {
|
|
141
166
|
const middleware = [];
|
|
142
167
|
middleware.push((0, exports.resolveDispatch)(map.dispatch));
|
package/lib/hooks/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAG3C,MAAM,UAAU,GAAG,CAAwB,OAAU,EAAE,EAAE;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,OAAO;QACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACzB,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/hooks/resolve.ts"],"names":[],"mappings":"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"}
|
package/lib/json-schema.d.ts
CHANGED
|
@@ -139,4 +139,21 @@ export declare const querySyntax: <T extends {
|
|
|
139
139
|
readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
|
|
140
140
|
};
|
|
141
141
|
};
|
|
142
|
+
readonly $and: {
|
|
143
|
+
readonly type: "array";
|
|
144
|
+
readonly items: {
|
|
145
|
+
readonly type: "object";
|
|
146
|
+
readonly additionalProperties: false;
|
|
147
|
+
readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; } & {
|
|
148
|
+
readonly $or: {
|
|
149
|
+
readonly type: "array";
|
|
150
|
+
readonly items: {
|
|
151
|
+
readonly type: "object";
|
|
152
|
+
readonly additionalProperties: false;
|
|
153
|
+
readonly properties: { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
};
|
|
142
159
|
} & { [K_2 in keyof T]: PropertyQuery<T[K_2], X[K_2]>; };
|
package/lib/json-schema.js
CHANGED
|
@@ -105,6 +105,25 @@ exports.queryProperties = queryProperties;
|
|
|
105
105
|
const querySyntax = (definition, extensions = {}) => {
|
|
106
106
|
const keys = Object.keys(definition);
|
|
107
107
|
const props = (0, exports.queryProperties)(definition, extensions);
|
|
108
|
+
const $or = {
|
|
109
|
+
type: 'array',
|
|
110
|
+
items: {
|
|
111
|
+
type: 'object',
|
|
112
|
+
additionalProperties: false,
|
|
113
|
+
properties: props
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const $and = {
|
|
117
|
+
type: 'array',
|
|
118
|
+
items: {
|
|
119
|
+
type: 'object',
|
|
120
|
+
additionalProperties: false,
|
|
121
|
+
properties: {
|
|
122
|
+
...props,
|
|
123
|
+
$or
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
108
127
|
return {
|
|
109
128
|
$limit: {
|
|
110
129
|
type: 'number',
|
|
@@ -133,14 +152,8 @@ const querySyntax = (definition, extensions = {}) => {
|
|
|
133
152
|
...(keys.length > 0 ? { enum: keys } : {})
|
|
134
153
|
}
|
|
135
154
|
},
|
|
136
|
-
$or
|
|
137
|
-
|
|
138
|
-
items: {
|
|
139
|
-
type: 'object',
|
|
140
|
-
additionalProperties: false,
|
|
141
|
-
properties: props
|
|
142
|
-
}
|
|
143
|
-
},
|
|
155
|
+
$or,
|
|
156
|
+
$and,
|
|
144
157
|
...props
|
|
145
158
|
};
|
|
146
159
|
};
|
package/lib/json-schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":";;;AAAA,iDAAuC;AAgBvC;;;;;;GAMG;AACI,MAAM,YAAY,GAAG,CAAiB,MAA4B,EAAE,SAAc,EAAmB,EAAE,CAC5G,SAAS,CAAC,OAAO,CAAC;IAChB,MAAM,EAAE,IAAI;IACZ,GAAI,MAAc;CACnB,CAA2B,CAAA;AAJjB,QAAA,YAAY,gBAIK;AAE9B;;;;;;;;;GASG;AACI,MAAM,gBAAgB,GAAG,CAC9B,GAAyC,EACzC,SAAc,EACI,EAAE;IACpB,MAAM,MAAM,GAAG,CAAE,GAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAkB,CAAA;IAE7E,OAAO;QACL,MAAM,EAAE,IAAA,oBAAY,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;QAC9C,MAAM,EAAE,IAAA,oBAAY,EAClB,MAAM,CAAC,MAAM,IAAI;YACf,GAAI,MAAM,CAAC,MAAc;YACzB,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ;SAClC,EACD,SAAS,CACV;QACD,KAAK,EAAE,IAAA,oBAAY,EACjB,MAAM,CAAC,KAAK,IAAI;YACd,GAAI,MAAM,CAAC,MAAc;YACzB,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO;YAChC,QAAQ,EAAE,EAAE;SACb,EACD,SAAS,CACV;KACF,CAAA;AACH,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B;AA2BD;;;;;;GAMG;AACI,MAAM,aAAa,GAAG,CAC3B,GAAM,EACN,aAAgB,EAAO,EACvB,EAAE;IACF,MAAM,UAAU,GAAG,WAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACzC,OAAO;QACL,KAAK,EAAE;YACL,UAAU;YACV;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,UAAU;oBACf,GAAG,EAAE;wBACH,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBAClB;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,UAAU;qBAClB;oBACD,GAAG,UAAU;iBACd;aACF;SACF;KACO,CAAA;AACZ,CAAC,CAAA;AA9BY,QAAA,aAAa,iBA8BzB;AAED;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,CAI7B,WAAc,EACd,aAAgB,EAAO,EACvB,EAAE,CACF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,GAAU,CAAA;IACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAiB,CAAA;IAElC,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,8DAA8D,GAAG,GAAG,CAAC,CAAA;KACtF;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAa,EAAC,UAAkC,EAAE,UAAU,CAAC,GAAc,CAAC,CAAC,CAAA;IAE3F,OAAO,MAAM,CAAA;AACf,CAAC,EAAE,EAAmD,CAAC,CAAA;AAnB5C,QAAA,eAAe,mBAmB6B;AAEzD;;;;;;;GAOG;AACI,MAAM,WAAW,GAAG,CAIzB,UAAa,EACb,aAAgB,EAAO,EACvB,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,UAAU,EAAE,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/schema",
|
|
3
3
|
"description": "A common data schema definition format",
|
|
4
|
-
"version": "5.0.0-pre.
|
|
4
|
+
"version": "5.0.0-pre.36",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"types": "lib/",
|
|
@@ -54,18 +54,18 @@
|
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@feathersjs/adapter-commons": "^5.0.0-pre.
|
|
58
|
-
"@feathersjs/commons": "^5.0.0-pre.
|
|
59
|
-
"@feathersjs/errors": "^5.0.0-pre.
|
|
60
|
-
"@feathersjs/feathers": "^5.0.0-pre.
|
|
57
|
+
"@feathersjs/adapter-commons": "^5.0.0-pre.36",
|
|
58
|
+
"@feathersjs/commons": "^5.0.0-pre.36",
|
|
59
|
+
"@feathersjs/errors": "^5.0.0-pre.36",
|
|
60
|
+
"@feathersjs/feathers": "^5.0.0-pre.36",
|
|
61
61
|
"@feathersjs/hooks": "^0.7.6",
|
|
62
62
|
"@types/json-schema": "^7.0.11",
|
|
63
|
-
"ajv": "^8.
|
|
63
|
+
"ajv": "^8.12.0",
|
|
64
64
|
"ajv-formats": "^2.1.1",
|
|
65
65
|
"json-schema-to-ts": "^2.6.2"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@feathersjs/memory": "^5.0.0-pre.
|
|
68
|
+
"@feathersjs/memory": "^5.0.0-pre.36",
|
|
69
69
|
"@types/mocha": "^10.0.1",
|
|
70
70
|
"@types/node": "^18.11.18",
|
|
71
71
|
"ajv-formats": "^2.1.1",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"shx": "^0.3.4",
|
|
74
74
|
"typescript": "^4.9.4"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "9a107b463cc80d7f3c28553c908987e05b0b634a"
|
|
77
77
|
}
|
package/src/default-schemas.ts
CHANGED
|
@@ -117,7 +117,28 @@ export const sqlSettingsSchema = {
|
|
|
117
117
|
type: 'object',
|
|
118
118
|
properties: {
|
|
119
119
|
client: { type: 'string' },
|
|
120
|
-
|
|
120
|
+
pool: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
min: { type: 'number' },
|
|
124
|
+
max: { type: 'number' }
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
connection: {
|
|
128
|
+
oneOf: [
|
|
129
|
+
{ type: 'string' },
|
|
130
|
+
{
|
|
131
|
+
type: 'object',
|
|
132
|
+
properties: {
|
|
133
|
+
host: { type: 'string' },
|
|
134
|
+
port: { type: 'number' },
|
|
135
|
+
user: { type: 'string' },
|
|
136
|
+
password: { type: 'string' },
|
|
137
|
+
database: { type: 'string' }
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
121
142
|
}
|
|
122
143
|
} as const
|
|
123
144
|
|
package/src/hooks/resolve.ts
CHANGED
|
@@ -12,7 +12,7 @@ const getContext = <H extends HookContext>(context: H) => {
|
|
|
12
12
|
})
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const getResult = <H extends HookContext>(context: H) => {
|
|
16
16
|
const isPaginated = context.method === 'find' && context.result.data
|
|
17
17
|
const data = isPaginated ? context.result.data : context.result
|
|
18
18
|
|
|
@@ -39,7 +39,7 @@ const runResolvers = async <T, H extends HookContext>(
|
|
|
39
39
|
export type ResolverSetting<H extends HookContext> = Resolver<any, H> | Resolver<any, H>[]
|
|
40
40
|
|
|
41
41
|
export const resolveQuery =
|
|
42
|
-
<
|
|
42
|
+
<H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
|
|
43
43
|
async (context: H, next?: NextFunction) => {
|
|
44
44
|
const ctx = getContext(context)
|
|
45
45
|
const data = context?.params?.query || {}
|
|
@@ -56,7 +56,7 @@ export const resolveQuery =
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
export const resolveData =
|
|
59
|
-
<
|
|
59
|
+
<H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
|
|
60
60
|
async (context: H, next?: NextFunction) => {
|
|
61
61
|
if (context.data !== undefined) {
|
|
62
62
|
const ctx = getContext(context)
|
|
@@ -78,10 +78,8 @@ export const resolveData =
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
export const resolveResult = <
|
|
82
|
-
const virtualProperties = new Set(
|
|
83
|
-
resolvers.reduce((acc, current) => acc.concat(current.virtualNames), [] as (keyof T)[])
|
|
84
|
-
)
|
|
81
|
+
export const resolveResult = <H extends HookContext>(...resolvers: Resolver<any, H>[]) => {
|
|
82
|
+
const virtualProperties = new Set(resolvers.reduce((acc, current) => acc.concat(current.virtualNames), []))
|
|
85
83
|
|
|
86
84
|
return async (context: H, next?: NextFunction) => {
|
|
87
85
|
if (typeof next === 'function') {
|
|
@@ -98,7 +96,7 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
|
|
|
98
96
|
resolve,
|
|
99
97
|
query: {
|
|
100
98
|
...query,
|
|
101
|
-
$select
|
|
99
|
+
...($select ? { $select } : {})
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
|
|
@@ -107,7 +105,7 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
|
|
|
107
105
|
|
|
108
106
|
const ctx = getContext(context)
|
|
109
107
|
const status = context.params.resolve
|
|
110
|
-
const { isPaginated, data } =
|
|
108
|
+
const { isPaginated, data } = getResult(context)
|
|
111
109
|
|
|
112
110
|
const result = Array.isArray(data)
|
|
113
111
|
? await Promise.all(data.map(async (current) => runResolvers(resolvers, current, ctx, status)))
|
|
@@ -123,32 +121,57 @@ export const resolveResult = <T, H extends HookContext>(...resolvers: Resolver<T
|
|
|
123
121
|
|
|
124
122
|
export const DISPATCH = Symbol('@feathersjs/schema/dispatch')
|
|
125
123
|
|
|
126
|
-
export const
|
|
127
|
-
typeof value === 'object' && value !== null
|
|
124
|
+
export const getDispatchValue = (value: any): any => {
|
|
125
|
+
if (typeof value === 'object' && value !== null) {
|
|
126
|
+
if (value[DISPATCH] !== undefined) {
|
|
127
|
+
return value[DISPATCH]
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (Array.isArray(value)) {
|
|
131
|
+
return value.map((item) => getDispatchValue(item))
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return value
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export const getDispatch = (value: any): any =>
|
|
139
|
+
typeof value === 'object' && value !== null && value[DISPATCH] ? value[DISPATCH] : null
|
|
140
|
+
|
|
141
|
+
export const setDispatch = (current: any, dispatch: any) => {
|
|
142
|
+
Object.defineProperty(current, DISPATCH, {
|
|
143
|
+
value: dispatch,
|
|
144
|
+
enumerable: false,
|
|
145
|
+
configurable: false
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
return dispatch
|
|
149
|
+
}
|
|
128
150
|
|
|
129
151
|
export const resolveDispatch =
|
|
130
|
-
<
|
|
152
|
+
<H extends HookContext>(...resolvers: Resolver<any, H>[]) =>
|
|
131
153
|
async (context: H, next?: NextFunction) => {
|
|
132
154
|
if (typeof next === 'function') {
|
|
133
155
|
await next()
|
|
134
156
|
}
|
|
135
157
|
|
|
136
158
|
const ctx = getContext(context)
|
|
137
|
-
const existingDispatch = getDispatch(context.result
|
|
159
|
+
const existingDispatch = getDispatch(context.result)
|
|
138
160
|
|
|
139
161
|
if (existingDispatch !== null) {
|
|
140
162
|
context.dispatch = existingDispatch
|
|
141
163
|
} else {
|
|
142
164
|
const status = context.params.resolve
|
|
143
|
-
const { isPaginated, data } =
|
|
165
|
+
const { isPaginated, data } = getResult(context)
|
|
144
166
|
const resolveAndGetDispatch = async (current: any) => {
|
|
145
|
-
const resolved
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
res[key] = getDispatch(resolved[key])
|
|
167
|
+
const resolved = await runResolvers(resolvers, current, ctx, status)
|
|
168
|
+
const currentDispatch = Object.keys(resolved).reduce((res, key) => {
|
|
169
|
+
res[key] = getDispatchValue(resolved[key])
|
|
149
170
|
|
|
150
171
|
return res
|
|
151
|
-
}, {} as any)
|
|
172
|
+
}, {} as Record<string, any>)
|
|
173
|
+
|
|
174
|
+
return setDispatch(current, currentDispatch)
|
|
152
175
|
}
|
|
153
176
|
|
|
154
177
|
const result = await (Array.isArray(data)
|
|
@@ -161,18 +184,13 @@ export const resolveDispatch =
|
|
|
161
184
|
}
|
|
162
185
|
: result
|
|
163
186
|
|
|
164
|
-
context.dispatch = dispatch
|
|
165
|
-
Object.defineProperty(context.result, DISPATCH, {
|
|
166
|
-
value: dispatch,
|
|
167
|
-
enumerable: false,
|
|
168
|
-
configurable: false
|
|
169
|
-
})
|
|
187
|
+
context.dispatch = setDispatch(context.result, dispatch)
|
|
170
188
|
}
|
|
171
189
|
}
|
|
172
190
|
|
|
173
191
|
export const resolveExternal = resolveDispatch
|
|
174
192
|
|
|
175
|
-
|
|
193
|
+
type ResolveAllSettings<H extends HookContext> = {
|
|
176
194
|
data?: {
|
|
177
195
|
create: Resolver<any, H>
|
|
178
196
|
patch: Resolver<any, H>
|
|
@@ -185,6 +203,14 @@ export type ResolveAllSettings<H extends HookContext> = {
|
|
|
185
203
|
|
|
186
204
|
const dataMethods = ['create', 'update', 'patch'] as const
|
|
187
205
|
|
|
206
|
+
/**
|
|
207
|
+
* Resolve all resolvers at once.
|
|
208
|
+
*
|
|
209
|
+
* @param map The individual resolvers
|
|
210
|
+
* @returns A combined resolver middleware
|
|
211
|
+
* @deprecated Use individual data, query and external resolvers and hooks instead.
|
|
212
|
+
* @see https://dove.feathersjs.com/guides/cli/service.schemas.html
|
|
213
|
+
*/
|
|
188
214
|
export const resolveAll = <H extends HookContext>(map: ResolveAllSettings<H>) => {
|
|
189
215
|
const middleware = []
|
|
190
216
|
|
package/src/json-schema.ts
CHANGED
|
@@ -172,6 +172,25 @@ export const querySyntax = <
|
|
|
172
172
|
) => {
|
|
173
173
|
const keys = Object.keys(definition)
|
|
174
174
|
const props = queryProperties(definition, extensions)
|
|
175
|
+
const $or = {
|
|
176
|
+
type: 'array',
|
|
177
|
+
items: {
|
|
178
|
+
type: 'object',
|
|
179
|
+
additionalProperties: false,
|
|
180
|
+
properties: props
|
|
181
|
+
}
|
|
182
|
+
} as const
|
|
183
|
+
const $and = {
|
|
184
|
+
type: 'array',
|
|
185
|
+
items: {
|
|
186
|
+
type: 'object',
|
|
187
|
+
additionalProperties: false,
|
|
188
|
+
properties: {
|
|
189
|
+
...props,
|
|
190
|
+
$or
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
} as const
|
|
175
194
|
|
|
176
195
|
return {
|
|
177
196
|
$limit: {
|
|
@@ -203,14 +222,8 @@ export const querySyntax = <
|
|
|
203
222
|
...(keys.length > 0 ? { enum: keys as any as (keyof T)[] } : {})
|
|
204
223
|
}
|
|
205
224
|
},
|
|
206
|
-
$or
|
|
207
|
-
|
|
208
|
-
items: {
|
|
209
|
-
type: 'object',
|
|
210
|
-
additionalProperties: false,
|
|
211
|
-
properties: props
|
|
212
|
-
}
|
|
213
|
-
},
|
|
225
|
+
$or,
|
|
226
|
+
$and,
|
|
214
227
|
...props
|
|
215
228
|
} as const
|
|
216
229
|
}
|