@rokmohar/medusa-plugin-meilisearch
Version:
Meilisearch plugin for Medusa 2
40 lines • 3.76 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.StoreSearchProductsSchema = void 0;
exports.GET = GET;
const meilisearch_1 = require("../../../../modules/meilisearch");
const zod_1 = __importDefault(require("zod"));
exports.StoreSearchProductsSchema = 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) {
const { query, language, limit, offset } = req.validatedQuery;
const meilisearchService = req.scope.resolve(meilisearch_1.MEILISEARCH_MODULE);
const indexes = await meilisearchService.getIndexesByType('products');
const results = await Promise.all(indexes.map(async (indexKey) => {
return await meilisearchService.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21laWxpc2VhcmNoL2hpdHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBY0Esa0JBK0JDO0FBNUNELGlFQUF3RjtBQUV4Riw4Q0FBbUI7QUFFTixRQUFBLHlCQUF5QixHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEQsS0FBSyxFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsS0FBSyxFQUFFLGFBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNwQyxNQUFNLEVBQUUsYUFBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLFFBQVEsRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2hDLENBQUMsQ0FBQTtBQUlLLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0QsRUFBRSxHQUFtQztJQUMvRyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUM3RCxNQUFNLGtCQUFrQixHQUF1QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0lBRXBGLE1BQU0sT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckUsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUM3QixPQUFPLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDdEQsUUFBUTtZQUNSLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLO2dCQUNMLE1BQU07YUFDUDtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUNILENBQUE7SUFFRCxpQ0FBaUM7SUFDakMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDZCxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNuQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUM7WUFDcEYsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3pFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztTQUNwQixDQUFBO0lBQ0gsQ0FBQyxFQUNELEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUNoRSxDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUN6QixDQUFDIn0=