UNPKG

iztro

Version:

轻量级紫微斗数星盘生成库。可以通过出生年月日获取到紫微斗数星盘信息、生肖、星座等信息。This is a lightweight kit for generating astrolabes for Zi Wei Dou Shu (The Purple Star Astrology), an ancient Chinese astrology. It allows you to obtain your horoscope and personality analysis.

158 lines (157 loc) 5.37 kB
import { Astrolabe, Plugin } from '../data/types'; import { EarthlyBranchName, PalaceName, StarName } from '../i18n'; import { IFunctionalStar } from '../star/FunctionalStar'; import { IFunctionalPalace } from './FunctionalPalace'; import { IFunctionalSurpalaces } from './FunctionalSurpalaces'; import { IFunctionalHoroscope } from './FunctionalHoroscope'; /** * 星盘类接口定义。 * * 文档地址:https://docs.iztro.com/posts/astrolabe.html#functionalastrolabe */ export interface IFunctionalAstrolabe extends Astrolabe { /** * 插件注入方法 * * @version v2.3.0 * * @param plugin 插件函数 */ use(plugin: Plugin): void; /** * 获取运限数据 * * @version v0.2.0 * * @param date 阳历日期【可选】,默认为调用时的日期 * @param timeIndex 时辰索引【可选】,默认会自动读取当前时间的时辰 * @returns 运限数据 */ horoscope: (date?: string | Date, timeIndex?: number) => IFunctionalHoroscope; /** * 通过星耀名称获取到当前星耀的对象实例 * * @version v1.2.0 * * @param starName 星耀名称 * @returns 星耀实例 */ star: (starName: StarName) => IFunctionalStar; /** * 获取星盘的某一个宫位 * * @version v1.0.0 * * @param indexOrName 宫位索引或者宫位名称 * @returns 对应的宫位数据,若没有找到则返回undefined */ palace: (indexOrName: number | PalaceName) => IFunctionalPalace | undefined; /** * 获取三方四正宫位,所谓三方四正就是传入的目标宫位,以及其对宫,财帛位和官禄位,总共四个宫位 * * @version v1.1.0 * * @param indexOrName 宫位索引或者宫位名称 * @returns 三方四正宫位 */ surroundedPalaces: (indexOrName: number | PalaceName) => IFunctionalSurpalaces; /** * * 判断某一个宫位三方四正是否包含目标星耀,必须要全部包含才会返回true * * @version v1.0.0 * * @param indexOrName 宫位索引或者宫位名称 * @param stars 星耀名称数组 * @returns true | false */ isSurrounded: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; /** * 判断三方四正内是否有传入星耀的其中一个,只要命中一个就会返回true * * @version v1.1.0 * @deprecated v1.2.0 * * @param indexOrName 宫位索引或者宫位名称 * @param stars 星耀名称数组 * @returns true | false */ isSurroundedOneOf: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; /** * 判断某一个宫位三方四正是否不含目标星耀,必须要全部都不在三方四正内含才会返回true * * @version v1.1.0 * @deprecated v1.2.0 * * @param indexOrName 宫位索引或者宫位名称 * @param stars 星耀名称数组 * @returns true | false */ notSurrounded: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; } /** * 星盘类。 * * 文档地址:https://docs.iztro.com/posts/astrolabe.html#functionalastrolabe */ export default class FunctionalAstrolabe implements IFunctionalAstrolabe { gender: string; solarDate: string; lunarDate: string; chineseDate: string; rawDates: { lunarDate: import("lunar-lite/lib/types").LunarDate; chineseDate: import("lunar-lite/lib/types").HeavenlyStemAndEarthlyBranchDate; }; time: string; timeRange: string; sign: string; zodiac: string; earthlyBranchOfSoulPalace: EarthlyBranchName; earthlyBranchOfBodyPalace: EarthlyBranchName; soul: StarName; body: StarName; fiveElementsClass: import("../i18n").FiveElementsClassName; palaces: IFunctionalPalace[]; copyright: string; private plugins; constructor(data: Astrolabe); use(plugin: Plugin): void; star: (starName: StarName) => IFunctionalStar; horoscope: (targetDate?: string | Date, timeIndexOfTarget?: number) => IFunctionalHoroscope; palace: (indexOrName: number | PalaceName) => IFunctionalPalace | undefined; surroundedPalaces: (indexOrName: number | PalaceName) => IFunctionalSurpalaces; /** * @deprecated 此方法已在`v1.2.0`废弃,请用下列方法替换 * * @example * // AS IS * astrolabe.isSurrounded(0, ["紫微"]); * * // TO BE * astrolabe.surroundedPalaces(0).have(["紫微"]); */ isSurrounded: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; /** * @deprecated 此方法已在`v1.2.0`废弃,请用下列方法替换 * * @example * // AS IS * astrolabe.isSurroundedOneOf(0, ["紫微"]); * * // TO BE * astrolabe.surroundedPalaces(0).haveOneOf(["紫微"]); */ isSurroundedOneOf: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; /** * @deprecated 此方法已在`v1.2.0`废弃,请用下列方法替换 * * @example * // AS IS * astrolabe.notSurrounded(0, ["紫微"]); * * // TO BE * astrolabe.surroundedPalaces(0).notHave(["紫微"]); */ notSurrounded: (indexOrName: number | PalaceName, stars: StarName[]) => boolean; }