UNPKG

medusa-plugin-tolgee

Version:

Medusa V2 Plugin to easily add translations to your models with Tolgee

48 lines 4.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = tolgeeClientLoader; const utils_1 = require("@medusajs/utils"); const axios_1 = __importDefault(require("axios")); const axios_cache_interceptor_1 = require("axios-cache-interceptor"); const awilix_1 = require("awilix"); const batching_adapter_1 = require("./utils/batching-adapter"); async function tolgeeClientLoader({ container, options, }) { if (!options) throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Failed to load Tolgee module: no options provided`); try { // If the result is cached, axios-cache-interceptor simply replaces the adapter with one that resolves immediately // We can do the same with the default adapter, which will be called for cache misses. const client = axios_1.default.create({ baseURL: `${options.baseURL}/v2/projects/${options.projectId}`, headers: { Accept: "application/json", "X-API-Key": options.apiKey, }, maxBodyLength: Infinity, }); (0, batching_adapter_1.setupBatchingAdapter)(client, container.resolve("logger"), { batchUrl: "/translations", batchQueryParam: "filterNamespace", batchingDelayMilliseconds: options.batchingDelayMilliseconds ?? 50, rateLimit: { maxRequests: options.rateLimit?.maxRequests ?? 15, perMilliseconds: options.rateLimit?.perMilliseconds ?? 3000 } }); const cachedClient = (0, axios_cache_interceptor_1.setupCache)(client, { ttl: options.ttl ?? 1000 * 60 * 5, // default 5min methods: ['get'], // If the server sends `Cache-Control: no-cache` or `no-store`, this can prevent caching. // Set to false for the ttl to always take precedence. interpretHeader: false, }); container.register("tolgeeClient", (0, awilix_1.asValue)(cachedClient)); } catch (error) { throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, `Failed to instantiate the axios client for Tolgee: ${error.message}`); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sZ2VlLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RvbGdlZS9sb2FkZXJzL3RvbGdlZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFVQSxxQ0E4Q0M7QUFyREQsMkNBQXVEO0FBQ3ZELGtEQUEwQjtBQUMxQixxRUFBcUQ7QUFFckQsbUNBQWlDO0FBQ2pDLCtEQUFnRTtBQUVqRCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsRUFDL0MsU0FBUyxFQUNULE9BQU8sR0FDMkI7SUFDbEMsSUFBSSxDQUFDLE9BQU87UUFDVixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQ2xDLG1EQUFtRCxDQUNwRCxDQUFDO0lBRUosSUFBSSxDQUFDO1FBQ0gsa0hBQWtIO1FBQ2xILHNGQUFzRjtRQUN0RixNQUFNLE1BQU0sR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLGdCQUFnQixPQUFPLENBQUMsU0FBUyxFQUFFO1lBQzlELE9BQU8sRUFBRTtnQkFDUCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU07YUFDNUI7WUFDRCxhQUFhLEVBQUUsUUFBUTtTQUN4QixDQUFDLENBQUE7UUFFRixJQUFBLHVDQUFvQixFQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3hELFFBQVEsRUFBRSxlQUFlO1lBQ3pCLGVBQWUsRUFBRSxpQkFBaUI7WUFDbEMseUJBQXlCLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixJQUFJLEVBQUU7WUFDbEUsU0FBUyxFQUFFO2dCQUNULFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLFdBQVcsSUFBSSxFQUFFO2dCQUNqRCxlQUFlLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLElBQUksSUFBSTthQUM1RDtTQUNGLENBQUMsQ0FBQTtRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUEsb0NBQVUsRUFBQyxNQUFhLEVBQUU7WUFDN0MsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsZUFBZTtZQUNsRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEIseUZBQXlGO1lBQ3pGLHNEQUFzRDtZQUN0RCxlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUE7UUFFRixTQUFTLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxJQUFBLGdCQUFPLEVBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsc0RBQXNELEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDdEUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIn0=