medusa-plugin-meilisearch-variants-v3
Version:
Meilisearch plugin for Medusa 2 Product Variants
47 lines • 4.39 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StoreSearchVariantsSchema = void 0;
exports.GET = GET;
const meilisearch_variants_1 = require("../../../../modules/meilisearch-variants");
const zod_1 = __importDefault(require("zod"));
exports.StoreSearchVariantsSchema = zod_1.default.object({
query: zod_1.default.string(),
limit: zod_1.default.coerce.number().default(10),
offset: zod_1.default.coerce.number().default(0),
language: zod_1.default.string().optional(),
});
async function GET(req, res) {
// Validate and parse query parameters
const queryParams = exports.StoreSearchVariantsSchema.parse({
query: req.query.query,
limit: req.query.limit,
offset: req.query.offset,
language: req.query.language,
});
const { query, language, limit, offset } = queryParams;
const meilisearchVariantsService = req.scope.resolve(meilisearch_variants_1.MEILISEARCH_VARIANTS_MODULE);
const indexes = await meilisearchVariantsService.getIndexesByType("variants");
const results = await Promise.all(indexes.map(async (indexKey) => {
return await meilisearchVariantsService.search(indexKey, query, {
language,
paginationOptions: {
limit,
offset,
},
});
}));
// Merge results from all indexes
const mergedResults = results.reduce((acc, result) => {
return {
hits: [...acc.hits, ...result.hits],
estimatedTotalHits: (acc.estimatedTotalHits || 0) + (result.estimatedTotalHits || 0),
processingTimeMs: Math.max(acc.processingTimeMs, result.processingTimeMs),
query: result.query,
};
}, { hits: [], estimatedTotalHits: 0, processingTimeMs: 0, query });
res.json(mergedResults);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21laWxpc2VhcmNoLXZhcmlhbnRzL2hpdHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBbUJBLGtCQStDQztBQWpFRCxtRkFHa0Q7QUFFbEQsOENBQW9CO0FBRVAsUUFBQSx5QkFBeUIsR0FBRyxhQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELEtBQUssRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLEtBQUssRUFBRSxhQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDcEMsTUFBTSxFQUFFLGFBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwQyxRQUFRLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDLENBQUM7QUFNSSxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQztJQUVuQyxzQ0FBc0M7SUFDdEMsTUFBTSxXQUFXLEdBQUcsaUNBQXlCLENBQUMsS0FBSyxDQUFDO1FBQ2xELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQWU7UUFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSztRQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNO1FBQ3hCLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQWtCO0tBQ3ZDLENBQUMsQ0FBQztJQUVILE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDdkQsTUFBTSwwQkFBMEIsR0FDOUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsa0RBQTJCLENBQUMsQ0FBQztJQUVqRCxNQUFNLE9BQU8sR0FBRyxNQUFNLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1FBQ3JDLE9BQU8sTUFBTSwwQkFBMEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUM5RCxRQUFRO1lBQ1IsaUJBQWlCLEVBQUU7Z0JBQ2pCLEtBQUs7Z0JBQ0wsTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLGlDQUFpQztJQUNqQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNsQyxDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQUUsRUFBRTtRQUN4QixPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNuQyxrQkFBa0IsRUFDaEIsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDO1lBQ2xFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQ3hCLEdBQUcsQ0FBQyxnQkFBZ0IsRUFDcEIsTUFBTSxDQUFDLGdCQUFnQixDQUN4QjtZQUNELEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztTQUNwQixDQUFDO0lBQ0osQ0FBQyxFQUNELEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUNoRSxDQUFDO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMxQixDQUFDIn0=