fix(integration): setup (#5511)

* fix(integration): setup
This commit is contained in:
Adrien de Peretti
2023-11-01 13:56:12 -04:00
committed by GitHub
parent 4692f54b49
commit 80fe362f33
45 changed files with 461 additions and 405 deletions
@@ -45,6 +45,10 @@ class InMemoryCacheService implements ICacheService {
* @param ttl - expiration time in seconds
*/
async set<T>(key: string, data: T, ttl: number = this.TTL): Promise<void> {
if (ttl === 0) {
return
}
const record: CacheRecord<T> = { data, expire: ttl * 1000 + Date.now() }
const oldRecord = this.store.get(key)
@@ -54,8 +58,8 @@ class InMemoryCacheService implements ICacheService {
this.timoutRefs.delete(key)
}
const ref = setTimeout(() => {
this.invalidate(key)
const ref = setTimeout(async () => {
await this.invalidate(key)
}, ttl * 1000)
ref.unref()
@@ -35,6 +35,10 @@ class RedisCacheService implements ICacheService {
data: Record<string, unknown>,
ttl: number = this.TTL
): Promise<void> {
if (ttl === 0) {
return
}
await this.redis.set(
this.getCacheKey(key),
JSON.stringify(data),
+7 -13
View File
@@ -1,32 +1,26 @@
import {
MedusaApp,
ModulesDefinition,
moduleLoader,
registerModules,
} from "@medusajs/modules-sdk"
import { moduleLoader, registerModules } from "@medusajs/modules-sdk"
import { Express, NextFunction, Request, Response } from "express"
import databaseLoader, { dataSource } from "./database"
import pluginsLoader, { registerPluginModels } from "./plugins"
import { Connection } from "typeorm"
import { ContainerRegistrationKeys } from "@medusajs/utils"
import { asValue } from "awilix"
import { createMedusaContainer } from "medusa-core-utils"
import { track } from "medusa-telemetry"
import { EOL } from "os"
import requestIp from "request-ip"
import modulesConfig from "../modules-config"
import { Connection } from "typeorm"
import { MedusaContainer } from "../types/global"
import apiLoader from "./api"
import loadConfig from "./config"
import defaultsLoader from "./defaults"
import expressLoader from "./express"
import featureFlagsLoader from "./feature-flags"
import IsolatePricingDomainFeatureFlag from "./feature-flags/isolate-pricing-domain"
import IsolateProductDomainFeatureFlag from "./feature-flags/isolate-product-domain"
import Logger from "./logger"
import { joinerConfig } from "../joiner-config"
import loadConfig from "./config"
import loadMedusaApp from "./medusa-app"
import modelsLoader from "./models"
import passportLoader from "./passport"
import pgConnectionLoader from "./pg-connection"
@@ -36,7 +30,6 @@ import searchIndexLoader from "./search-index"
import servicesLoader from "./services"
import strategiesLoader from "./strategies"
import subscribersLoader from "./subscribers"
import loadMedusaApp from "./medusa-app"
type Options = {
directory: string
@@ -52,6 +45,7 @@ export default async ({
container: MedusaContainer
dbConnection: Connection
app: Express
pgConnection: unknown
}> => {
const configModule = loadConfig(rootDirectory)
@@ -102,7 +96,7 @@ export default async ({
const stratAct = Logger.success(stratActivity, "Strategies initialized") || {}
track("STRATEGIES_INIT_COMPLETED", { duration: stratAct.duration })
await pgConnectionLoader({ container, configModule })
const pgConnection = await pgConnectionLoader({ container, configModule })
const modulesActivity = Logger.activity(`Initializing modules${EOL}`)
@@ -202,5 +196,5 @@ export default async ({
Logger.success(searchActivity, "Indexing event emitted") || {}
track("SEARCH_ENGINE_INDEXING_COMPLETED", { duration: searchAct.duration })
return { container, dbConnection, app: expressApp }
return { container, dbConnection, app: expressApp, pgConnection }
}