|
1 year ago | |
---|---|---|
.. | ||
README.md | 1 year ago | |
seed.ts | 1 year ago |
A custom CLI script is a function to execute through Medusa's CLI tool. This is useful when creating custom Medusa tooling to run as a CLI tool.
To create a custom CLI script, create a TypeScript or JavaScript file under the src/scripts
directory. The file must default export a function.
For example, create the file src/scripts/my-script.ts
with the following content:
import {
ExecArgs,
IProductModuleService
} from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
export default async function myScript ({
container
}: ExecArgs) {
const productModuleService: IProductModuleService =
container.resolve(ModuleRegistrationName.PRODUCT)
const [, count] = await productModuleService.listAndCount()
console.log(`You have ${count} product(s)`)
}
The function receives as a parameter an object having a container
property, which is an instance of the Medusa Container. Use it to resolve resources in your Medusa application.
To run the custom CLI script, build
your code then run the exec
command:
npm run build
npx medusa exec ./dist/scripts/my-script.js
Notice that you pass the path to the file in the dist
directory.
Your script can accept arguments from the command line. Arguments are passed to the function's object parameter in the args
property.
For example:
import { ExecArgs } from "@medusajs/types"
export default async function myScript ({
args
}: ExecArgs) {
console.log(`The arguments you passed: ${args}`)
}
Then, pass the arguments in the exec
command after the file path:
npm run build
npx medusa exec ./dist/scripts/my-script.js arg1 arg2