UNPKG

card-factory

Version:

A comprehensive library for card manipulation

20 lines (19 loc) 850 B
export class Rules { passRules; receiveRules; type; constructor(passRules = [() => true], receiveRules = [() => true], type = { pass: "every", receive: "every", }) { this.passRules = passRules; this.receiveRules = receiveRules; this.type = type; } canPass = (source, destination, card, ...extraArgs) => this.type.pass === "every" ? this.passRules.every((rule) => rule(source, destination, card, ...extraArgs)) : this.passRules.some((rule) => rule(source, destination, card, ...extraArgs)); canReceive = (source, destination, card, ...extraArgs) => this.type.receive === "every" ? this.receiveRules.every((rule) => rule(source, destination, card, ...extraArgs)) : this.receiveRules.some((rule) => rule(source, destination, card, ...extraArgs)); }