-
-
Notifications
You must be signed in to change notification settings - Fork 793
Open
Description
Problem:
- For all services the type of
dataforcreateisTorT[], even true for services withmulti: false/multi: { create: false }. - For all services the type of
idforpatch&removeisNullableId, even for services withmulti: false/multi: { patch: false, remove: false } - For all services the awaited return type of
findisResult[] | Paginated<Result>, even for services withpaginate: false { $select: ['email'] }does not returnPick<Result, 'email'>but the 'full' typeResultinstead. Even thoughPick<Result, 'email'>wouldn't be the correct type either. It has to bePick<Result, 'email' | Service['options']['id']>
The root of these problems above is, that the type of service.options is not considered in the service methods. The AdapterBase already has a generic Options. We only need to infer the type and fall back to the general types, if it cannot infer.
Other things to consider:
es6 classes are tedious to work with for heavy TS work like inference. We already saw this for feathers-pinia and moved away from model classes. I think we should move away from es6 classes for adapters & services and make a custom useService(...) function. But I guess I need to open another issue/discussion for this.
8BallBomBom, mrobst, BahaMagi, davvidess, nmccrea and 1 more
Metadata
Metadata
Assignees
Labels
No labels