]> git.r.bdr.sh - rbdr/forum/blobdiff - src/lib/utils/glyph_hash.ts
Add svelte check
[rbdr/forum] / src / lib / utils / glyph_hash.ts
index b70456952184571e472bf529056c698e48df5e6e..7ac6448460d13e4f2256160cdc34996c44a7b344 100644 (file)
@@ -1,55 +1,37 @@
 export type GlyphHash = GlyphHashFragment[];
 type GlyphHashFragment = {
-  glyph: string,
-  color: string
+       glyph: string;
+       color: string;
 };
 
 const internals = {
-  kDehyphenRegex: /[-]/g,
-  kSplitterRegex: /.{1,8}/g,
-  kGlyphs: [
-    '☽',
-    '☆',
-    '♢',
-    '♡',
-    '╱',
-    '╲',
-    '╳',
-    '〰',
-    '▷',
-    '⏊',
-    '〒',
-    '▢',
-    '◯',
-    '⏃',
-    '⏀',
-    '⏆'
-  ],
-  unexpectedUUIDLength: class UnexpectedUUIDLength extends Error {
-    name = 'UnexpectedUUIDLength';
-    message = 'The provided string was not a valid UUIDv4, please provide a 32 character long string'
-  }
+       kDehyphenRegex: /[-]/g,
+       kSplitterRegex: /.{1,8}/g,
+       kGlyphs: ['☽', '☆', '♢', '♡', '╱', '╲', '╳', '〰', '▷', '⏊', '〒', '▢', '◯', '⏃', '⏀', '⏆'],
+       unexpectedUUIDLength: class UnexpectedUUIDLength extends Error {
+               name = 'UnexpectedUUIDLength';
+               message =
+                       'The provided string was not a valid UUIDv4, please provide a 32 character long string';
+       }
 };
 
 // Return a glyph with color based on a 4 byte fragment of a UUIDv4
 const getGlyphHashFragment = function (uuidFragment: string): GlyphHashFragment {
-
-  const glyphIndex = parseInt(uuidFragment.substring(0, 2), 16) % 16;
-  return {
-    glyph: internals.kGlyphs[glyphIndex],
-    color: `#${uuidFragment.substring(2, 8)}`
-  };
+       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: string): GlyphHash {
+       const dehyphenedUuid = uuid.replace(/[-]/g, '');
 
-  const dehyphenedUuid = uuid.replace(/[-]/g, '');
-
-  if (dehyphenedUuid.length !== 32) {
-    throw new internals.unexpectedUUIDLength();
-  }
+       if (dehyphenedUuid.length !== 32) {
+               throw new internals.unexpectedUUIDLength();
+       }
 
-  const hashFragments = dehyphenedUuid.match(internals.kSplitterRegex);
-  return hashFragments.map(getGlyphHashFragment);
+       const hashFragments = dehyphenedUuid.match(internals.kSplitterRegex);
+       return hashFragments.map(getGlyphHashFragment);
 };