diff options
| author | Michael Williamson <mike@zwobble.org> | 2021-01-16 15:20:08 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2021-01-16 15:20:08 +0000 |
| commit | 3db30ec2e16a06a5f6dd387b51d61bd5a8a67c1e (patch) | |
| tree | 906d23303c6e7037ddc6df6ed7c29033291233ae | |
| parent | de4270308f68086b266fcf8f13b788b593e6e0a3 (diff) | |
Support finding dingbats by decimal string
| -rw-r--r-- | js/src/index.ts | 15 | ||||
| -rw-r--r-- | js/test/tests.ts | 16 |
2 files changed, 21 insertions, 10 deletions
diff --git a/js/src/index.ts b/js/src/index.ts index cba42a5..b808cba 100644 --- a/js/src/index.ts +++ b/js/src/index.ts @@ -4,19 +4,22 @@ interface UnicodeScalarValue { codePoint: number; } +const dingbatsByDec: {[key: string]: UnicodeScalarValue} = {}; const dingbatsByHex: {[key: string]: UnicodeScalarValue} = {}; for (const dingbat of dingbats) { - dingbatsByHex[dingbat["Typeface name"] + "_" + dingbat["Dingbat hex"]] = { + const scalarValue = { codePoint: parseInt(dingbat["Unicode dec"], 10), }; + + dingbatsByDec[dingbat["Typeface name"] + "_" + dingbat["Dingbat dec"]] = scalarValue; + dingbatsByHex[dingbat["Typeface name"] + "_" + dingbat["Dingbat hex"]] = scalarValue; } -interface Input { - typeface: string; - hex: string; +export function hex(typeface: string, hex: string): UnicodeScalarValue | undefined { + return dingbatsByHex[typeface + "_" + hex.toUpperCase()]; } -export default function dingbatToUnicode(input: Input) { - return dingbatsByHex[input.typeface + "_" + input.hex.toUpperCase()]; +export function dec(typeface: string, dec: string): UnicodeScalarValue | undefined { + return dingbatsByDec[typeface + "_" + dec]; } diff --git a/js/test/tests.ts b/js/test/tests.ts index 0d78235..e92eedc 100644 --- a/js/test/tests.ts +++ b/js/test/tests.ts @@ -1,9 +1,9 @@ import assert from "assert"; -import dingbatToUnicode from "../"; +import * as dingbatToUnicode from "../"; export function canConvertFromHexDingbatToUnicode() { - const result = dingbatToUnicode({typeface: "Wingdings", hex: "29"}); + const result = dingbatToUnicode.hex("Wingdings", "29"); assert.deepStrictEqual(result, { codePoint: 0x2706, @@ -11,7 +11,7 @@ export function canConvertFromHexDingbatToUnicode() { } export function canConvertFromUppercaseHexDingbatToUnicode() { - const result = dingbatToUnicode({typeface: "Wingdings", hex: "3E"}); + const result = dingbatToUnicode.hex("Wingdings", "3E"); assert.deepStrictEqual(result, { codePoint: 0x2707, @@ -19,9 +19,17 @@ export function canConvertFromUppercaseHexDingbatToUnicode() { } export function canConvertFromLowercaseHexDingbatToUnicode() { - const result = dingbatToUnicode({typeface: "Wingdings", hex: "3e"}); + const result = dingbatToUnicode.hex("Wingdings", "3e"); assert.deepStrictEqual(result, { codePoint: 0x2707, }); } + +export function canConvertFromDecimalDingbatToUnicode() { + const result = dingbatToUnicode.dec("Wingdings", "41"); + + assert.deepStrictEqual(result, { + codePoint: 0x2706, + }); +} |
