UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

102 lines (85 loc) 2.94 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _forEach2 = _interopRequireDefault(require("lodash/forEach")); var _utils = require("./utils"); var _types = require("./types"); var _nullField = _interopRequireDefault(require("./nullField")); var ArrayField = /*#__PURE__*/ function () { function ArrayField(_ref) { var rootSchema = _ref.rootSchema, schema = _ref.schema, key = _ref.key, isEntity = _ref.isEntity; (0, _classCallCheck2.default)(this, ArrayField); (0, _defineProperty2.default)(this, "schema", void 0); (0, _defineProperty2.default)(this, "rootSchema", void 0); (0, _defineProperty2.default)(this, "key", void 0); (0, _defineProperty2.default)(this, "isEntity", void 0); this.key = key; this.rootSchema = rootSchema; this.schema = schema; this.isEntity = isEntity || false; } (0, _createClass2.default)(ArrayField, [{ key: "getAttr", value: function getAttr(name) { return this.schema[name]; } }, { key: "getKey", value: function getKey() { return this.key; } }, { key: "getType", value: function getType() { return _types.types.ARRAY; } }, { key: "exists", value: function exists() { return true; } }, { key: "getChild", value: function getChild(fieldName) { if ((0, _utils.isCompositeType)(this.schema.items.type)) { var child = (0, _utils.createField)(fieldName, this.rootSchema, this.schema.items); var childField = child.getChild(fieldName); return childField; } if (!this.schema.items || !this.schema.items.items || !this.schema.items.items[fieldName]) { return new _nullField.default({ key: fieldName }); } // array of object var field = (0, _utils.createField)(fieldName, this.rootSchema, this.schema.items.items[fieldName]); return field; } }, { key: "forEach", value: function forEach(visitor) { var _this = this; if ((0, _utils.isCompositeType)(this.schema.items.type)) { var child = (0, _utils.createField)('', this.rootSchema, this.schema.items); child.forEach(visitor); return; } (0, _forEach2.default)(this.schema.items.items, function (item, key) { var field = (0, _utils.createField)(key, _this.rootSchema, _this.schema.items.items[key]); visitor(field); }); } }]); return ArrayField; }(); exports.default = ArrayField;