yahoi
Version:
Yet Another Highly Opinionated Isomorphic Framework
74 lines (61 loc) • 2.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _joi = require('joi');
var _joi2 = _interopRequireDefault(_joi);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ParameterBag = function () {
function ParameterBag(props) {
_classCallCheck(this, ParameterBag);
this.__parameters = Object.assign(props.parameters, props.body, props.routeParams);
this.__body = props.body;
this.__query = props.parameters;
this.__routeParams = props.routeParams;
this.__schema = {};
// console.log('props.autoReject', props.autoReject);
this.__autoReject = props.autoReject;
}
_createClass(ParameterBag, [{
key: 'get',
value: function get(name, type) {
if (_typeof(type == 'undefined')) {
return this.__parameters[name];
}
}
}, {
key: 'getAllPostParameters',
value: function getAllPostParameters() {
return this.__body;
}
}, {
key: 'list',
value: function list() {
return this.__parameters;
}
}, {
key: 'setSchema',
value: function setSchema(schema) {
this.__schema = schema;
}
}, {
key: 'areValid',
value: function areValid() {
var result = _joi2.default.validate(this.__parameters, this.__schema);
if (result.error) {
if (typeof this.__autoReject != 'undefined') {
this.__autoReject(result);
}
return false;
}{
return true;
}
}
}]);
return ParameterBag;
}();
exports.default = ParameterBag;