@lyra/base
Version:
Lyra plugin containing the base components and roles for a Lyra configuration
57 lines (34 loc) • 1.65 kB
JavaScript
;
var _geopoint = require('./types/geopoint');
var _geopoint2 = _interopRequireDefault(_geopoint);
var _imageAsset = require('./types/imageAsset');
var _imageAsset2 = _interopRequireDefault(_imageAsset);
var _fileAsset = require('./types/fileAsset');
var _fileAsset2 = _interopRequireDefault(_fileAsset);
var _schema = require('@lyra/schema');
var _schema2 = _interopRequireDefault(_schema);
var _schema3 = require('part:@lyra/form-builder/input/legacy-date/schema?');
var _schema4 = _interopRequireDefault(_schema3);
var _validateSchema = require('@lyra/schema/lib/lyra/validateSchema');
var _validateSchema2 = _interopRequireDefault(_validateSchema);
var _groupProblems = require('@lyra/schema/lib/lyra/groupProblems');
var _groupProblems2 = _interopRequireDefault(_groupProblems);
var _validation = require('@lyra/validation');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const isError = problem => problem.severity === 'error';
module.exports = schemaDef => {
const validated = (0, _validateSchema2.default)(schemaDef.types).getTypes();
const validation = (0, _groupProblems2.default)(validated);
const hasErrors = validation.some(group => group.problems.some(isError));
let types = [];
if (!hasErrors) {
types = [...schemaDef.types, _geopoint2.default, _schema4.default, _imageAsset2.default, _fileAsset2.default].filter(Boolean);
}
const compiled = _schema2.default.compile({
name: schemaDef.name,
types
});
compiled._source = schemaDef;
compiled._validation = validation;
return (0, _validation.inferFromSchema)(compiled);
};