@linaframework/arango-orm
Version:
> Please check out https://github.com/awesome-graphql-space/lina and https://github.com/oknoah/final/packages/arangolize for similar projects that MAY be more up to date
97 lines (68 loc) • 3.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _schema = require('../schemas/schema');
var _schema2 = _interopRequireDefault(_schema);
var _field = require('./field');
var _field2 = _interopRequireDefault(_field);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
var FieldSchemas = function (_Field) {
(0, _inherits3.default)(FieldSchemas, _Field);
function FieldSchemas(basePath, path, userSchema, options, internal) {
(0, _classCallCheck3.default)(this, FieldSchemas);
var _this = (0, _possibleConstructorReturn3.default)(this, (FieldSchemas.__proto__ || (0, _getPrototypeOf2.default)(FieldSchemas)).call(this, basePath, path, options, internal));
_this.schema = new _schema2.default(userSchema, [].concat((0, _toConsumableArray3.default)(basePath), (0, _toConsumableArray3.default)(path), ['..']), false);
return _this;
}
(0, _createClass3.default)(FieldSchemas, [{
key: 'validate',
value: function validate(data, basePath) {
var _this2 = this;
if (this.internal) return;
var array = this.getByPath(data);
if (!Array.isArray(array)) {
this.typeError(Array, array, basePath);
}
array.forEach(function (value, index) {
if (value !== Object(value)) _this2.typeError(Object, value, basePath, [index]);
var subPath = [].concat((0, _toConsumableArray3.default)(basePath), (0, _toConsumableArray3.default)(_this2.path), [index]);
_this2.schema.validate(value, subPath);
});
}
}, {
key: 'convertToModelValue',
value: function convertToModelValue(array) {
var _this3 = this;
return array.map(function (document) {
var model = {};
return _this3.schema.documentToModel(model, document);
});
}
}, {
key: 'convertToDocumentValue',
value: function convertToDocumentValue(array) {
var _this4 = this;
return array.map(function (model) {
var document = {};
return _this4.schema.modelToDocument(model, document);
});
}
}]);
return FieldSchemas;
}(_field2.default);
exports.default = FieldSchemas;