@vendure/core
Version:
A modern, headless ecommerce framework
31 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasFacetValues = void 0;
const generated_types_1 = require("@vendure/common/lib/generated-types");
const facet_value_checker_1 = require("../../../service/helpers/facet-value-checker/facet-value-checker");
const promotion_condition_1 = require("../promotion-condition");
let facetValueChecker;
exports.hasFacetValues = new promotion_condition_1.PromotionCondition({
code: 'at_least_n_with_facets',
description: [
{ languageCode: generated_types_1.LanguageCode.en, value: 'Buy at least { minimum } products with the given facets' },
],
args: {
minimum: { type: 'int', defaultValue: 1 },
facets: { type: 'ID', list: true, ui: { component: 'facet-value-form-input' } },
},
init(injector) {
facetValueChecker = injector.get(facet_value_checker_1.FacetValueChecker);
},
// eslint-disable-next-line no-shadow,@typescript-eslint/no-shadow
async check(ctx, order, args) {
let matches = 0;
for (const line of order.lines) {
if (await facetValueChecker.hasFacetValues(line, args.facets, ctx)) {
matches += line.quantity;
}
}
return args.minimum <= matches;
},
});
//# sourceMappingURL=has-facet-values-condition.js.map