From 44edf3d379baea3a19357fdcb4faf2268c510a0a Mon Sep 17 00:00:00 2001 From: Daniel Lockyer Date: Mon, 4 Nov 2024 20:47:41 +0100 Subject: [PATCH] Removed duplicate serialization for offers - we can skip an extra `toJSON` call here by storing the value and re-using it, which means we can cut down on the number of calls, which can be particularly heavy when this codepath is hit hard --- .../core/server/services/offers/OfferBookshelfRepository.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ghost/core/core/server/services/offers/OfferBookshelfRepository.js b/ghost/core/core/server/services/offers/OfferBookshelfRepository.js index 72b57fdc63..5d43a01039 100644 --- a/ghost/core/core/server/services/offers/OfferBookshelfRepository.js +++ b/ghost/core/core/server/services/offers/OfferBookshelfRepository.js @@ -107,6 +107,8 @@ class OfferBookshelfRepository { }); try { + const lastRedeemedObject = lastRedeemed.toJSON(); + return await Offer.create({ id: json.id, name: json.name, @@ -126,7 +128,7 @@ class OfferBookshelfRepository { name: json.product.name }, created_at: json.created_at, - last_redeemed: lastRedeemed.toJSON().length > 0 ? lastRedeemed.toJSON()[0].created_at : null + last_redeemed: lastRedeemedObject.length > 0 ? lastRedeemedObject[0].created_at : null }, null); } catch (err) { logger.error(err);