import { getSanitizeOptions, TEXT_WITH_HTML_RULES } from '@shared/core-utils'
const sanitizeOptions = getSanitizeOptions()
const sanitizeHtml = require('sanitize-html')
const markdownItEmoji = require('markdown-it-emoji/light')
const MarkdownItClass = require('markdown-it')
const markdownIt = new MarkdownItClass('default', { linkify: true, breaks: true, html: true })
markdownIt.enable(TEXT_WITH_HTML_RULES)
markdownIt.use(markdownItEmoji)
const toSafeHtml = text => {
  if (!text) return ''
  // Restore line feed
  const textWithLineFeed = text.replace(//g, '\r\n')
  // Convert possible markdown (emojis, emphasis and lists) to html
  const html = markdownIt.render(textWithLineFeed)
  // Convert to safe Html
  return sanitizeHtml(html, sanitizeOptions)
}
const mdToPlainText = text => {
  if (!text) return ''
  // Convert possible markdown (emojis, emphasis and lists) to html
  const html = markdownIt.render(text)
  // Convert to safe Html
  const safeHtml = sanitizeHtml(html, sanitizeOptions)
  return safeHtml.replace(/<[^>]+>/g, '')
                 .replace(/\n$/, '')
                 .replace(/\n/g, ', ')
}
// ---------------------------------------------------------------------------
export {
  toSafeHtml,
  mdToPlainText
}