@lyra/form-builder
Version:
Lyra form builder
45 lines (35 loc) • 1.17 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// todo: fix issue with type being a cicular proptype. Should probably replace all this with flowtypes
function lazy(fn) {
let cachedFn;
return (...args) => (cachedFn || (cachedFn = fn()))(...args);
}
const field = _propTypes2.default.shape({
name: _propTypes2.default.string,
type: _propTypes2.default.object
});
const type = _propTypes2.default.shape({
name: _propTypes2.default.string,
title: _propTypes2.default.string,
description: _propTypes2.default.string,
placeholder: _propTypes2.default.string,
type: lazy(() => type),
to: lazy(() => _propTypes2.default.arrayOf(type)),
fields: lazy(() => _propTypes2.default.arrayOf(field)),
of: lazy(() => _propTypes2.default.arrayOf(type))
});
const schema = _propTypes2.default.shape({
name: _propTypes2.default.string,
fields: _propTypes2.default.arrayOf(type)
});
exports.default = {
type,
field,
schema
};