horoscope

2.0.1 • Public • Published

npm version Build Status

♈️ ♉️ ♊️ ♋️ ♌️ ♍️ ♎️ ♏️ ♐️ ♑️ ♒️ ♓️

NPM

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.

Package Sidebar

Install

npm i horoscope

Weekly Downloads

1,262

Version

2.0.1

License

UNLICENSED

Last publish

Collaborators

  • gcwelborn