@lyra/form-builder
Version:
Lyra form builder
46 lines (38 loc) • 1.34 kB
JavaScript
;
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;
};
}