react-remarkify
Version:
A simple React.js utility to convert Markdown into React components.
38 lines (37 loc) • 1.36 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import { isValidElement } from "react";
export function NodeToKey(node) {
if (typeof node === "string")
return node;
if (typeof node === "number")
return String(node);
if (Array.isArray(node))
return node.map(NodeToKey).join("");
if (isValidElement(node)) {
const nodeType = typeof node.type === "string" ? node.type : "Component";
const _a = node.props, { children } = _a, props = __rest(_a, ["children"]);
const propsKey = JSON.stringify(props);
const childrenKey = NodeToKey(children);
return `${nodeType}(${propsKey})[${childrenKey}]`;
}
return "";
}
export function tryCatch(callback) {
try {
const data = callback();
return { success: true, data, error: null };
}
catch (error) {
return { success: false, data: null, error: error };
}
}