Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

iztro

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iztro - npm Package Compare versions

Comparing version 2.2.3 to 2.3.0

14

CHANGELOG.md

@@ -10,2 +10,16 @@ # 紫微斗数

## v2.3.0
- 🪄 功能(feature)
🇨🇳
- 支持全局插件 #165
- 支持全局配置 #165
🇺🇸
- support global plugin #165
- support global configuration #165
## v2.2.3

@@ -12,0 +26,0 @@

35

lib/astro/astro.d.ts

@@ -1,5 +0,36 @@

import { Language } from '../data/types';
import { Config, Language, Plugin } from '../data/types';
import { GenderName } from '../i18n';
import FunctionalAstrolabe from './FunctionalAstrolabe';
/**
* 批量加载插件
*
* @version v2.3.0
*
* @param plugins 插件方法数组
*/
export declare const loadPlugins: (plugins: Plugin[]) => void;
/**
* 加载单个插件
*
* @version v2.3.0
*
* @param plugin 插件方法
*/
export declare const loadPlugin: (plugin: Plugin) => void;
/**
* 全局配置四化和亮度
*
* 由于key和value都有可能是不同语言传进来的,
* 所以需会将key和value转化为对应的i18n key。
*
* @version 2.3.0
*
* @param {Config} param0 自定义配置
*/
export declare const config: ({ mutagens, brightness }: Config) => void;
export declare const getConfig: () => {
mutagens: Partial<Record<"jiaHeavenly" | "yiHeavenly" | "bingHeavenly" | "dingHeavenly" | "wuHeavenly" | "jiHeavenly" | "gengHeavenly" | "xinHeavenly" | "renHeavenly" | "guiHeavenly", ("lianzhenMaj" | "pojunMaj" | "wuquMaj" | "taiyangMaj" | "tianjiMaj" | "tianliangMaj" | "ziweiMaj" | "taiyinMaj" | "tiantongMaj" | "wenchangMin" | "jumenMaj" | "tanlangMaj" | "youbiMin" | "wenquMin" | "zuofuMin" | "huoxingMin" | "tianxiangMaj" | "lucunMin" | "si" | "bing" | "tianfuMaj" | "qishaMaj" | "tianmaMin" | "qingyangMin" | "tuoluoMin" | "lingxingMin" | "tiankuiMin" | "tianyueMin" | "dikongMin" | "dijieMin" | "tiankong" | "tianxing" | "tianyao" | "jieshen" | "yinsha" | "tianxi" | "tianguan" | "tianfu" | "tianku" | "tianxu" | "longchi" | "fengge" | "hongluan" | "guchen" | "guasu" | "feilian" | "posui" | "taifu" | "fenggao" | "tianwu" | "tianyue" | "santai" | "bazuo" | "engguang" | "tiangui" | "tiancai" | "tianshou" | "jiekong" | "xunzhong" | "xunkong" | "kongwang" | "jielu" | "yuede" | "tianshang" | "tianshi" | "tianchu" | "changsheng" | "muyu" | "guandai" | "linguan" | "diwang" | "shuai" | "mu" | "jue" | "tai" | "yang" | "boshi" | "lishi" | "qinglong" | "xiaohao" | "jiangjun" | "zhoushu" | "faylian" | "xishen" | "bingfu" | "dahao" | "fubing" | "guanfu" | "suijian" | "huiqi" | "sangmen" | "guansuo" | "gwanfu" | "longde" | "baihu" | "tiande" | "diaoke" | "jiangxing" | "panan" | "suiyi" | "xiishen" | "huagai" | "jiesha" | "zhaisha" | "tiansha" | "zhibei" | "xianchi" | "yuesha" | "wangshen" | "yunkui" | "yunyue" | "yunchang" | "yunqu" | "yunluan" | "yunxi" | "yunlu" | "yunyang" | "yuntuo" | "yunma" | "liukui" | "liuyue" | "liuchang" | "liuqu" | "liuluan" | "liuxi" | "liulu" | "liuyang" | "liutuo" | "liuma" | "nianjie")[]>>;
brightness: Partial<Record<"lianzhenMaj" | "pojunMaj" | "wuquMaj" | "taiyangMaj" | "tianjiMaj" | "tianliangMaj" | "ziweiMaj" | "taiyinMaj" | "tiantongMaj" | "wenchangMin" | "jumenMaj" | "tanlangMaj" | "youbiMin" | "wenquMin" | "zuofuMin" | "huoxingMin" | "tianxiangMaj" | "lucunMin" | "si" | "bing" | "tianfuMaj" | "qishaMaj" | "tianmaMin" | "qingyangMin" | "tuoluoMin" | "lingxingMin" | "tiankuiMin" | "tianyueMin" | "dikongMin" | "dijieMin" | "tiankong" | "tianxing" | "tianyao" | "jieshen" | "yinsha" | "tianxi" | "tianguan" | "tianfu" | "tianku" | "tianxu" | "longchi" | "fengge" | "hongluan" | "guchen" | "guasu" | "feilian" | "posui" | "taifu" | "fenggao" | "tianwu" | "tianyue" | "santai" | "bazuo" | "engguang" | "tiangui" | "tiancai" | "tianshou" | "jiekong" | "xunzhong" | "xunkong" | "kongwang" | "jielu" | "yuede" | "tianshang" | "tianshi" | "tianchu" | "changsheng" | "muyu" | "guandai" | "linguan" | "diwang" | "shuai" | "mu" | "jue" | "tai" | "yang" | "boshi" | "lishi" | "qinglong" | "xiaohao" | "jiangjun" | "zhoushu" | "faylian" | "xishen" | "bingfu" | "dahao" | "fubing" | "guanfu" | "suijian" | "huiqi" | "sangmen" | "guansuo" | "gwanfu" | "longde" | "baihu" | "tiande" | "diaoke" | "jiangxing" | "panan" | "suiyi" | "xiishen" | "huagai" | "jiesha" | "zhaisha" | "tiansha" | "zhibei" | "xianchi" | "yuesha" | "wangshen" | "yunkui" | "yunyue" | "yunchang" | "yunqu" | "yunluan" | "yunxi" | "yunlu" | "yunyang" | "yuntuo" | "yunma" | "liukui" | "liuyue" | "liuchang" | "liuqu" | "liuluan" | "liuxi" | "liulu" | "liuyang" | "liutuo" | "liuma" | "nianjie", ("li" | "wang" | "de" | "miao" | "ping" | "xian" | "bu")[]>>;
};
/**
* 通过阳历获取星盘信息

@@ -27,3 +58,3 @@ *

*/
export declare const bySolar: (solarDateStr: string, timeIndex: number, gender: GenderName, fixLeap?: boolean, language?: Language) => FunctionalAstrolabe;
export declare function bySolar<T extends FunctionalAstrolabe>(solarDateStr: string, timeIndex: number, gender: GenderName, fixLeap?: boolean, language?: Language): T;
/**

@@ -30,0 +61,0 @@ * 通过农历获取星盘信息

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.getMajorStarByLunarDate = exports.getMajorStarBySolarDate = exports.getSignByLunarDate = exports.getSignBySolarDate = exports.getZodiacBySolarDate = exports.byLunar = exports.astrolabeByLunarDate = exports.bySolar = exports.astrolabeBySolarDate = void 0;
exports.getMajorStarByLunarDate = exports.getMajorStarBySolarDate = exports.getSignByLunarDate = exports.getSignBySolarDate = exports.getZodiacBySolarDate = exports.byLunar = exports.astrolabeByLunarDate = exports.bySolar = exports.astrolabeBySolarDate = exports.getConfig = exports.config = exports.loadPlugin = exports.loadPlugins = void 0;
var lunar_lite_1 = require("lunar-lite");

@@ -16,3 +16,58 @@ var data_1 = require("../data");

var palace_1 = require("./palace");
var _plugins = [];
var _mutagens = {};
var _brightness = {};
/**
* 批量加载插件
*
* @version v2.3.0
*
* @param plugins 插件方法数组
*/
var loadPlugins = function (plugins) {
Array.prototype.push.apply(_plugins, plugins);
};
exports.loadPlugins = loadPlugins;
/**
* 加载单个插件
*
* @version v2.3.0
*
* @param plugin 插件方法
*/
var loadPlugin = function (plugin) {
_plugins.push(plugin);
};
exports.loadPlugin = loadPlugin;
/**
* 全局配置四化和亮度
*
* 由于key和value都有可能是不同语言传进来的,
* 所以需会将key和value转化为对应的i18n key。
*
* @version 2.3.0
*
* @param {Config} param0 自定义配置
*/
var config = function (_a) {
var mutagens = _a.mutagens, brightness = _a.brightness;
if (mutagens) {
Object.entries(mutagens).forEach(function (_a) {
var _b;
var key = _a[0], value = _a[1];
_mutagens[(0, i18n_1.kot)(key)] = (_b = value.map(function (item) { return (0, i18n_1.kot)(item); })) !== null && _b !== void 0 ? _b : [];
});
}
if (brightness) {
Object.entries(brightness).forEach(function (_a) {
var _b;
var key = _a[0], value = _a[1];
_brightness[(0, i18n_1.kot)(key)] = (_b = value.map(function (item) { return (0, i18n_1.kot)(item); })) !== null && _b !== void 0 ? _b : [];
});
}
};
exports.config = config;
var getConfig = function () { return ({ mutagens: _mutagens, brightness: _brightness }); };
exports.getConfig = getConfig;
/**
* 通过阳历获取星盘信息

@@ -31,3 +86,3 @@ *

if (fixLeap === void 0) { fixLeap = true; }
return (0, exports.bySolar)(solarDateStr, timeIndex, gender, fixLeap, language);
return bySolar(solarDateStr, timeIndex, gender, fixLeap, language);
};

@@ -45,3 +100,3 @@ exports.astrolabeBySolarDate = astrolabeBySolarDate;

*/
var bySolar = function (solarDateStr, timeIndex, gender, fixLeap, language) {
function bySolar(solarDateStr, timeIndex, gender, fixLeap, language) {
if (fixLeap === void 0) { fixLeap = true; }

@@ -105,4 +160,5 @@ language && (0, i18n_1.setLanguage)(language);

});
_plugins.map(function (plugin) { return result.use(plugin); });
return result;
};
}
exports.bySolar = bySolar;

