Files
coopgo/node_modules/slate-base64-serializer/lib/slate-base64-serializer.es.js
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

97 lines
1.6 KiB
JavaScript

import { Node, Value } from 'slate';
import { atob, btoa } from 'isomorphic-base64';
/**
* Encode a JSON `object` as base-64 `string`.
*
* @param {Object} object
* @return {String}
*/
function encode(object) {
var string = JSON.stringify(object);
var encoded = btoa(encodeURIComponent(string));
return encoded;
}
/**
* Decode a base-64 `string` to a JSON `object`.
*
* @param {String} string
* @return {Object}
*/
function decode(string) {
var decoded = decodeURIComponent(atob(string));
var object = JSON.parse(decoded);
return object;
}
/**
* Deserialize a Value `string`.
*
* @param {String} string
* @return {Value}
*/
function deserialize(string, options) {
var raw = decode(string);
var value = Value.fromJSON(raw, options);
return value;
}
/**
* Deserialize a Node `string`.
*
* @param {String} string
* @return {Node}
*/
function deserializeNode(string, options) {
var raw = decode(string);
var node = Node.fromJSON(raw, options);
return node;
}
/**
* Serialize a `value`.
*
* @param {Value} value
* @return {String}
*/
function serialize(value, options) {
var raw = value.toJSON(options);
var encoded = encode(raw);
return encoded;
}
/**
* Serialize a `node`.
*
* @param {Node} node
* @return {String}
*/
function serializeNode(node, options) {
var raw = node.toJSON(options);
var encoded = encode(raw);
return encoded;
}
/**
* Export.
*
* @type {Object}
*/
var index = {
deserialize: deserialize,
deserializeNode: deserializeNode,
serialize: serialize,
serializeNode: serializeNode
};
export default index;
//# sourceMappingURL=slate-base64-serializer.es.js.map