horoscope
v2.0.1
Published
module to parse astrological/zodiac signs from birth month and year
Downloads
2,966
Readme
♈️ ♉️ ♊️ ♋️ ♌️ ♍️ ♎️ ♏️ ♐️ ♑️ ♒️ ♓️
Horoscope.js is a compact, performant NPM module for processing horoscope & zodiac signs from dates. Weighing in @ 5kb, it's only dependency is the memoize function in lodash.
installation
$ npm install horoscope
// then
var getSign = require('horoscope').getSign;
var getZodiac = require('horoscope').getZodiac;
// or
import { getSign, getZodiac } from 'horoscope';
getSign
return astrological sign from {month, day}
console.log(horoscope.getSign({month: 7, day: 25 }))
// 'Leo'
console.log(horoscope.getSign({month: 12, day: 21}))
// 'Sagittarius'
getZodiac
return zodiac sign from year
console.log(horoscope.getZodiac(2015))
// 'Goat'
console.log(horoscope.getZodiac(2016))
// 'Monkey'
overrideErrors
the last argument of both functions, overrideErrors, is optional (defaulting to false). if set to true, horoscope methods will not throw error messages, but return null.
console.log(horoscope.getSign(-7, 55))
// 'Horoscope.js/getSign(): month should be numbers 1-12 and days should be numbers between 1-31'
console.log(horoscope.getSign(-7, 55, true))
// null
console.log(horoscope.getZodiac('twenty-twenty'))
// 'Horoscope.js/getZodiac(): Year provided isn't valid'
console.log(horoscope.getZodiac('twenty-twenty', true))
// null
example:
simple demo using webpack, the result of which is located @ here
limitations:
- getZodiac: returns errors/null if negative or more than 4 digits
- getHoroscope: leap year of feb. 29th is available for every year - don't assume a null/error will be thrown.
- because both functions are memoized, you will not be able to alternate between true/false for overrideErrors.