Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/echosoar/mod-info
Get the latest version update prompt of the node module (npm). 获取 node 模块最新版本更新提示
https://github.com/echosoar/mod-info
node-module update-notifier
Last synced: 25 days ago
JSON representation
Get the latest version update prompt of the node module (npm). 获取 node 模块最新版本更新提示
- Host: GitHub
- URL: https://github.com/echosoar/mod-info
- Owner: echosoar
- License: mit
- Created: 2022-02-06T12:29:19.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-06-02T06:46:14.000Z (over 2 years ago)
- Last Synced: 2024-10-07T04:48:13.213Z (29 days ago)
- Topics: node-module, update-notifier
- Language: TypeScript
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mod-info
Get the latest version update prompt of the node module (npm).获取 node 模块最新版本更新提示
[![npm](https://img.shields.io/npm/v/mod-info.svg?style=flat)](https://www.npmjs.org/package/mod-info)
[![install size](https://packagephobia.com/badge?p=mod-info)](https://packagephobia.com/result?p=mod-info)
![node-current (tag)](https://img.shields.io/node/v/mod-info/latest)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/echosoar/mod-info/master/LICENSE)
## 使用
```bash
$ npm i mod-info --save
``````ts
import mi from 'mod-info';
/*
@params module name
@params module current version
@params? config 详见类型定义@return info 详见类型定义
*/
const info = await mi('test-mode-info', '1.1.4');
/*
{
update: true, // 是否存在更新的版本
version: '1.2.4' // 更新的版本号
tips: [ // 一些更新内容提示
'一些更新内容提示'
]
}
*/
```
## 类型定义
### IConfig
```ts
type ILevelConfig = 'major' | 'minor' | 'patch';
interface IConfig {
// 配置更新提示等级
// 配置为 major 时只有发布更高 major 版本了才认为更新
// 配置为 minor 时只有发布了相同 major 版本,且 minor 版本更高才认为更新
// 配置为 patch 时只有发布了相同 major 和 minor 版本,且 patch 版本更高才认为更新
// 默认值为 ['major', 'minor', 'patch']
level?: ILevelConfig[];// 检测更新间隔,单位为 毫秒,默认为 24 * 60 * 60 * 1000,即一天内只检测一次
timeout?: number;// 是否忽略非正式版本的更新,例如 1.2-beta.3 这种 beta 版本,默认为 true
ignoreInformalVersion?: boolean;
}
```
### IResult
```ts
interface IResult {
// 是否存在(当前检测规则 level 下的)最新版本
update: boolean;// 如果存在最新版本,它的版本号是
version: string;
// 当前版本匹配到的 更新提示信息 列表
tips: string[];
}
```## 更新提示信息配置
在模块的 `package.json` 中通过 `module-info-tips` 可以配置 `更新提示信息`,使用 `mod-info` 检测版本时会获取到这些提示信息。
更新提示信息可以通过 `match` 和 `ignore` 两个字段来匹配或忽略在某些版本下提示,同时支持使用 `*` 或 `x` 来匹配任意版本,例如:
```json
{
"name": "test-mode-info",
"version": "1.2.4",
"module-info-tips": [
{
"match": "0",
"ignore": "0.1.*",
"tip": "0.x tip"
},
{
"match": ["1.2", "1.3"],
"ignore": ["1.2.3"],
"tip": "1.x tip"
},
{
"match": "*",
"ignore": "*.1",
"tip": "x tip"
}
]
}```
---
MIT LICENSE