UNPKG

@lyra/form-builder

Version:
46 lines (38 loc) 1.34 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createNodeValidator; var _randomKey = require('./randomKey'); var _randomKey2 = _interopRequireDefault(_randomKey); var _deserialize = require('./deserialize'); var _deserialize2 = _interopRequireDefault(_deserialize); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /*:: import type {SlateNode, Type, Block} from '../typeDefs'*/ function createNodeValidator(blockContentType /*: Type*/, getValue /*: void => Block[]*/) { return function validateNode(node /*: SlateNode*/) { // Make sure document always has a node. if (node.object === 'document' && node.nodes.size === 0) { return change => { const key = (0, _randomKey2.default)(12); const block = (0, _deserialize2.default)([{ _key: key, _type: 'block', children: [{ _type: 'span', _key: `${key}0`, text: '', marks: [] }], style: 'normal' }], blockContentType).document.nodes.first().toJSON({ preserveKeys: true, preserveData: true }); change.applyOperations([{ type: 'insert_node', path: [0], node: block }]); }; } return undefined; }; }