nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions and classes for everyday development needs.
29 lines (28 loc) • 986 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.zodiacPlugin = void 0;
const constants_1 = require("../constants");
/** * Plugin to inject `getZodiacSign` method */
const zodiacPlugin = (ChronosClass) => {
ChronosClass.prototype.getZodiacSign = function (options) {
const { birthDate, preset = 'western', custom } = options ?? {};
let month;
let date;
if (birthDate && birthDate?.includes('-')) {
[month, date] = birthDate.split('-').map(Number);
}
else {
month = this.isoMonth;
date = this.date;
}
const signs = custom ?? constants_1.ZODIAC_PRESETS[preset];
for (let i = signs.length - 1; i >= 0; i--) {
const [sign, [m, d]] = signs[i];
if (month > m || (month === m && date >= d)) {
return sign;
}
}
return signs[0][0];
};
};
exports.zodiacPlugin = zodiacPlugin;