UNPKG

react-remarkify

Version:

A simple React.js utility to convert Markdown into React components.

38 lines (37 loc) 1.36 kB
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 }; } }