@devx-commerce/strapi
Version:
Medusa plugin for Strapi as CMS
39 lines • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.config = void 0;
exports.default = syncProductsHandler;
const utils_1 = require("@medusajs/framework/utils");
const upsert_products_strapi_1 = require("../workflows/upsert-products-strapi");
async function syncProductsHandler({ container, }) {
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
const batchSize = 100;
let hasMore = true;
let offset = 0;
let totalCount = 0;
while (hasMore) {
const { data: products, metadata: { count } = {} } = await query.graph({
entity: "product",
fields: ["id"],
pagination: {
skip: offset,
take: batchSize,
},
});
if (products.length) {
await (0, upsert_products_strapi_1.upsertProductsStrapiWorkflow)(container).run({
input: {
product_ids: products.map((product) => product.id),
},
});
}
hasMore = products.length === batchSize;
offset += batchSize;
totalCount = count ?? 0;
}
logger.log(`Synced ${totalCount} products to Strapi`);
}
exports.config = {
event: "strapi-products.sync",
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1wcm9kdWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9zeW5jLXByb2R1Y3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHNDQW1DQztBQXRDRCxxREFBc0U7QUFDdEUsZ0ZBQW1GO0FBRXBFLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxFQUNoRCxTQUFTLEdBQytCO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7SUFDdEIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ25CLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUVuQixPQUFPLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3JFLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNkLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBQSxxREFBNEIsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDbkQ7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxTQUFTLENBQUM7UUFDcEIsVUFBVSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxVQUFVLHFCQUFxQixDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN0QyxLQUFLLEVBQUUsc0JBQXNCO0NBQzlCLENBQUMifQ==