diff --git a/.changeset/stale-pandas-shake.md b/.changeset/stale-pandas-shake.md new file mode 100644 index 0000000000..3b6f4578a3 --- /dev/null +++ b/.changeset/stale-pandas-shake.md @@ -0,0 +1,5 @@ +--- +"@udecode/plate-serializer-md": patch +--- + +Replace potentially inefficient RegExp with String.trim() diff --git a/packages/serializer-md/src/serializer/serializeMdNodes.ts b/packages/serializer-md/src/serializer/serializeMdNodes.ts index ebf29728b1..53abf0af94 100644 --- a/packages/serializer-md/src/serializer/serializeMdNodes.ts +++ b/packages/serializer-md/src/serializer/serializeMdNodes.ts @@ -11,8 +11,6 @@ import { serializeMdNode, } from './serializeMdNode'; -const trimNewlines = (str?: string) => str?.replace(/^\s+|\s+$/g, '') ?? ''; - /** Convert Slate nodes to Markdown. */ export const serializeMdNodes = ( nodes: TDescendant[], @@ -51,15 +49,14 @@ export const serializeMdNodes = ( return ''; } - return trimNewlines( - nodes - ?.map((v) => - serializeMdNode(v, { - ...options, - customNodes: options.customNodes as any, - nodes: optionsNodes, - }) - ) - .join('') - ); + return nodes + ?.map((v) => + serializeMdNode(v, { + ...options, + customNodes: options.customNodes as any, + nodes: optionsNodes, + }) + ) + .join('') + .trim(); };