@nucypher/taco
Version:
### [`nucypher/taco-web`](../../README.md)
43 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConditionFactory = void 0;
const contract_1 = require("./base/contract");
const json_api_1 = require("./base/json-api");
const json_rpc_1 = require("./base/json-rpc");
const jwt_1 = require("./base/jwt");
const rpc_1 = require("./base/rpc");
const time_1 = require("./base/time");
const compound_condition_1 = require("./compound-condition");
const if_then_else_condition_1 = require("./if-then-else-condition");
const sequential_1 = require("./sequential");
const ERR_INVALID_CONDITION_TYPE = (type) => `Invalid condition type: ${type}`;
class ConditionFactory {
static conditionFromProps(props) {
switch (props.conditionType) {
// Base Conditions
case rpc_1.RpcConditionType:
return new rpc_1.RpcCondition(props);
case time_1.TimeConditionType:
return new time_1.TimeCondition(props);
case contract_1.ContractConditionType:
return new contract_1.ContractCondition(props);
case json_api_1.JsonApiConditionType:
return new json_api_1.JsonApiCondition(props);
case json_rpc_1.JsonRpcConditionType:
return new json_rpc_1.JsonRpcCondition(props);
case jwt_1.JWTConditionType:
return new jwt_1.JWTCondition(props);
// Logical Conditions
case compound_condition_1.CompoundConditionType:
return new compound_condition_1.CompoundCondition(props);
case sequential_1.SequentialConditionType:
return new sequential_1.SequentialCondition(props);
case if_then_else_condition_1.IfThenElseConditionType:
return new if_then_else_condition_1.IfThenElseCondition(props);
default:
throw new Error(ERR_INVALID_CONDITION_TYPE(props.conditionType));
}
}
}
exports.ConditionFactory = ConditionFactory;
//# sourceMappingURL=condition-factory.js.map