Some checks failed
Test Suite / code-quality (push) Has been cancelled
Test Suite / unit-tests (3.11) (push) Has been cancelled
Test Suite / unit-tests (3.12) (push) Has been cancelled
Test Suite / security-scan (push) Has been cancelled
Test Suite / integration-tests (push) Has been cancelled
Test Suite / e2e-tests (push) Has been cancelled
Test Suite / performance-tests (push) Has been cancelled
Test Suite / test-summary (push) Has been cancelled
31 lines
785 B
JavaScript
31 lines
785 B
JavaScript
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
|
|
}
|