UNPKG

@nucypher/taco

Version:

### [`nucypher/taco-web`](../../README.md)

54 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Condition = exports.baseConditionSchema = void 0; const shared_1 = require("@nucypher/shared"); const utils_1 = require("../utils"); const const_1 = require("./const"); var common_1 = require("./schemas/common"); Object.defineProperty(exports, "baseConditionSchema", { enumerable: true, get: function () { return common_1.baseConditionSchema; } }); const ERR_INVALID_CONDITION = (error) => `Invalid condition: ${JSON.stringify(error.issues)}`; class Condition { schema; value; constructor(schema, value) { this.schema = schema; this.value = value; const { data, error } = Condition.validate(schema, value); if (error) { throw new Error(ERR_INVALID_CONDITION(error)); } this.value = data; } static validate(schema, value) { const result = schema.safeParse(value); if (result.success) { return { data: result.data }; } return { error: result.error }; } // TODO: Fix this method and add a test for it findParamWithAuthentication() { const serialized = (0, utils_1.toJSON)(this.value); for (const param of const_1.USER_ADDRESS_PARAMS) { if (serialized.includes(param)) { return param; } } return null; } requiresAuthentication() { return Boolean(this.findParamWithAuthentication()); } toObj() { const { data, error } = Condition.validate(this.schema, this.value); if (error) { throw new Error(ERR_INVALID_CONDITION(error)); } return data; } equals(other) { return (0, shared_1.objectEquals)(this.toObj(), other.toObj()); } } exports.Condition = Condition; //# sourceMappingURL=condition.js.map