diff --git a/blueprint.json b/blueprint.json index 11cf8f20..c66ac415 100644 --- a/blueprint.json +++ b/blueprint.json @@ -124,6 +124,7 @@ ], "cliCommandsSchematics": [ ["Name", "Alias", "Description"], + ["`init`", "`-i`", "Create or update your medusa project configuration in order to gives you a working api using the medusa-extender."], ["`migrate`", "`m`", "Migrate the migrations that has not been applied yet. Can also show you the migrations already applied and to be applied."], ["`generate`", "`g`", "Generate a new component among: module, service, entity, repository, migration, validator, router, middleware"] ], diff --git a/docs/README.md b/docs/README.md index 6fe7d29a..f69c44e8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -305,6 +305,7 @@ to be able to run the migrations and show the list of applied and to be applied | Name | Alias | Description | |------------|-------|--------------------------------------------------| +| `init` | `-i` | Create or update your medusa project configuration in order to gives you a working api using the medusa-extender. | | `migrate` | `m` | Migrate the migrations that has not been applied yet. Can also show you the migrations already applied and to be applied. | | `generate` | `g` | Generate a new component among: module, service, entity, repository, migration, validator, router, middleware | diff --git a/docs/classes/Medusa.Medusa-1.md b/docs/classes/Medusa.Medusa-1.md index 219ab1cd..278c0f15 100644 --- a/docs/classes/Medusa.Medusa-1.md +++ b/docs/classes/Medusa.Medusa-1.md @@ -36,7 +36,7 @@ Load medusa and apply all components #### Defined in -[src/Medusa.ts:38](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/Medusa.ts#L38) +[src/Medusa.ts:38](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/Medusa.ts#L38) ## Properties @@ -46,7 +46,7 @@ Load medusa and apply all components #### Defined in -[src/Medusa.ts:31](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/Medusa.ts#L31) +[src/Medusa.ts:31](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/Medusa.ts#L31) ___ @@ -56,7 +56,7 @@ ___ #### Defined in -[src/Medusa.ts:32](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/Medusa.ts#L32) +[src/Medusa.ts:32](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/Medusa.ts#L32) ## Methods @@ -76,4 +76,4 @@ ___ #### Defined in -[src/Medusa.ts:46](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/Medusa.ts#L46) +[src/Medusa.ts:46](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/Medusa.ts#L46) diff --git a/docs/classes/core_event_emmiter.Internals.CustomEventEmmiter.md b/docs/classes/core_event_emmiter.Internals.CustomEventEmmiter.md index 41b53ed2..695786fe 100644 --- a/docs/classes/core_event_emmiter.Internals.CustomEventEmmiter.md +++ b/docs/classes/core_event_emmiter.Internals.CustomEventEmmiter.md @@ -41,7 +41,7 @@ EventEmitter.constructor #### Defined in -[src/core/event-emmiter.ts:21](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L21) +[src/core/event-emmiter.ts:21](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L21) ## Properties @@ -51,7 +51,7 @@ EventEmitter.constructor #### Defined in -[src/core/event-emmiter.ts:19](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L19) +[src/core/event-emmiter.ts:19](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L19) ## Methods @@ -80,7 +80,7 @@ Emit an asynchrone event entity based and wait for the result. #### Defined in -[src/core/event-emmiter.ts:80](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L80) +[src/core/event-emmiter.ts:80](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L80) ___ @@ -110,7 +110,7 @@ Register a new event handler. #### Defined in -[src/core/event-emmiter.ts:31](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L31) +[src/core/event-emmiter.ts:31](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L31) ___ @@ -132,7 +132,7 @@ Apply all event handlers hold by the `listenerDescriptor`. #### Defined in -[src/core/event-emmiter.ts:43](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L43) +[src/core/event-emmiter.ts:43](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L43) ___ @@ -146,4 +146,4 @@ ___ #### Defined in -[src/core/event-emmiter.ts:68](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L68) +[src/core/event-emmiter.ts:68](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L68) diff --git a/docs/classes/core_logger.Logger.md b/docs/classes/core_logger.Logger.md index a2f2bfda..e6ee78e8 100644 --- a/docs/classes/core_logger.Logger.md +++ b/docs/classes/core_logger.Logger.md @@ -49,7 +49,7 @@ Internal logger to display information about the build. #### Defined in -[src/core/logger.ts:20](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L20) +[src/core/logger.ts:20](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L20) ## Properties @@ -59,7 +59,7 @@ Internal logger to display information about the build. #### Defined in -[src/core/logger.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L10) +[src/core/logger.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L10) ___ @@ -69,7 +69,7 @@ ___ #### Defined in -[src/core/logger.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L9) +[src/core/logger.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L9) ___ @@ -79,7 +79,7 @@ ___ #### Defined in -[src/core/logger.ts:8](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L8) +[src/core/logger.ts:8](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L8) ## Accessors @@ -93,7 +93,7 @@ ___ #### Defined in -[src/core/logger.ts:16](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L16) +[src/core/logger.ts:16](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L16) ___ @@ -107,7 +107,7 @@ ___ #### Defined in -[src/core/logger.ts:12](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L12) +[src/core/logger.ts:12](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L12) ## Methods @@ -131,7 +131,7 @@ Build logs taking in count the level color #### Defined in -[src/core/logger.ts:89](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L89) +[src/core/logger.ts:89](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L89) ___ @@ -154,7 +154,7 @@ Display error logs in red immediately #### Defined in -[src/core/logger.ts:66](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L66) +[src/core/logger.ts:66](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L66) ___ @@ -170,7 +170,7 @@ display all queues logs and then reset the queue. #### Defined in -[src/core/logger.ts:73](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L73) +[src/core/logger.ts:73](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L73) ___ @@ -193,7 +193,7 @@ Display log immediately. #### Defined in -[src/core/logger.ts:48](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L48) +[src/core/logger.ts:48](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L48) ___ @@ -216,7 +216,7 @@ Push new logs to queue and then show them later on. #### Defined in -[src/core/logger.ts:34](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L34) +[src/core/logger.ts:34](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L34) ___ @@ -239,7 +239,7 @@ Display warning immediately. #### Defined in -[src/core/logger.ts:57](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L57) +[src/core/logger.ts:57](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L57) ___ @@ -260,4 +260,4 @@ ___ #### Defined in -[src/core/logger.ts:25](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/logger.ts#L25) +[src/core/logger.ts:25](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/logger.ts#L25) diff --git a/docs/classes/core_metadata_reader.Internals.CustomMap.md b/docs/classes/core_metadata_reader.Internals.CustomMap.md index bf8d5ff2..af0dc42a 100644 --- a/docs/classes/core_metadata_reader.Internals.CustomMap.md +++ b/docs/classes/core_metadata_reader.Internals.CustomMap.md @@ -84,4 +84,4 @@ Map.get #### Defined in -[src/core/metadata-reader.ts:5](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/metadata-reader.ts#L5) +[src/core/metadata-reader.ts:5](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/metadata-reader.ts#L5) diff --git a/docs/classes/decorators_onMedusaEntityEvent_decorator.OnMedusaEntityEvent.md b/docs/classes/decorators_onMedusaEntityEvent_decorator.OnMedusaEntityEvent.md index 205ce1ee..12534819 100644 --- a/docs/classes/decorators_onMedusaEntityEvent_decorator.OnMedusaEntityEvent.md +++ b/docs/classes/decorators_onMedusaEntityEvent_decorator.OnMedusaEntityEvent.md @@ -45,7 +45,7 @@ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:41](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L41) +[src/decorators/onMedusaEntityEvent.decorator.ts:41](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L41) ## Properties @@ -55,7 +55,7 @@ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:39](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L39) +[src/decorators/onMedusaEntityEvent.decorator.ts:39](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L39) ___ @@ -65,7 +65,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:38](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L38) +[src/decorators/onMedusaEntityEvent.decorator.ts:38](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L38) ## Accessors @@ -79,7 +79,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:49](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L49) +[src/decorators/onMedusaEntityEvent.decorator.ts:49](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L49) ___ @@ -93,7 +93,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:45](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L45) +[src/decorators/onMedusaEntityEvent.decorator.ts:45](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L45) ## Methods @@ -120,7 +120,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:69](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L69) +[src/decorators/onMedusaEntityEvent.decorator.ts:69](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L69) ___ @@ -146,7 +146,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:57](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L57) +[src/decorators/onMedusaEntityEvent.decorator.ts:57](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L57) ___ @@ -173,7 +173,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:83](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L83) +[src/decorators/onMedusaEntityEvent.decorator.ts:83](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L83) ___ @@ -199,7 +199,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:65](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L65) +[src/decorators/onMedusaEntityEvent.decorator.ts:65](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L65) ___ @@ -226,7 +226,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:76](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L76) +[src/decorators/onMedusaEntityEvent.decorator.ts:76](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L76) ___ @@ -252,7 +252,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:61](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L61) +[src/decorators/onMedusaEntityEvent.decorator.ts:61](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L61) ___ @@ -280,7 +280,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:90](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L90) +[src/decorators/onMedusaEntityEvent.decorator.ts:90](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L90) ___ @@ -300,4 +300,4 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:53](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L53) +[src/decorators/onMedusaEntityEvent.decorator.ts:53](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L53) diff --git a/docs/interfaces/core_types.MedusaMiddleware.md b/docs/interfaces/core_types.MedusaMiddleware.md index 19246dff..b3c901fe 100644 --- a/docs/interfaces/core_types.MedusaMiddleware.md +++ b/docs/interfaces/core_types.MedusaMiddleware.md @@ -33,4 +33,4 @@ Describe a custom middleware instance. #### Defined in -[src/core/types.ts:152](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L152) +[src/core/types.ts:152](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L152) diff --git a/docs/interfaces/core_types.Type.md b/docs/interfaces/core_types.Type.md index addfd6cf..c89e22e3 100644 --- a/docs/interfaces/core_types.Type.md +++ b/docs/interfaces/core_types.Type.md @@ -40,4 +40,4 @@ Function.constructor #### Defined in -[src/core/types.ts:6](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L6) +[src/core/types.ts:6](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L6) diff --git a/docs/interfaces/modules_monitoring.MonitoringOptions.md b/docs/interfaces/modules_monitoring.MonitoringOptions.md index fd2ec57a..9ff07242 100644 --- a/docs/interfaces/modules_monitoring.MonitoringOptions.md +++ b/docs/interfaces/modules_monitoring.MonitoringOptions.md @@ -35,7 +35,7 @@ #### Defined in -[src/modules/monitoring.ts:15](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L15) +[src/modules/monitoring.ts:15](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L15) ___ @@ -45,7 +45,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:17](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L17) +[src/modules/monitoring.ts:17](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L17) ___ @@ -55,7 +55,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:12](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L12) +[src/modules/monitoring.ts:12](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L12) ___ @@ -65,7 +65,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:19](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L19) +[src/modules/monitoring.ts:19](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L19) ___ @@ -75,7 +75,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L7) +[src/modules/monitoring.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L7) ___ @@ -85,7 +85,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:8](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L8) +[src/modules/monitoring.ts:8](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L8) ___ @@ -95,7 +95,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L13) +[src/modules/monitoring.ts:13](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L13) ___ @@ -105,7 +105,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:14](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L14) +[src/modules/monitoring.ts:14](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L14) ___ @@ -115,7 +115,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:18](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L18) +[src/modules/monitoring.ts:18](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L18) ___ @@ -125,7 +125,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L10) +[src/modules/monitoring.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L10) ___ @@ -135,7 +135,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L9) +[src/modules/monitoring.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L9) ___ @@ -145,7 +145,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:11](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L11) +[src/modules/monitoring.ts:11](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L11) ___ @@ -155,7 +155,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:6](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L6) +[src/modules/monitoring.ts:6](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L6) ## Methods @@ -177,7 +177,7 @@ ___ #### Defined in -[src/modules/monitoring.ts:20](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L20) +[src/modules/monitoring.ts:20](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L20) ___ @@ -199,4 +199,4 @@ ___ #### Defined in -[src/modules/monitoring.ts:16](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L16) +[src/modules/monitoring.ts:16](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L16) diff --git a/docs/modules.md b/docs/modules.md index 040f1d43..cf01a2bf 100644 --- a/docs/modules.md +++ b/docs/modules.md @@ -8,6 +8,7 @@ - [Medusa](modules/Medusa.md) - [cli/commands/generate-component](modules/cli_commands_generate_component.md) +- [cli/commands/init](modules/cli_commands_init.md) - [cli/commands/migrate](modules/cli_commands_migrate.md) - [cli/templates](modules/cli_templates.md) - [cli/templates/entity-template](modules/cli_templates_entity_template.md) diff --git a/docs/modules/cli_commands_generate_component.Internals.md b/docs/modules/cli_commands_generate_component.Internals.md index 089822a0..bc56e77f 100644 --- a/docs/modules/cli_commands_generate_component.Internals.md +++ b/docs/modules/cli_commands_generate_component.Internals.md @@ -32,4 +32,4 @@ #### Defined in -[src/cli/commands/generate-component.ts:18](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/commands/generate-component.ts#L18) +[src/cli/commands/generate-component.ts:18](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/generate-component.ts#L18) diff --git a/docs/modules/cli_commands_generate_component.md b/docs/modules/cli_commands_generate_component.md index 75dd851f..90355a2d 100644 --- a/docs/modules/cli_commands_generate_component.md +++ b/docs/modules/cli_commands_generate_component.md @@ -38,7 +38,7 @@ Create the component file and fill it with the template content. #### Defined in -[src/cli/commands/generate-component.ts:106](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/commands/generate-component.ts#L106) +[src/cli/commands/generate-component.ts:106](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/generate-component.ts#L106) ___ @@ -61,7 +61,7 @@ Generate the required components from the user command. #### Defined in -[src/cli/commands/generate-component.ts:45](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/commands/generate-component.ts#L45) +[src/cli/commands/generate-component.ts:45](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/generate-component.ts#L45) ___ @@ -83,4 +83,4 @@ Lookup for the closest module from the component and update its imports. #### Defined in -[src/cli/commands/generate-component.ts:133](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/commands/generate-component.ts#L133) +[src/cli/commands/generate-component.ts:133](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/generate-component.ts#L133) diff --git a/docs/modules/cli_commands_init.md b/docs/modules/cli_commands_init.md new file mode 100644 index 00000000..ed396d4d --- /dev/null +++ b/docs/modules/cli_commands_init.md @@ -0,0 +1,25 @@ +[medusa-extender](../README.md) / [Exports](../modules.md) / cli/commands/init + +# Module: cli/commands/init + +## Table of contents + +### Functions + +- [init](cli_commands_init.md#init) + +## Functions + +### init + +▸ **init**(): `Promise`<`void`\> + +Update or create everything related to medusa-extender in an existing medusa project. + +#### Returns + +`Promise`<`void`\> + +#### Defined in + +[src/cli/commands/init.ts:12](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/init.ts#L12) diff --git a/docs/modules/cli_commands_migrate.md b/docs/modules/cli_commands_migrate.md index e483d4f0..31f068f6 100644 --- a/docs/modules/cli_commands_migrate.md +++ b/docs/modules/cli_commands_migrate.md @@ -28,4 +28,4 @@ Run the migrations using the medusa-config.js config. #### Defined in -[src/cli/commands/migrate.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/commands/migrate.ts#L9) +[src/cli/commands/migrate.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/commands/migrate.ts#L9) diff --git a/docs/modules/cli_templates_entity_template.md b/docs/modules/cli_templates_entity_template.md index d820f1c2..1278996a 100644 --- a/docs/modules/cli_templates_entity_template.md +++ b/docs/modules/cli_templates_entity_template.md @@ -28,4 +28,4 @@ Provide a basic template for the entity component generation. #### Defined in -[src/cli/templates/entity-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/entity-template.ts#L7) +[src/cli/templates/entity-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/entity-template.ts#L7) diff --git a/docs/modules/cli_templates_middleware_template.md b/docs/modules/cli_templates_middleware_template.md index 78fb34a6..94b95f65 100644 --- a/docs/modules/cli_templates_middleware_template.md +++ b/docs/modules/cli_templates_middleware_template.md @@ -28,4 +28,4 @@ Provide a basic template for the middleware component generation. #### Defined in -[src/cli/templates/middleware-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/middleware-template.ts#L7) +[src/cli/templates/middleware-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/middleware-template.ts#L7) diff --git a/docs/modules/cli_templates_migration_template.md b/docs/modules/cli_templates_migration_template.md index bc51381e..d4b58766 100644 --- a/docs/modules/cli_templates_migration_template.md +++ b/docs/modules/cli_templates_migration_template.md @@ -28,4 +28,4 @@ Provide a basic template for the migration component generation. #### Defined in -[src/cli/templates/migration-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/migration-template.ts#L7) +[src/cli/templates/migration-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/migration-template.ts#L7) diff --git a/docs/modules/cli_templates_module_template.md b/docs/modules/cli_templates_module_template.md index 8685fb87..7af92fe5 100644 --- a/docs/modules/cli_templates_module_template.md +++ b/docs/modules/cli_templates_module_template.md @@ -28,4 +28,4 @@ Provide a basic template for the module component generation. #### Defined in -[src/cli/templates/module-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/module-template.ts#L7) +[src/cli/templates/module-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/module-template.ts#L7) diff --git a/docs/modules/cli_templates_repository_template.md b/docs/modules/cli_templates_repository_template.md index 96e17b36..504a7b5f 100644 --- a/docs/modules/cli_templates_repository_template.md +++ b/docs/modules/cli_templates_repository_template.md @@ -28,4 +28,4 @@ Provide a basic template for the repository component generation. #### Defined in -[src/cli/templates/repository-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/repository-template.ts#L7) +[src/cli/templates/repository-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/repository-template.ts#L7) diff --git a/docs/modules/cli_templates_router_template.md b/docs/modules/cli_templates_router_template.md index 18c2e2a7..b75ba658 100644 --- a/docs/modules/cli_templates_router_template.md +++ b/docs/modules/cli_templates_router_template.md @@ -28,4 +28,4 @@ Provide a basic template for the router component generation. #### Defined in -[src/cli/templates/router-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/router-template.ts#L7) +[src/cli/templates/router-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/router-template.ts#L7) diff --git a/docs/modules/cli_templates_service_template.md b/docs/modules/cli_templates_service_template.md index 15721914..f518c3da 100644 --- a/docs/modules/cli_templates_service_template.md +++ b/docs/modules/cli_templates_service_template.md @@ -28,4 +28,4 @@ Provide a basic template for the service component generation. #### Defined in -[src/cli/templates/service-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/service-template.ts#L7) +[src/cli/templates/service-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/service-template.ts#L7) diff --git a/docs/modules/cli_templates_validator_template.md b/docs/modules/cli_templates_validator_template.md index 4e23eaf0..b413f75e 100644 --- a/docs/modules/cli_templates_validator_template.md +++ b/docs/modules/cli_templates_validator_template.md @@ -28,4 +28,4 @@ Provide a basic template for the validator component generation. #### Defined in -[src/cli/templates/validator-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/templates/validator-template.ts#L7) +[src/cli/templates/validator-template.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/templates/validator-template.ts#L7) diff --git a/docs/modules/cli_utils_create_directory.md b/docs/modules/cli_utils_create_directory.md index 15bd8491..24fb4f60 100644 --- a/docs/modules/cli_utils_create_directory.md +++ b/docs/modules/cli_utils_create_directory.md @@ -30,4 +30,4 @@ Create the new directory, if necessary, that will receive the components. #### Defined in -[src/cli/utils/create-directory.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/utils/create-directory.ts#L10) +[src/cli/utils/create-directory.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/utils/create-directory.ts#L10) diff --git a/docs/modules/cli_utils_lookup_closest_module.md b/docs/modules/cli_utils_lookup_closest_module.md index 06bd124e..18f23a45 100644 --- a/docs/modules/cli_utils_lookup_closest_module.md +++ b/docs/modules/cli_utils_lookup_closest_module.md @@ -29,4 +29,4 @@ Lookup for the closest module component from the destination path. #### Defined in -[src/cli/utils/lookup-closest-module.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/utils/lookup-closest-module.ts#L9) +[src/cli/utils/lookup-closest-module.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/utils/lookup-closest-module.ts#L9) diff --git a/docs/modules/cli_utils_parse_component_value.md b/docs/modules/cli_utils_parse_component_value.md index 5bfa2977..ea8fb640 100644 --- a/docs/modules/cli_utils_parse_component_value.md +++ b/docs/modules/cli_utils_parse_component_value.md @@ -37,4 +37,4 @@ Parse the component information to create a kind of descriptor. #### Defined in -[src/cli/utils/parse-component-value.ts:7](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/cli/utils/parse-component-value.ts#L7) +[src/cli/utils/parse-component-value.ts:7](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/cli/utils/parse-component-value.ts#L7) diff --git a/docs/modules/core_constants.md b/docs/modules/core_constants.md index 9bc9a7fe..937feff4 100644 --- a/docs/modules/core_constants.md +++ b/docs/modules/core_constants.md @@ -20,7 +20,7 @@ Metadata key to store config from decorated injectables. #### Defined in -[src/core/constants.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/constants.ts#L9) +[src/core/constants.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/constants.ts#L9) ___ @@ -66,7 +66,7 @@ Hold the name of the medusa services registered into the container for later on #### Defined in -[src/core/constants.ts:14](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/constants.ts#L14) +[src/core/constants.ts:14](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/constants.ts#L14) ___ @@ -78,4 +78,4 @@ Metadata key to store config from decorated injectables. #### Defined in -[src/core/constants.ts:4](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/constants.ts#L4) +[src/core/constants.ts:4](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/constants.ts#L4) diff --git a/docs/modules/core_event_emmiter.Internals.md b/docs/modules/core_event_emmiter.Internals.md index c16f228d..dc43a785 100644 --- a/docs/modules/core_event_emmiter.Internals.md +++ b/docs/modules/core_event_emmiter.Internals.md @@ -38,4 +38,4 @@ A listener descriptor. #### Defined in -[src/core/event-emmiter.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L9) +[src/core/event-emmiter.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L9) diff --git a/docs/modules/core_event_emmiter.md b/docs/modules/core_event_emmiter.md index 34695d8a..e1fb5b4d 100644 --- a/docs/modules/core_event_emmiter.md +++ b/docs/modules/core_event_emmiter.md @@ -23,4 +23,4 @@ Export the instance of the event emmiter. #### Defined in -[src/core/event-emmiter.ts:102](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/event-emmiter.ts#L102) +[src/core/event-emmiter.ts:102](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/event-emmiter.ts#L102) diff --git a/docs/modules/core_metadata_reader.md b/docs/modules/core_metadata_reader.md index 8e01f656..4aeda300 100644 --- a/docs/modules/core_metadata_reader.md +++ b/docs/modules/core_metadata_reader.md @@ -41,7 +41,7 @@ Return the options from components. #### Defined in -[src/core/metadata-reader.ts:49](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/metadata-reader.ts#L49) +[src/core/metadata-reader.ts:49](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/metadata-reader.ts#L49) ___ @@ -65,4 +65,4 @@ Read all metadata from the imported modules and extract components that will be #### Defined in -[src/core/metadata-reader.ts:16](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/metadata-reader.ts#L16) +[src/core/metadata-reader.ts:16](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/metadata-reader.ts#L16) diff --git a/docs/modules/core_package_loader.md b/docs/modules/core_package_loader.md index 72eb37a8..26a79979 100644 --- a/docs/modules/core_package_loader.md +++ b/docs/modules/core_package_loader.md @@ -24,7 +24,7 @@ Return the install command from the user package manager. #### Defined in -[src/core/package-loader.ts:41](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/package-loader.ts#L41) +[src/core/package-loader.ts:52](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/package-loader.ts#L52) ___ @@ -40,7 +40,7 @@ Load packages at run time. | Name | Type | Description | | :------ | :------ | :------ | | `logger` | [`Logger`](../classes/core_logger.Logger.md) | | -| `packages` | { `name`: `string` ; `version`: `string` }[] | The packages descriptors that must be installed | +| `packages` | { `isDevDependency?`: `boolean` ; `name`: `string` ; `version`: `string` }[] | The packages descriptors that must be installed | #### Returns @@ -48,4 +48,4 @@ Load packages at run time. #### Defined in -[src/core/package-loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/package-loader.ts#L13) +[src/core/package-loader.ts:12](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/package-loader.ts#L12) diff --git a/docs/modules/core_types.md b/docs/modules/core_types.md index 086b4d1a..1352601f 100644 --- a/docs/modules/core_types.md +++ b/docs/modules/core_types.md @@ -53,7 +53,7 @@ #### Defined in -[src/core/types.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L9) +[src/core/types.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L9) ___ @@ -78,7 +78,7 @@ Defines the injection options for entities. #### Defined in -[src/core/types.ts:26](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L26) +[src/core/types.ts:26](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L26) ___ @@ -96,7 +96,7 @@ Determine which options type it actually is depending on the component type. #### Defined in -[src/core/types.ts:94](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L94) +[src/core/types.ts:94](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L94) ___ @@ -114,7 +114,7 @@ Determine which options type it actually is depending on the component type. #### Defined in -[src/core/types.ts:117](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L117) +[src/core/types.ts:117](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L117) ___ @@ -126,7 +126,7 @@ Components that does not required any other options that Type. #### Defined in -[src/core/types.ts:14](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L14) +[src/core/types.ts:14](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L14) ___ @@ -144,7 +144,7 @@ Union of all options type possible for injectable. #### Defined in -[src/core/types.ts:83](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L83) +[src/core/types.ts:83](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L83) ___ @@ -156,7 +156,7 @@ Describe the expected request from a middleware [MedusaMiddleware](../interfaces #### Defined in -[src/core/types.ts:130](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L130) +[src/core/types.ts:130](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L130) ___ @@ -175,7 +175,7 @@ Medusa request extended. #### Defined in -[src/core/types.ts:123](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L123) +[src/core/types.ts:123](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L123) ___ @@ -185,7 +185,7 @@ ___ #### Defined in -[src/core/types.ts:137](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L137) +[src/core/types.ts:137](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L137) ___ @@ -204,7 +204,7 @@ Describe all the available options for the Route [MedusaMiddleware](../interface #### Defined in -[src/core/types.ts:142](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L142) +[src/core/types.ts:142](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L142) ___ @@ -223,7 +223,7 @@ Defines the injection options for middlewares. #### Defined in -[src/core/types.ts:68](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L68) +[src/core/types.ts:68](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L68) ___ @@ -242,7 +242,7 @@ Mix the return type of two objects. #### Defined in -[src/core/types.ts:158](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L158) +[src/core/types.ts:158](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L158) ___ @@ -267,7 +267,7 @@ Defines the injection options for services, entities, repositories. #### Defined in -[src/core/types.ts:43](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L43) +[src/core/types.ts:43](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L43) ___ @@ -285,7 +285,7 @@ Defines the injection options for routes. #### Defined in -[src/core/types.ts:61](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L61) +[src/core/types.ts:61](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L61) ___ @@ -306,7 +306,7 @@ Define a router and its configuration. #### Defined in -[src/core/types.ts:51](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L51) +[src/core/types.ts:51](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L51) ___ @@ -332,7 +332,7 @@ Defines the injection options for service. #### Defined in -[src/core/types.ts:34](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L34) +[src/core/types.ts:34](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L34) ___ @@ -356,4 +356,4 @@ Defines the injection options for routes. #### Defined in -[src/core/types.ts:76](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/types.ts#L76) +[src/core/types.ts:76](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/types.ts#L76) diff --git a/docs/modules/core_utils.md b/docs/modules/core_utils.md index 0bcfcc25..d66ac8ec 100644 --- a/docs/modules/core_utils.md +++ b/docs/modules/core_utils.md @@ -37,7 +37,7 @@ Attach a new subscriber to a specific entities. #### Defined in -[src/core/utils.ts:30](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/utils.ts#L30) +[src/core/utils.ts:30](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/utils.ts#L30) ___ @@ -67,4 +67,4 @@ Since it is not possible to use multiple extend, you can use that utilities to a #### Defined in -[src/core/utils.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/core/utils.ts#L10) +[src/core/utils.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/core/utils.ts#L10) diff --git a/docs/modules/decorators_components_decorator.md b/docs/modules/decorators_components_decorator.md index ce295841..c22548ba 100644 --- a/docs/modules/decorators_components_decorator.md +++ b/docs/modules/decorators_components_decorator.md @@ -40,7 +40,7 @@ Mark a class as an entity to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:16](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L16) +[src/decorators/components.decorator.ts:16](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L16) ___ @@ -62,7 +62,7 @@ Mark a class as a middleware to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:43](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L43) +[src/decorators/components.decorator.ts:43](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L43) ___ @@ -78,7 +78,7 @@ Mark a class as a migration to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:51](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L51) +[src/decorators/components.decorator.ts:51](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L51) ___ @@ -106,7 +106,7 @@ Mark a class as a repository to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:34](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L34) +[src/decorators/components.decorator.ts:34](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L34) ___ @@ -128,7 +128,7 @@ Mark a class as a router to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:60](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L60) +[src/decorators/components.decorator.ts:60](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L60) ___ @@ -156,7 +156,7 @@ Mark a class as a service to be used by the loader. #### Defined in -[src/decorators/components.decorator.ts:25](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L25) +[src/decorators/components.decorator.ts:25](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L25) ___ @@ -178,4 +178,4 @@ Mark a class as a validator to be used by the validator utility. #### Defined in -[src/decorators/components.decorator.ts:69](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/components.decorator.ts#L69) +[src/decorators/components.decorator.ts:69](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/components.decorator.ts#L69) diff --git a/docs/modules/decorators_helpers_build_component_decorator.md b/docs/modules/decorators_helpers_build_component_decorator.md index b5ee9414..3b9a9b27 100644 --- a/docs/modules/decorators_helpers_build_component_decorator.md +++ b/docs/modules/decorators_helpers_build_component_decorator.md @@ -32,4 +32,4 @@ #### Defined in -[src/decorators/helpers/build-component-decorator.ts:4](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/helpers/build-component-decorator.ts#L4) +[src/decorators/helpers/build-component-decorator.ts:4](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/helpers/build-component-decorator.ts#L4) diff --git a/docs/modules/decorators_module_decorator.md b/docs/modules/decorators_module_decorator.md index 89adc8b0..4322334e 100644 --- a/docs/modules/decorators_module_decorator.md +++ b/docs/modules/decorators_module_decorator.md @@ -29,4 +29,4 @@ Mark a class as aa module and store all injectable on it. #### Defined in -[src/decorators/module.decorator.ts:9](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/module.decorator.ts#L9) +[src/decorators/module.decorator.ts:9](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/module.decorator.ts#L9) diff --git a/docs/modules/decorators_onMedusaEntityEvent_decorator.md b/docs/modules/decorators_onMedusaEntityEvent_decorator.md index 87792d1d..0e683c15 100644 --- a/docs/modules/decorators_onMedusaEntityEvent_decorator.md +++ b/docs/modules/decorators_onMedusaEntityEvent_decorator.md @@ -24,7 +24,7 @@ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L10) +[src/decorators/onMedusaEntityEvent.decorator.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L10) ___ @@ -41,7 +41,7 @@ ___ #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:5](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L5) +[src/decorators/onMedusaEntityEvent.decorator.ts:5](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L5) ___ @@ -60,7 +60,7 @@ Event types that can be emitted. #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:15](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L15) +[src/decorators/onMedusaEntityEvent.decorator.ts:15](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L15) ___ @@ -86,7 +86,7 @@ The arguments expected by the [OnMedusaEntityEvent](../classes/decorators_onMedu #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:24](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L24) +[src/decorators/onMedusaEntityEvent.decorator.ts:24](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L24) ___ @@ -112,4 +112,4 @@ The arguments expected by the event handler. #### Defined in -[src/decorators/onMedusaEntityEvent.decorator.ts:32](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/decorators/onMedusaEntityEvent.decorator.ts#L32) +[src/decorators/onMedusaEntityEvent.decorator.ts:32](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/decorators/onMedusaEntityEvent.decorator.ts#L32) diff --git a/docs/modules/loaders_admin_api_loader.md b/docs/modules/loaders_admin_api_loader.md index 52033724..71024ff1 100644 --- a/docs/modules/loaders_admin_api_loader.md +++ b/docs/modules/loaders_admin_api_loader.md @@ -31,4 +31,4 @@ Apply middlewares and routes on the underlying @medusajs admin API. #### Defined in -[src/loaders/admin-api.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/admin-api.loader.ts#L13) +[src/loaders/admin-api.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/admin-api.loader.ts#L13) diff --git a/docs/modules/loaders_database_loader.md b/docs/modules/loaders_database_loader.md index 8ad30e0a..a1798b32 100644 --- a/docs/modules/loaders_database_loader.md +++ b/docs/modules/loaders_database_loader.md @@ -27,4 +27,4 @@ #### Defined in -[src/loaders/database.loader.ts:5](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/database.loader.ts#L5) +[src/loaders/database.loader.ts:5](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/database.loader.ts#L5) diff --git a/docs/modules/loaders_entities_loader.md b/docs/modules/loaders_entities_loader.md index c682ed44..b5956482 100644 --- a/docs/modules/loaders_entities_loader.md +++ b/docs/modules/loaders_entities_loader.md @@ -33,7 +33,7 @@ Load all custom entities into the underlying @medusajs instance. #### Defined in -[src/loaders/entities.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/entities.loader.ts#L13) +[src/loaders/entities.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/entities.loader.ts#L13) ___ @@ -56,7 +56,7 @@ Load all custom entities that override @medusajs instance entities. #### Defined in -[src/loaders/entities.loader.ts:36](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/entities.loader.ts#L36) +[src/loaders/entities.loader.ts:36](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/entities.loader.ts#L36) ___ @@ -76,7 +76,7 @@ ___ #### Defined in -[src/loaders/entities.loader.ts:63](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/entities.loader.ts#L63) +[src/loaders/entities.loader.ts:63](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/entities.loader.ts#L63) ___ @@ -97,4 +97,4 @@ ___ #### Defined in -[src/loaders/entities.loader.ts:51](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/entities.loader.ts#L51) +[src/loaders/entities.loader.ts:51](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/entities.loader.ts#L51) diff --git a/docs/modules/loaders_helpers_apply_middlewares.md b/docs/modules/loaders_helpers_apply_middlewares.md index c29ad8b0..d1f15c02 100644 --- a/docs/modules/loaders_helpers_apply_middlewares.md +++ b/docs/modules/loaders_helpers_apply_middlewares.md @@ -31,7 +31,7 @@ Apply all middlewares on the app that must be applied after the @medusajs authen #### Defined in -[src/loaders/helpers/apply-middlewares.ts:40](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/helpers/apply-middlewares.ts#L40) +[src/loaders/helpers/apply-middlewares.ts:40](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/helpers/apply-middlewares.ts#L40) ___ @@ -55,4 +55,4 @@ Apply all middlewares on the app that must be applied before the @medusajs authe #### Defined in -[src/loaders/helpers/apply-middlewares.ts:18](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/helpers/apply-middlewares.ts#L18) +[src/loaders/helpers/apply-middlewares.ts:18](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/helpers/apply-middlewares.ts#L18) diff --git a/docs/modules/loaders_helpers_apply_routers.md b/docs/modules/loaders_helpers_apply_routers.md index 13665aa0..55fbb760 100644 --- a/docs/modules/loaders_helpers_apply_routers.md +++ b/docs/modules/loaders_helpers_apply_routers.md @@ -31,7 +31,7 @@ Apply all routes on the app that must be applied after the @medusajs authenticat #### Defined in -[src/loaders/helpers/apply-routers.ts:26](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/helpers/apply-routers.ts#L26) +[src/loaders/helpers/apply-routers.ts:26](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/helpers/apply-routers.ts#L26) ___ @@ -55,4 +55,4 @@ Apply all routes on the app that must be applied before the @medusajs authentica #### Defined in -[src/loaders/helpers/apply-routers.ts:10](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/helpers/apply-routers.ts#L10) +[src/loaders/helpers/apply-routers.ts:10](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/helpers/apply-routers.ts#L10) diff --git a/docs/modules/loaders_migrations_loader.md b/docs/modules/loaders_migrations_loader.md index 88a808c6..cd51305d 100644 --- a/docs/modules/loaders_migrations_loader.md +++ b/docs/modules/loaders_migrations_loader.md @@ -30,4 +30,4 @@ Run custom migrations that are find from the provided directory and stored in a #### Defined in -[src/loaders/migrations.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/migrations.loader.ts#L13) +[src/loaders/migrations.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/migrations.loader.ts#L13) diff --git a/docs/modules/loaders_plugins_loader.md b/docs/modules/loaders_plugins_loader.md index 314a456b..d2ea0329 100644 --- a/docs/modules/loaders_plugins_loader.md +++ b/docs/modules/loaders_plugins_loader.md @@ -29,4 +29,4 @@ Register all listeners before the plugins are loaded to be sure that the scope m #### Defined in -[src/loaders/plugins.loader.ts:11](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/plugins.loader.ts#L11) +[src/loaders/plugins.loader.ts:11](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/plugins.loader.ts#L11) diff --git a/docs/modules/loaders_repository_loader.md b/docs/modules/loaders_repository_loader.md index eaebbb09..2480a68c 100644 --- a/docs/modules/loaders_repository_loader.md +++ b/docs/modules/loaders_repository_loader.md @@ -30,7 +30,7 @@ Load all custom repositories that override @medusajs instance entities. #### Defined in -[src/loaders/repository.loader.ts:37](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/repository.loader.ts#L37) +[src/loaders/repository.loader.ts:37](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/repository.loader.ts#L37) ___ @@ -54,4 +54,4 @@ Load all custom repositories into the underlying @medusajs instance. #### Defined in -[src/loaders/repository.loader.ts:14](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/repository.loader.ts#L14) +[src/loaders/repository.loader.ts:14](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/repository.loader.ts#L14) diff --git a/docs/modules/loaders_services_loader.md b/docs/modules/loaders_services_loader.md index 23cc4501..c80edcfc 100644 --- a/docs/modules/loaders_services_loader.md +++ b/docs/modules/loaders_services_loader.md @@ -30,7 +30,7 @@ #### Defined in -[src/loaders/services.loader.ts:55](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/services.loader.ts#L55) +[src/loaders/services.loader.ts:55](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/services.loader.ts#L55) ___ @@ -52,7 +52,7 @@ ___ #### Defined in -[src/loaders/services.loader.ts:40](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/services.loader.ts#L40) +[src/loaders/services.loader.ts:40](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/services.loader.ts#L40) ___ @@ -75,4 +75,4 @@ Load all custom services and overridden services into the underlying @medusajs i #### Defined in -[src/loaders/services.loader.ts:12](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/services.loader.ts#L12) +[src/loaders/services.loader.ts:12](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/services.loader.ts#L12) diff --git a/docs/modules/loaders_store_api_loader.md b/docs/modules/loaders_store_api_loader.md index 5b627bd4..7b7adc56 100644 --- a/docs/modules/loaders_store_api_loader.md +++ b/docs/modules/loaders_store_api_loader.md @@ -31,4 +31,4 @@ Apply middlewares and routes on store API. #### Defined in -[src/loaders/store-api.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/store-api.loader.ts#L13) +[src/loaders/store-api.loader.ts:13](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/store-api.loader.ts#L13) diff --git a/docs/modules/loaders_validators_loader.md b/docs/modules/loaders_validators_loader.md index 5cdb4813..6203d5cb 100644 --- a/docs/modules/loaders_validators_loader.md +++ b/docs/modules/loaders_validators_loader.md @@ -29,4 +29,4 @@ Load all custom extended validators into the underlying @medusajs instance. #### Defined in -[src/loaders/validators.loader.ts:11](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/loaders/validators.loader.ts#L11) +[src/loaders/validators.loader.ts:11](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/loaders/validators.loader.ts#L11) diff --git a/docs/modules/modules_monitoring.md b/docs/modules/modules_monitoring.md index 3327e78f..7ef47ceb 100644 --- a/docs/modules/modules_monitoring.md +++ b/docs/modules/modules_monitoring.md @@ -31,4 +31,4 @@ #### Defined in -[src/modules/monitoring.ts:25](https://github.com/adrien2p/medusa-extender/blob/30feff3/src/modules/monitoring.ts#L25) +[src/modules/monitoring.ts:25](https://github.com/adrien2p/medusa-extender/blob/6e8e0f9/src/modules/monitoring.ts#L25) diff --git a/documentation/_README_BUILT.md b/documentation/_README_BUILT.md index 6fe7d29a..f69c44e8 100644 --- a/documentation/_README_BUILT.md +++ b/documentation/_README_BUILT.md @@ -305,6 +305,7 @@ to be able to run the migrations and show the list of applied and to be applied | Name | Alias | Description | |------------|-------|--------------------------------------------------| +| `init` | `-i` | Create or update your medusa project configuration in order to gives you a working api using the medusa-extender. | | `migrate` | `m` | Migrate the migrations that has not been applied yet. Can also show you the migrations already applied and to be applied. | | `generate` | `g` | Generate a new component among: module, service, entity, repository, migration, validator, router, middleware | diff --git a/src/cli/commands/init.ts b/src/cli/commands/init.ts new file mode 100644 index 00000000..d9418dd7 --- /dev/null +++ b/src/cli/commands/init.ts @@ -0,0 +1,162 @@ +import * as dedent from 'dedent'; +import { resolve } from 'path'; +import { loadPackages, Logger } from '../../core'; +import { existsSync, writeFileSync } from 'fs'; +import { generateComponent } from './generate-component'; + +const logger = Logger.contextualize('Init command', 'MEDEX-CLI'); + +/** + * Update or create everything related to medusa-extender in an existing medusa project. + */ +export async function init(): Promise { + logger.log('Initialising medusa-extender...'); + + logger.log('[Packages] Check that the packages are installed'); + await loadPackages(logger, [{ name: 'typescript', version: '4.5.5', isDevDependency: true }]); + + await updatePackageJson(); + await updateTsconfigJson(); + + logger.log('[Modules] Creating example module'); + generateComponent('example', { module: true, service: true, router: true, path: 'src/modules/example' }); + + generateEntryPoint(); + updateDevelopScript(); + + logger.log('Initialisation terminated successfully. You can now run the script - npm run start'); +} + +/** + * @internal + * Update the package.json with the required scripts to work. + */ +async function updatePackageJson(): Promise { + logger.log('[Scripts] Update package.json scripts'); + const packageJsonPath = resolve(process.cwd(), 'package.json'); + const packageJson = await import(packageJsonPath); + packageJson.scripts = { + ...(packageJson.scripts ?? {}), + build: 'rm -rf dist && ./node_modules/.bin/tsc -p tsconfig.json', + start: 'npm run build && NODE_ENV=development node ./dist/main.js', + 'start:prod': 'npm run build && NODE_ENV=production node dist/main', + }; + writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 4)); +} + +/** + * @internal + * Update or create the tsconfig.json file with the required configuration. + */ +async function updateTsconfigJson(): Promise { + logger.log('[TsConfig] Create or update tsconfig.json'); + const tsconfigPath = resolve(process.cwd(), 'tsconfig.json'); + const isTsConfigExists = existsSync(tsconfigPath); + if (!isTsConfigExists) { + logger.log('[tsconfig.json] Creating tsconfig.json'); + writeFileSync( + tsconfigPath, + dedent` + { + "compilerOptions": { + "module": "CommonJS", + "declaration": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "moduleResolution": "node", + "target": "es2017", + "sourceMap": true, + "skipLibCheck": true, + "allowJs": true, + "outDir": "dist", + "rootDir": "src", + "esModuleInterop": true + }, + "include": [ + "src" + ], + "exclude": [ + "dist", + "node_modules", + "**/*.spec.ts" + ] + } + ` + ); + } else { + logger.log('[tsconfig.json] Update tsconfig.json'); + const tsconfig = await import(tsconfigPath); + tsconfig.compilerOptions = { + ...(tsconfig.compilerOptions ?? {}), + module: 'CommonJS', + declaration: true, + emitDecoratorMetadata: true, + experimentalDecorators: true, + allowSyntheticDefaultImports: true, + moduleResolution: 'node', + target: 'es2017', + sourceMap: true, + skipLibCheck: true, + allowJs: true, + outDir: 'dist', + rootDir: 'src', + esModuleInterop: true, + }; + tsconfig.include = [...(tsconfig.include ?? []), 'src']; + tsconfig.exclude = [...(tsconfig.exclude ?? []), 'dist', 'node_modules', '**/*.spec.ts']; + writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 4)); + } +} + +/** + * @internal + * Generate the main.ts entry point. + */ +function generateEntryPoint(): void { + logger.log('[Entry point] Creating entry point main.ts file'); + writeFileSync( + resolve(process.cwd(), 'src', 'main.ts'), + dedent` + import express = require('express'); + const config = require('../medusa-config'); + import { Medusa } from 'medusa-extender'; + import { resolve } from 'path'; + import { ExampleModule } from './modules/example/example.module'; + + async function bootstrap() { + const expressInstance = express(); + + await new Medusa(resolve(__dirname, '..'), expressInstance).load([ExampleModule]); + + expressInstance.listen(config.serverConfig.port, () => { + console.info('Server successfully started on port ' + config.serverConfig.port); + }); + } + + bootstrap(); + ` + ); +} + +/** + * @internal + * Update the existing develop shell script provided by medusa to fit the new requirements. + */ +function updateDevelopScript(): void { + logger.log('[Develop script] Update medusa develop.sh script'); + const developShPath = resolve(process.cwd(), 'develop.sh'); + writeFileSync( + developShPath, + dedent` + #!/bin/bash + + #Run migrations to ensure the database is updated + medusa migrations run + + #Start development environment + npm run start + `, + { mode: 777 } + ); +} diff --git a/src/cli/index.ts b/src/cli/index.ts index f3d24fea..b147d91e 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -4,6 +4,7 @@ import { Command } from 'commander'; import { generateComponent } from './commands/generate-component'; import { green } from 'chalk'; import { migrate } from './commands/migrate'; +import { init } from './commands/init'; const program = new Command(); @@ -53,4 +54,14 @@ program generateComponent(name, options); }); +program + .command('init') + .alias('-i') + .description( + 'Update your existing medusa project to include the necessary configuration to use the medusa-extender package' + ) + .action(async () => { + await init(); + }); + program.parse(); diff --git a/src/cli/tests/__utils__/getExpectedComponentPath.ts b/src/cli/tests/__utils__/getExpectedComponentPath.ts new file mode 100644 index 00000000..91eaf019 --- /dev/null +++ b/src/cli/tests/__utils__/getExpectedComponentPath.ts @@ -0,0 +1,3 @@ +export function getExpectedComponentPath(relativePath: string, componentName: string, type: string): string { + return process.cwd() + `/${relativePath}/${componentName}.${type}.ts`; +} diff --git a/src/cli/tests/cli.spec.ts b/src/cli/tests/cli.spec.ts index a8934490..62dd19ba 100644 --- a/src/cli/tests/cli.spec.ts +++ b/src/cli/tests/cli.spec.ts @@ -38,6 +38,7 @@ describe('CLI', () => { 'src/**/migrations/*.js', 'dist/**/*.migration.js', 'dist/**/migrations/*.js'] generate|g [options] Generate a new component + init|-i Update your existing medusa project to include the necessary configuration to use the medusa-extender package help [command] display help for command `) ); diff --git a/src/cli/tests/commands/generate-component.spec.ts b/src/cli/tests/commands/generate-component.spec.ts index ddcf9672..4d4136e7 100644 --- a/src/cli/tests/commands/generate-component.spec.ts +++ b/src/cli/tests/commands/generate-component.spec.ts @@ -11,20 +11,13 @@ import { getValidatorTemplate, } from '../../templates'; import { normalizeString } from '../__utils__/normalizeString'; +import { getExpectedComponentPath } from '../__utils__/getExpectedComponentPath'; const parentPath = './modules'; const path = parentPath + '/test'; const componentName = 'test'; -function cleanup(path: string): void { - unlinkSync(path); -} - -function getExpectedComponentPath(componentName: string, type: string): string { - return process.cwd() + `/${path}/${componentName}.${type}.ts`; -} - -describe('generateComponent', () => { +describe('GenerateComponent', () => { afterAll(() => { rmSync(path, { recursive: true, force: true }); rmdirSync(parentPath); @@ -33,11 +26,11 @@ describe('generateComponent', () => { it('should generate a module', () => { generateComponent(componentName, { module: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'module'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'module'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getModuleTemplate('TestModule')); }); @@ -45,11 +38,11 @@ describe('generateComponent', () => { it('should generate a middleware', () => { generateComponent(componentName, { middleware: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'middleware'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'middleware'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getMiddlewareTemplate('TestMiddleware')); }); @@ -57,11 +50,11 @@ describe('generateComponent', () => { it('should generate a service', () => { generateComponent(componentName, { service: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'service'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'service'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getServiceTemplate('TestService')); }); @@ -69,11 +62,11 @@ describe('generateComponent', () => { it('should generate a router', () => { generateComponent(componentName, { router: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'router'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'router'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getRouterTemplate('TestRouter')); }); @@ -81,11 +74,11 @@ describe('generateComponent', () => { it('should generate a validator', () => { generateComponent(componentName, { validator: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'validator'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'validator'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getValidatorTemplate('TestValidator')); }); @@ -93,11 +86,11 @@ describe('generateComponent', () => { it('should generate a entity', () => { generateComponent(componentName, { entity: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'entity'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'entity'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getEntityTemplate('TestEntity')); }); @@ -105,11 +98,11 @@ describe('generateComponent', () => { it('should generate a repository', () => { generateComponent(componentName, { repository: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'repository'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'repository'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent).toEqual(getRepositoryTemplate('TestRepository')); }); @@ -117,11 +110,11 @@ describe('generateComponent', () => { it('should generate a migration', () => { generateComponent(componentName, { migration: true, path }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'migration'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'migration'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); - cleanup(expectedComponentFile); + unlinkSync(expectedComponentFile); expect(componentContent.replace(/\d+/g, '')).toEqual(getMigrationTemplate('TestMigration').replace(/\d+/g, '')); }); @@ -136,7 +129,7 @@ describe('generateComponent', () => { const subDirectory = 'subDirectory'; generateComponent(componentName, { validator: true, path: path + '/' + subDirectory }); - const expectedComponentFile = getExpectedComponentPath(componentName, 'module'); + const expectedComponentFile = getExpectedComponentPath(path, componentName, 'module'); expect(existsSync(expectedComponentFile)).toBeTruthy(); const componentContent = readFileSync(expectedComponentFile).toString(); diff --git a/src/cli/tests/commands/init.spec.ts b/src/cli/tests/commands/init.spec.ts new file mode 100644 index 00000000..76d0ebce --- /dev/null +++ b/src/cli/tests/commands/init.spec.ts @@ -0,0 +1,115 @@ +import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs'; +import { resolve } from 'path'; +import { init } from '../../commands/init'; +import * as process from 'node:process'; +import * as packageLoader from '../../../core/package-loader'; +import { normalizeString } from '../__utils__/normalizeString'; + +const fakeProjectPath = resolve(__dirname, '..', 'fakeProject'); +const mockProcess = jest.spyOn(process, 'cwd').mockReturnValue(fakeProjectPath); +const loadPackagesMock = jest.spyOn(packageLoader, 'loadPackages').mockImplementation(() => void 0); + +const initialPackageJson = { scripts: {}, dependencies: {}, devDependencies: {} }; + +describe('Init command', () => { + beforeAll(() => { + mkdirSync(fakeProjectPath, { recursive: true }); + writeFileSync(resolve(fakeProjectPath, 'package.json'), JSON.stringify(initialPackageJson, null, 4)); + writeFileSync(resolve(fakeProjectPath, 'package-lock.json'), JSON.stringify({}, null, 4)); + mkdirSync(resolve(fakeProjectPath, 'src')); + }); + + afterAll(() => { + rmSync(fakeProjectPath, { recursive: true }); + mockProcess.mockClear(); + }); + + it('should update the setup of the actual project to use the medusa-extender', async () => { + await init(); + + expect(existsSync(resolve(fakeProjectPath, 'tsconfig.json'))).toBeTruthy(); + const tsconfigJson = await import(resolve(fakeProjectPath, 'tsconfig.json')); + expect(tsconfigJson).toEqual( + expect.objectContaining({ + compilerOptions: { + module: 'CommonJS', + declaration: true, + emitDecoratorMetadata: true, + experimentalDecorators: true, + allowSyntheticDefaultImports: true, + moduleResolution: 'node', + target: 'es2017', + sourceMap: true, + skipLibCheck: true, + allowJs: true, + outDir: 'dist', + rootDir: 'src', + esModuleInterop: true, + }, + include: ['src'], + exclude: ['dist', 'node_modules', '**/*.spec.ts'], + }) + ); + + expect(loadPackagesMock).toHaveBeenCalledWith(expect.anything(), [ + { name: 'typescript', version: '4.5.5', isDevDependency: true }, + ]); + + const packageJson = await import(resolve(fakeProjectPath, 'package.json')); + expect(packageJson).not.toEqual(initialPackageJson); + expect(packageJson.scripts).toEqual( + expect.objectContaining({ + build: 'rm -rf dist && ./node_modules/.bin/tsc -p tsconfig.json', + start: 'npm run build && NODE_ENV=development node ./dist/main.js', + 'start:prod': 'npm run build && NODE_ENV=production node dist/main', + }) + ); + + const mainFileContent = readFileSync(resolve(__dirname, '..', 'fakeProject', 'src', 'main.ts')).toString(); + expect(normalizeString(mainFileContent)).toBe( + normalizeString(` + import express = require('express'); + const config = require('../medusa-config'); + import { Medusa } from 'medusa-extender'; + import { resolve } from 'path'; + import { ExampleModule } from './modules/example/example.module'; + + async function bootstrap() { + const expressInstance = express(); + + await new Medusa(resolve(__dirname, '..'), expressInstance).load([ExampleModule]); + + expressInstance.listen(config.serverConfig.port, () => { + console.info('Server successfully started on port ' + config.serverConfig.port); + }); + } + + bootstrap(); + `) + ); + + const developShContent = readFileSync(resolve(__dirname, '..', 'fakeProject', 'develop.sh')).toString(); + expect(normalizeString(developShContent)).toBe( + normalizeString(` + #!/bin/bash + + #Run migrations to ensure the database is updated + medusa migrations run + + #Start development environment + npm run start + `) + ); + + expect(existsSync(resolve(__dirname, '..', 'fakeProject', 'src', 'modules', 'example'))).toBe(true); + expect( + existsSync(resolve(__dirname, '..', 'fakeProject', 'src', 'modules', 'example', 'example.module.ts')) + ).toBe(true); + expect( + existsSync(resolve(__dirname, '..', 'fakeProject', 'src', 'modules', 'example', 'example.service.ts')) + ).toBe(true); + expect( + existsSync(resolve(__dirname, '..', 'fakeProject', 'src', 'modules', 'example', 'example.router.ts')) + ).toBe(true); + }); +}); diff --git a/src/core/package-loader.ts b/src/core/package-loader.ts index 6794f650..e4643fd5 100644 --- a/src/core/package-loader.ts +++ b/src/core/package-loader.ts @@ -2,7 +2,6 @@ import { execSync } from 'child_process'; import { detect } from 'detect-package-manager'; import { Logger } from './logger'; import { writeFileSync } from 'fs'; -const packageJson = require(`${process.cwd()}/package.json`); /** * @Internal @@ -10,11 +9,16 @@ const packageJson = require(`${process.cwd()}/package.json`); * @param logger * @param packages The packages descriptors that must be installed */ -export async function loadPackages(logger: Logger, packages: { name: string; version: string }[]): Promise { - logger.log('Install necessary packages if they are not already installed'); +export async function loadPackages( + logger: Logger, + packages: { name: string; version: string; isDevDependency?: boolean }[] +): Promise { + logger.log('Installing the necessary packages if they are not already installed'); const installCommand = await getPackageManagerCommand(); - for (const { name, version } of packages) { + for (const { name, version, isDevDependency } of packages) { + const packageJson = await import(`${process.cwd()}/package.json`); + if (packageJson.dependencies[name]) { logger.log(`Skipping installation of ${name}@${version}. package already installed`); continue; @@ -22,8 +26,15 @@ export async function loadPackages(logger: Logger, packages: { name: string; ver logger.log(`Installing ${name}@${version}...`); try { - execSync(`${installCommand} ${name}@${version}`, { cwd: process.cwd(), env: process.env }); - packageJson.dependencies[name] = `^${version}`; + execSync(`${installCommand} ${isDevDependency ? '-D' : ''} ${name}@${version}`, { + cwd: process.cwd(), + env: process.env, + }); + if (isDevDependency) { + packageJson.devDependencies[name] = `^${version}`; + } else { + packageJson.dependencies[name] = `^${version}`; + } writeFileSync(`${process.cwd()}/package.json`, JSON.stringify(packageJson, null, 2)); } catch (e) { logger.error(`Unable to install ${name}@${version}`); diff --git a/starters/server/medusa-config.js b/starters/server/medusa-config.js index 58eada55..83e7397a 100644 --- a/starters/server/medusa-config.js +++ b/starters/server/medusa-config.js @@ -2,7 +2,7 @@ import * as dotenv from 'dotenv'; let ENV_FILE_NAME = ''; switch (process.env.NODE_ENV) { - case 'prod': + case 'production': ENV_FILE_NAME = '.env'; break; case 'test': diff --git a/starters/server/package.json b/starters/server/package.json index ae8abe72..bf8c0e6e 100644 --- a/starters/server/package.json +++ b/starters/server/package.json @@ -14,11 +14,10 @@ "node": ">=14.17.3" }, "scripts": { - "migrate": "ts-node migrate.ts", "build": "rm -rf dist && ./node_modules/.bin/tsc -p tsconfig.json", "format": "./node_modules/.bin/prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "NODE_ENV=development node ./dist/main.js", - "start:prod": "npm run build:prod && NODE_ENV=prod node dist/main", + "start:prod": "npm run build && NODE_ENV=production node dist/main", "test": "NODE_ENV=test jest --detectOpenHandles", "test:watch": "NODE_ENV=test jest --watch --detectOpenHandles", "test:cov": "NODE_ENV=test jest --coverage --detectOpenHandles" @@ -31,7 +30,6 @@ "class-validator": "^0.13.2", "dotenv": "^12.0.4", "express": "^4.17.1", - "i": "^0.3.7", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", "medusa-core-utils": "^1.1.31",