-
-
Notifications
You must be signed in to change notification settings - Fork 6
Description
There is a clear pattern here:
whook/packages/whook/src/commands/create.ts
Lines 48 to 55 in 2126f07
| API_DEFINITIONS: 'DelayService', | |
| ENV: 'ENVService', | |
| APM: 'APMService', | |
| APP_CONFIG: 'AppConfig', | |
| }; | |
| const allTypes = { | |
| ...commonServicesTypes, | |
| ...whookSimpleTypes, |
We should be able to load all services types from the WHOOK_PLUGINS to help creating handlers smoothly.
It would be easy to get all services names by getting key of Knifecycle initializersStates property but getting the types is a bit more tricky :
- for constants : get the literal value type (but branded types won't be possible)
- for services : read the initializer path and find types the initializer return of use type names endind with
Service
A temporary solution can be to put any/unknown as the type and let the dev import it since it woul be nice step to just be able to list the services in the CLI selector.
Another option could be to require whook plugins (but more generally any Knifecycle module) to export the list of services they embed with their name/type/path mappings to retrieve something like that:
https://github.com/nfroidure/whook/blob/2126f07fea694dc7963e79dd91056e57eaec52bd/packages/whook/src/commands/create.ts#L26C1-L37C3
Finally, retrieving the modules types can be done with this module: https://ts-morph.com/navigation/example