Files
medusa-store/packages/modules/cache-redis/src/loaders/index.ts
Adrien de Peretti 4eae25e1ef chore(): Reorganize modules (#7210)
**What**
Move all modules to the modules directory
2024-05-02 15:33:34 +00:00

38 lines
973 B
TypeScript

import { LoaderOptions } from "@medusajs/modules-sdk"
import { asValue } from "awilix"
import Redis from "ioredis"
import { RedisCacheModuleOptions } from "../types"
export default async ({
container,
logger,
options,
}: LoaderOptions): Promise<void> => {
const { redisUrl, redisOptions } = options as RedisCacheModuleOptions
if (!redisUrl) {
throw Error(
"No `redisUrl` provided in `cacheService` module options. It is required for the Redis Cache Module."
)
}
const connection = new Redis(redisUrl, {
// Lazy connect to properly handle connection errors
lazyConnect: true,
...(redisOptions ?? {}),
})
try {
await connection.connect()
logger?.info(`Connection to Redis in module 'cache-redis' established`)
} catch (err) {
logger?.error(
`An error occurred while connecting to Redis in module 'cache-redis': ${err}`
)
}
container.register({
cacheRedisConnection: asValue(connection),
})
}