JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 601
  • Score
    100M100P100Q94797F
  • License UNLICENSED

module to parse astrological/zodiac signs from birth month and year

Package Exports

  • horoscope

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (horoscope) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.