@@ -143,3 +199,3 @@ /**

var solarDate = (0, lunar_lite_1.lunar2solar)(lunarDateStr, isLeapMonth);
return (0, exports.bySolar)(solarDate.toString(), timeIndex, gender, fixLeap, language);
return bySolar(solarDate.toString(), timeIndex, gender, fixLeap, language);
};

@@ -146,0 +202,0 @@ exports.byLunar = byLunar;

@@ -1,2 +0,2 @@

import { Astrolabe } from '../data/types';
import { Astrolabe, Plugin } from '../data/types';
import { EarthlyBranchName, PalaceName, StarName } from '../i18n';

@@ -14,2 +14,10 @@ import { IFunctionalStar } from '../star/FunctionalStar';

/**
* 插件注入方法
*
* @version v2.3.0
*
* @param plugin 插件函数
*/
use(plugin: Plugin): void;
/**
* 获取运限数据

@@ -109,3 +117,5 @@ *

palaces: IFunctionalPalace[];
private plugins;
constructor(data: Astrolabe);
use(plugin: Plugin): void;
star: (starName: StarName) => IFunctionalStar;

@@ -112,0 +122,0 @@ horoscope: (targetDate?: string | Date, timeIndexOfTarget?: number) => IFunctionalHoroscope;

@@ -184,2 +184,4 @@ "use strict";

var _this = this;
// 保存插件列表
this.plugins = [];
this.star = function (starName) {

@@ -265,4 +267,8 @@ var targetStar;

}
FunctionalAstrolabe.prototype.use = function (plugin) {
this.plugins.push(plugin);
plugin.apply(this);
};
return FunctionalAstrolabe;
}());
exports.default = FunctionalAstrolabe;

1

lib/astro/FunctionalPalace.d.ts

@@ -90,3 +90,2 @@ import { Palace } from '../data/types';

*
* @param from 源宫位
* @param to 目标宫位

@@ -93,0 +92,0 @@ * @param withMutagens 四化(禄、权、科、忌)

import { IFunctionalPalace } from '../../astro/FunctionalPalace';
import { EarthlyBranchName, FiveElementsClassName, HeavenlyStemName, PalaceName, StarName } from '../../i18n';
import { Brightness, EarthlyBranchName, FiveElementsClassName, HeavenlyStemName, PalaceName, StarName } from '../../i18n';
import FunctionalStar from '../../star/FunctionalStar';

@@ -154,1 +154,11 @@ import { HeavenlyStemAndEarthlyBranchDate, LunarDate } from 'lunar-lite/lib/types';

};
/**
* 定义一个接口,表示插件函数的类型
* */
export type Plugin = () => void;
export type ConfigMutagens = Partial<Record<HeavenlyStemName, StarName[]>>;
export type ConfigBrightness = Partial<Record<StarName, Brightness[]>>;
export type Config = {
mutagens?: ConfigMutagens;
brightness?: ConfigBrightness;
};

