docs: general fixes and overall changes (#7258)

* editing halfway

* edited second half

* adjust starter steps

* fix build

* typo fix
This commit is contained in:
Shahed Nasser
2024-05-07 18:00:28 +02:00
committed by GitHub
parent 8db62827ac
commit 327e446974
57 changed files with 872 additions and 1849 deletions
@@ -6,7 +6,7 @@ export const metadata = {
# {metadata.title}
In this chapter, youll learn about passing options to your Module from the Medusa applications configurations and using them in the Modules resources.
In this chapter, youll learn about passing options to your module from the Medusa applications configurations and using them in the modules resources.
## What are Module Options?
@@ -14,8 +14,6 @@ A module can receive options to customize or configure its functionality.
For example, if youre creating a module that integrates a third-party service, youll want to receive the integration credentials in the options rather than adding them directly in your code.
A module can receive options when theyre added to the Medusa applications configuration.
---
## How to Pass Options to a Module?
@@ -42,86 +40,47 @@ The `options` propertys value is an object. You can pass any properties you w
## Access Module Options in Main Service
The modules main service receives the modules declaration as a second parameter. The module declaration is an object having an `options` property. Use it to access the options passed from the Modules configurations.
The modules main service receives the module options as a second parameter.
For example:
<CodeTabs groupId="service-type">
<CodeTab label="Using Service Factory" value="service-factory">
```ts title="src/modules/hello/service.ts" highlights={[["15"], ["21"], ["25"], ["26"], ["27"]]}
// ...
```ts highlights={[["24"], ["28"], ["29"], ["30"]]}
// other imports...
import { InternalModuleDeclaration } from "@medusajs/types"
// recommended to define type in another file
type HelloModuleOptions = {
capitalize?: boolean
}
class HelloModuleService extends ModulesSdkUtils
.abstractModuleServiceFactory<
// ...
// recommended to define type in another file
type HelloModuleOptions = {
capitalize?: boolean
}
class HelloModuleService extends ModulesSdkUtils
.abstractModuleServiceFactory<
>(
// ...
) {
// ...
>(
// ...
) {
// ...
protected options_: HelloModuleOptions
constructor(
{
// ...
}: InjectedDependencies,
protected readonly moduleDeclaration: InternalModuleDeclaration
) {
//...
this.options_ = moduleDeclaration.options || {
capitalize: false,
}
}
}
```
</CodeTab>
<CodeTab label="Without Service Factory" value="no-service-factory">
```ts highlights={[["9"], ["13"], ["14"], ["16"], ["17"], ["18"]]}
import { InternalModuleDeclaration } from "@medusajs/types"
// recommended to define type in another file
type HelloModuleOptions = {
capitalize?: boolean
}
export default class HelloModuleService {
protected options_: HelloModuleOptions
constructor(
{},
protected readonly moduleDeclaration:
InternalModuleDeclaration
{
// ...
}: InjectedDependencies,
protected readonly moduleOptions: HelloModuleOptions
) {
this.options_ = moduleDeclaration.options || {
capitalize: false,
//...
this.options_ = moduleOptions || {
capitalize: false
}
}
getMessage() {
return "Hello, world!"
}
}
```
</CodeTab>
</CodeTabs>
```
---
## Access Module Options in Loader
The object that a modules loaders receive as a parameter has an `options` property. Use it to access the options passed from the Modules configurations.
The object that a modules loaders receive as a parameter has an `options` property holding the module's options.
For example: