"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Operators = _interopRequireDefault(require("./Operators"));

var _default = {
  exec: function exec(condition, data, extraConfig) {
    switch (condition.opType) {
      case 'IN':
      case 'NOT_IN':
        return _Operators.default['InOrNot'](condition, data, condition.opType === 'IN', extraConfig);

      case 'LIKE':
      case 'NOT_LIKE':
        return _Operators.default['LikeOrNot'](condition, data, condition.opType === 'LIKE');

      case 'GTE':
      case 'LTE':
      case 'GT':
      case 'LT':
        return _Operators.default['Amount'](condition, data);

      case 'HAS':
      case 'NOT_HAS':
        return _Operators.default['HasOrNot'](condition, data);

      default:
        break;
    }
  }
};
exports.default = _default;