OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-editor-parser / src / document / to-document-trim.js

24 lines · javascript ref:
module.exports = { documentTrim: o }
const { NODE_TYPE: t } = require("../constants"),
  { TEXT: n, HARD_BREAK: e } = t
function o(t) {
  if (!t?.content?.length) return t
  let o = null,
    c = null,
    l = 0,
    r = 0
  for (let n = 0; n < t.content.length; n++) {
    const i = t.content[n]
    if (!i.content) continue
    const u = i.content || []
    ;(o || u?.[0]?.type === e || ((o = u[0]), (l = n)),
      u?.[u.length - 1]?.type !== e && ((c = u[u.length - 1]), (r = n)))
  }
  return (
    (t.content = t.content.slice(l, r + 1)),
    o?.type === n && (o.text = o.text.trimStart()),
    c?.type === n && (c.text = c.text.trimEnd()),
    t
  )
}