aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/bidi-js/src/brackets.js
blob: c598bc13330fbf7191650aa8e39cacfcb26193bc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import data from './data/bidiBrackets.data.js'
import { parseCharacterMap } from './util/parseCharacterMap.js'

let openToClose, closeToOpen, canonical

function parse () {
  if (!openToClose) {
    //const start = performance.now()
    let { map, reverseMap } = parseCharacterMap(data.pairs, true)
    openToClose = map
    closeToOpen = reverseMap
    canonical = parseCharacterMap(data.canonical, false).map
    //console.log(`brackets parsed in ${performance.now() - start}ms`)
  }
}

export function openingToClosingBracket (char) {
  parse()
  return openToClose.get(char) || null
}

export function closingToOpeningBracket (char) {
  parse()
  return closeToOpen.get(char) || null
}

export function getCanonicalBracket (char) {
  parse()
  return canonical.get(char) || null
}