diff --git a/index.js b/index.js index c27ba24..c0ed676 100644 --- a/index.js +++ b/index.js @@ -1,20 +1,35 @@ module.exports = function hexToRgb (hex) { - + if (hex.charAt && hex.charAt(0) === '#') { - hex = removeHash(hex); + hex = removeHash(hex) + } + + if (hex.length === 3) { + hex = expand(hex) } - - var bigint = parseInt(hex, 16); - var r = (bigint >> 16) & 255; - var g = (bigint >> 8) & 255; - var b = bigint & 255; - return [r, g, b]; -}; + var bigint = parseInt(hex, 16) + var r = (bigint >> 16) & 255 + var g = (bigint >> 8) & 255 + var b = bigint & 255 + + return [r, g, b] +} function removeHash (hex) { - - var arr = hex.split(''); - arr.shift(); - return arr.join(''); -} \ No newline at end of file + + var arr = hex.split('') + arr.shift() + return arr.join('') +} + +function expand (hex) { + + return hex + .split('') + .reduce(function (accum, value) { + + return accum.concat([value, value]) + }, []) + .join('') +} diff --git a/package.json b/package.json index 5f311f2..af16fe6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hex-to-rgb", - "version": "1.0.0", + "version": "1.0.1", "description": "Convert color hex value to rgb", "main": "index.js", "scripts": { diff --git a/test.js b/test.js index 97b32ea..41f30bd 100644 --- a/test.js +++ b/test.js @@ -2,7 +2,7 @@ var hexToRgb = require('./index'); var test = require('tape'); test('converts', function (t) { - + t.deepEqual(hexToRgb('000000'), [0,0,0], 'black converted'); t.deepEqual(hexToRgb('000'), [0,0,0], 'black shorthand converted'); t.deepEqual(hexToRgb('#ffffff'), [255,255,255], 'white converted with hash');