All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
106 lines
2.0 KiB
JavaScript
106 lines
2.0 KiB
JavaScript
(function (global, factory) {
|
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('slate')) :
|
|
typeof define === 'function' && define.amd ? define(['exports', 'slate'], factory) :
|
|
(factory((global.SlateBase64Serializer = {}),global.Slate));
|
|
}(this, (function (exports,slate) { 'use strict';
|
|
|
|
var atob = self.atob.bind(self);
|
|
var btoa = self.btoa.bind(self);
|
|
|
|
/**
|
|
* 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 = slate.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 = slate.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
|
|
};
|
|
|
|
exports.default = index;
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
})));
|