safe-code-point
Version:
Ascertains whether a Unicode code point is 'safe' for the purposes of encoding binary data
17 lines (16 loc) • 568 B
JavaScript
// Returns an array of code points
// e.g. "0000" becomes `[0]`
// e.g. "0000..000A" becomes `[0, ..., 10]`
export default str => {
const components = str.split('..')
if (components.length !== 1 && components.length !== 2) {
throw new Error('Could not dehex this string')
}
const lower = parseInt(components[0], 16)
const upper = components.length === 2 ? parseInt(components[1], 16) : lower
const codePoints = []
for (let codePoint = lower; codePoint <= upper; codePoint++) {
codePoints.push(codePoint)
}
return codePoints
}