UNPKG

@tatumio/tatum-v1

Version:

Tatum API client allows browsers and Node.js clients to interact with Tatum API.

34 lines 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OneOf = void 0; const class_validator_1 = require("class-validator"); // eslint-disable-next-line @typescript-eslint/ban-types const OneOf = (oneOfFields, validationOptions) => (object, propertyName) => { class_validator_1.registerDecorator({ name: 'oneOf', target: object.constructor, propertyName, constraints: [oneOfFields], options: validationOptions, validator: { validate(value, args) { let isSet = false; for (const oneOfField in args.object) { if (oneOfFields.includes(oneOfField)) { // @ts-ignore if (args.object[oneOfField]) { if (isSet) { return false; } isSet = true; } } } return isSet; }, defaultMessage: class_validator_1.buildMessage(() => `Exactly one of ${oneOfFields.join(", ")} fields can be filled.`, validationOptions), }, }); }; exports.OneOf = OneOf; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25lT2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvdmFsaWRhdGlvbi9PbmVPZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBMEc7QUFFMUcsd0RBQXdEO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBcUIsRUFBRSxpQkFBcUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFO0lBQzVILG1DQUFpQixDQUFDO1FBQ2QsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDMUIsWUFBWTtRQUNaLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUMxQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFNBQVMsRUFBRTtZQUNQLFFBQVEsQ0FBQyxLQUFVLEVBQUUsSUFBeUI7Z0JBQzFDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbEIsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNsQyxJQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ2pDLGFBQWE7d0JBQ2IsSUFBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN4QixJQUFHLEtBQUssRUFBRTtnQ0FDTixPQUFPLEtBQUssQ0FBQTs2QkFDZjs0QkFDRCxLQUFLLEdBQUcsSUFBSSxDQUFBO3lCQUNmO3FCQUNKO2lCQUNKO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNILGNBQWMsRUFBRSw4QkFBWSxDQUN4QixHQUFHLEVBQUUsQ0FDRCxrQkFBa0IsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQ3BFLGlCQUFpQixDQUNwQjtTQUNKO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBOUJXLFFBQUEsS0FBSyxTQThCaEIifQ==