@@ -8,2 +8,15 @@ "use strict";

var lunar_lite_1 = require("lunar-lite");
var astro_1 = require("../astro");
var getTargetMutagens = function (heavenlyStem) {
var _a, _b;
var mutagens = (0, astro_1.getConfig)().mutagens;
var result;
if (mutagens && mutagens[heavenlyStem]) {
result = (_a = mutagens[heavenlyStem]) !== null && _a !== void 0 ? _a : [];
}
else {
result = (_b = data_1.heavenlyStems[heavenlyStem].mutagen) !== null && _b !== void 0 ? _b : [];
}
return result;
};
/**

@@ -49,3 +62,8 @@ * 用于处理索引,将索引锁定在 0~max 范围内

var star = (0, i18n_1.kot)(starName);
return (0, i18n_1.t)((_a = data_1.STARS_INFO[star]) === null || _a === void 0 ? void 0 : _a.brightness[(0, exports.fixIndex)(index)]);
var brightness = (0, astro_1.getConfig)().brightness;
var targetBrightness = brightness[star] ? brightness[star] : (_a = data_1.STARS_INFO[star]) === null || _a === void 0 ? void 0 : _a.brightness;
if (!targetBrightness) {
return '';
}
return (0, i18n_1.t)(targetBrightness[(0, exports.fixIndex)(index)]);
};

@@ -56,3 +74,4 @@ exports.getBrightness = getBrightness;

var starKey = (0, i18n_1.kot)(starName);
return (0, i18n_1.t)(data_1.MUTAGEN[data_1.heavenlyStems[heavenlyStem].mutagen.indexOf(starKey)]);
var target = getTargetMutagens(heavenlyStem);
return (0, i18n_1.t)(data_1.MUTAGEN[target.indexOf(starKey)]);
};

@@ -62,3 +81,4 @@ exports.getMutagen = getMutagen;

var heavenlyStem = (0, i18n_1.kot)(heavenlyStemName, 'Heavenly');
return data_1.heavenlyStems[heavenlyStem].mutagen.map(function (star) { return (0, i18n_1.t)(star); });
var target = getTargetMutagens(heavenlyStem);
return target.map(function (star) { return (0, i18n_1.t)(star); });
};

@@ -65,0 +85,0 @@ exports.getMutagensByHeavenlyStem = getMutagensByHeavenlyStem;

{
"name": "iztro",
"version": "2.2.3",
"version": "2.3.0",
"description": "轻量级紫微斗数星盘生成库。可以通过出生年月日获取到紫微斗数星盘信息、生肖、星座等信息。A lightweight kit to astrolabe generator of The Purple Star Astrology (Zi Wei Dou Shu). The Purple Star Astrology(Zi Wei Dou Shu) is a Chinese ancient astrology. You're able to get your horoscope and personality from the astrolabe",

@@ -74,4 +74,4 @@ "main": "lib/index.js",

"i18next": "^23.5.1",
"lunar-lite": "^0.1.1"
"lunar-lite": "^0.1.2"
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc