UNPKG

lunisolar

Version:

专业农历库,支持公历阴历互转,支持各类黄历数据查询,如八字四柱、阴历、神煞宜忌、时辰吉凶、建除十二神、胎神占方、五行纳音等。支持自定义插件。

74 lines (62 loc) 2.52 kB
declare namespace lunisolar { export type MarkersSettingItem = { name: string tag?: string | string[] data?: { [key: string]: any } } export type MarkersSetting = { format: string | MarkerFormatFn markers: { [key: string]: MarkersSettingItem | MarkersSettingItem[] } }[] type MarkerFormatFn = (lsr: lunisolar.Lunisolar) => string | null type MarkerSetting = Pick<MarkersSettingItem, 'name'> & Partial<Omit<MarkersSettingItem, 'name'>> type MarkersFnListItem = { fn: MarkerFormatFn; markers: MarkersMatcherMap } type MarkersStore = { formatList: string[] formatMap: Map<string, MarkersMatcherMap> fnList: MarkersFnListItem[] } type StoreMarker = Pick<MarkersSettingItem, 'name' | 'data'> & { tag: string[] } type MarkersMatcherMap = Map<string, StoreMarker[]> type LsrGetMarkersFn = (tag?: string | string[]) => StoreMarker[] type LsrMarkers = { _store: StoreMarker[] get: LsrGetMarkersFn } type MarkersFilterFn = (item: StoreMarker, index?: number, arr?: StoreMarker[]) => boolean export class Markers { _list: StoreMarker[] | null static readonly store: MarkersStore readonly storeMarkers: StoreMarker[] readonly storeMarkersFromGlobal: StoreMarker[] readonly lsr: lunisolar.Lunisolar static add(markersSetting: MarkersSetting, tags?: string | string[]): void static clean(): void static cleanFnList(): void static remove(format: string, matcher?: string, names?: string | string[]): void static removeByTag(tags: string | string[]): void static removeByName(names: string | string[]): void constructor(lsr: lunisolar.Lunisolar): Markers init(): void add(markers: MarkersSettingItem[], tags?: string | string[]): Markers remove(name: string | string[], isTag?: Boolean, flag?: 0 | 1 | 2): Markers clean(flag?: 0 | 1 | 2): Markers reset(): Markers [Symbol.iterator](): IteratorInterface get list(): StoreMarker[] filter(fn: Partial<MarkersSettingItem> | MarkersFilterFn): StoreMarker[] find(fn: Partial<MarkersSettingItem> | MarkersFilterFn): StoreMarker | undefined toString(): string } } type MarkersStore = lunisolar.MarkersStore type StoreMarker = lunisolar.StoreMarker type MarkersSetting = lunisolar.MarkersSetting type MarkersSettingItem = lunisolar.MarkersSettingItem type MarkersMatcherMap = lunisolar.MarkersMatcherMap type MarkersFilterFn = lunisolar.MarkersFilterFn type MarkersFnListItem = lunisolar.MarkersFnListItem