UNPKG

@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
'use strict'; 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;