UNPKG

@lyra/base

Version:

Lyra plugin containing the base components and roles for a Lyra configuration

57 lines (34 loc) 1.65 kB
'use strict'; 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); };