@nucypher/taco
Version:
### [`nucypher/taco-web`](../../README.md)
39 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sequentialConditionSchema = exports.conditionVariableSchema = exports.SequentialConditionType = void 0;
const zod_1 = require("zod");
const multi_condition_1 = require("../multi-condition");
const common_1 = require("./common");
const utils_1 = require("./utils");
exports.SequentialConditionType = 'sequential';
exports.conditionVariableSchema = zod_1.z.lazy(() => zod_1.z.object({
varName: common_1.plainStringSchema,
condition: utils_1.anyConditionSchema,
}));
exports.sequentialConditionSchema = common_1.baseConditionSchema
.extend({
conditionType: zod_1.z
.literal(exports.SequentialConditionType)
.default(exports.SequentialConditionType),
conditionVariables: zod_1.z.array(exports.conditionVariableSchema).min(2).max(5),
})
.refine((condition) => (0, multi_condition_1.maxNestedDepth)(2)(condition), {
message: 'Exceeded max nested depth of 2 for multi-condition type',
path: ['conditionVariables'],
})
.refine(
// check for duplicate var names
(condition) => {
const seen = new Set();
return condition.conditionVariables.every((child) => {
if (seen.has(child.varName)) {
return false;
}
seen.add(child.varName);
return true;
});
}, {
message: 'Duplicate variable names are not allowed',
path: ['conditionVariables'],
});
//# sourceMappingURL=sequential.js.map