X-Git-Url: https://git.r.bdr.sh/rbdr/forum/blobdiff_plain/32ec81f6370328833fd0ba3dfe1c2974ac775973..66dc4cae4cd37e82d773dc30be046d82d380ec4d:/app/utils/glyph_hash.js?ds=inline diff --git a/app/utils/glyph_hash.js b/app/utils/glyph_hash.js new file mode 100644 index 0000000..c074376 --- /dev/null +++ b/app/utils/glyph_hash.js @@ -0,0 +1,38 @@ +const internals = { + kSplitterRegex: /.{1,8}/g, + kGlyphs: [ + "☽", + "☆", + "♢", + "♡", + "╱", + "╲", + "╳", + "〰", + "▷", + "⏊", + "〒", + "▢", + "◯", + "⏃", + "⏀", + "⏆" + ] +}; + +// Return a glyph with color based on a 4 byte fragment of a UUIDv4 +const getGlyphHashFragment = function (uuidFragment) { + + const glyphIndex = parseInt(uuidFragment.substring(0,2), 16) % 16; + return { + glyph: internals.kGlyphs[glyphIndex], + color: `#${uuidFragment.substring(2,8)}` + } +}; + +// Return an array of glyphs based on a UUIDv4 +export const getGlyphHash = function (uuid) { + + const hashFragments = uuid.match(internals.kSplitterRegex); + return hashFragments.map(getGlyphHashFragment); +};