@atlaskit/renderer
Version:
Renderer component
37 lines • 1.62 kB
JavaScript
import { defaultSchema } from '@atlaskit/editor-common';
import { getValidDocument } from '@atlaskit/editor-common';
export { default as ReactSerializer } from './react';
export { default as TextSerializer } from './text';
export { default as ReactRenderer } from './ui/Renderer';
var SUPPORTS_HIRES_TIMER_API = window.performance && performance.now;
var withStopwatch = function (cb) {
var startTime = SUPPORTS_HIRES_TIMER_API ? performance.now() : Date.now();
var output = cb();
var endTime = SUPPORTS_HIRES_TIMER_API ? performance.now() : Date.now();
var time = endTime - startTime;
return { output: output, time: time };
};
export var renderDocument = function (doc, serializer, schema) {
if (schema === void 0) { schema = defaultSchema; }
var stat = { sanitizeTime: 0 };
var _a = withStopwatch(function () {
return getValidDocument(doc, schema);
}), validDoc = _a.output, sanitizeTime = _a.time;
// save sanitize time to stats
stat.sanitizeTime = sanitizeTime;
if (!validDoc) {
return { stat: stat, result: null };
}
var _b = withStopwatch(function () {
return schema.nodeFromJSON(validDoc);
}), node = _b.output, buildTreeTime = _b.time;
// save build tree time to stats
stat.buildTreeTime = buildTreeTime;
var _c = withStopwatch(function () {
return serializer.serializeFragment(node.content);
}), result = _c.output, serializeTime = _c.time;
// save serialize tree time to stats
stat.serializeTime = serializeTime;
return { result: result, stat: stat };
};
//# sourceMappingURL=index.js.map