open-index/open-npm huggingface dataset:
npm package: @qubit-ltd/common-filter
Description: A JavaScript ES7 library of common filters
Author: Haixing Hu
Latest version: 1.11.3

# @qubit-ltd/common-filter

[![npm包](https://img.shields.io/npm/v/@qubit-ltd/common-filter.svg)](https://npmjs.com/package/@qubit-ltd/common-filter)
[![许可证](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![English Document](https://img.shields.io/badge/Document-English-blue.svg)](README.md)
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/qubit-ltd/js-common-filter/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/qubit-ltd/js-common-filter/tree/master)
[![测试覆盖率](https://coveralls.io/repos/github/qubit-ltd/js-common-filter/badge.svg?branch=master)](https://coveralls.io/github/qubit-ltd/js-common-filter?branch=master)

[@qubit-ltd/common-filter] 是一个JavaScript ES6库，提供各种常用的过滤和格式化功能，用于处理日期、时间、时长、货币值等多种数据类型。

## 目录

- [安装](#安装)
- [功能特点](#功能特点)
- [使用方法](#使用方法)
- [API概览](#api概览)
- [贡献](#贡献)
- [许可证](#许可证)

## <span id="安装">安装</span>

```bash
# 使用 npm
npm install @qubit-ltd/common-filter

# 使用 yarn
yarn add @qubit-ltd/common-filter
```

## <span id="功能特点">功能特点</span>

- 支持多种模式的日期和时间格式化
- 支持不同时区间的转换
- 支持多种样式的时长格式化（包括中文格式）
- 货币值格式化
- 是/否，有/无等布尔值过滤
- 敏感数据隐私保护遮罩
- 数组到字符串的转换
- 百分比格式化
- 以及更多...

## <span id="使用方法">使用方法</span>

```javascript
import { formatDate, formatMoney, formatChineseDuration } from '@qubit-ltd/common-filter';

// 格式化日期
const date = new Date();
console.log(formatDate(date)); // 例如: "2023-05-25"

// 格式化货币
console.log(formatMoney(1234.56)); // 例如: "1,234.56"

// 以中文格式化时长
console.log(formatChineseDuration(3661)); // 例如: "1小时1分1秒"
```

## <span id="api概览">API概览</span>

本库提供以下主要类别的过滤器：

### 日期和时间格式化

- `formatDate`: 格式化日期
- `formatDatetime`: 格式化带时间的日期
- `formatDatetimeWithPattern`: 使用自定义模式格式化日期
- `formatChineseDate`: 以中文风格格式化日期
- `formatChineseDatetime`: 以中文风格格式化带时间的日期
- `formatChineseLocalDatetime`: 以中文本地格式格式化带时间的日期

### 时区处理

- `formatAtTimezone`: 在特定时区格式化日期
- `formatToTimezone`: 转换并格式化日期到特定时区

### 时长格式化

- `formatDuration`: 格式化以秒为单位的时长
- `formatChineseDuration`: 以中文风格格式化时长
- `formatDurationBetween`: 格式化两个日期之间的时长
- `formatChineseDurationBetween`: 以中文风格格式化两个日期之间的时长

### 值格式化

- `formatMoney`: 格式化货币值
- `formatPercent`: 格式化百分比值
- `formatYesNo`: 将布尔值格式化为"是/否"
- `formatYesNoUnknown`: 将值格式化为"是/否/未知"
- `formatHasHasnot`: 将布尔值格式化为"有/无"

### 文本处理

- `formatPrivacyMask`: 遮罩敏感文本数据
- `formatRemoveMidSpace`: 移除文本中间的空格
- `formatArrayToString`: 将数组转换为字符串表示

完整的API文档，请参考`doc`目录中生成的JSDoc文档。

## <span id="贡献">贡献</span>

如果您发现任何问题或有改进建议，欢迎在[GitHub仓库]提出issue或提交pull request。

## <span id="许可证">许可证</span>

[@qubit-ltd/common-filter]基于Apache 2.0许可证发布。
详情请参阅[LICENSE](LICENSE)文件。

[@qubit-ltd/common-filter]: https://npmjs.com/package/@qubit-ltd/common-filter
[GitHub仓库]: https://github.com/qubit-ltd/js-common-filter
npm package: @qubit-ltd/config
Description: A JavaScript library providing a global configuration object for Apps.
Author: Haixing Hu
Latest version: 1.2.6

# @qubit-ltd/config

[![npm package](https://img.shields.io/npm/v/@qubit-ltd/config.svg)](https://npmjs.com/package/@qubit-ltd/config)
[![License](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![English Document](https://img.shields.io/badge/document-English-blue.svg)](README.md)
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/qubit-ltd/js-config/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/qubit-ltd/js-config/tree/master)
[![Coverage Status](https://coveralls.io/repos/github/qubit-ltd/js-config/badge.svg?branch=master)](https://coveralls.io/github/qubit-ltd/js-config?branch=master)

[@qubit-ltd/config] 是一个为应用程序提供全局配置对象的JavaScript库。

## <span id="installation">安装</span>

使用npm:

```bash
npm install @qubit-ltd/config
```

使用yarn:

```bash
yarn add @qubit-ltd/config
```

## <span id="usage">使用方法</span>

```javascript
import config from '@qubit-ltd/config';

// 设置配置
config.set('app.name', 'My App');
config.set('app.version', '1.0.0');
config.set('database.host', 'localhost');
config.set('database.port', 3306);

// 获取配置
const appName = config.get('app.name');         // 'My App'
const dbConfig = config.get('database');        // { host: 'localhost', port: 3306 }
const apiKey = config.get('api.key', 'default'); // 如果api.key不存在，返回'default'

// 检查配置是否存在
const hasAppName = config.has('app.name');      // true
const hasApiKey = config.has('api.key');        // false

// 删除配置
config.remove('app.name');
const appNameAfterRemove = config.has('app.name'); // false

// 合并配置
config.merge({
  app: {
    name: 'New App Name',
    theme: 'dark'
  }
});

// 合并环境变量
// 例如：使用Node.js的环境变量
config.mergeEnv(process.env);
// 或者在Vite项目中使用
// config.mergeEnv(import.meta.env, 'VITE_');

// 清空所有配置
config.clear();
```

## <span id="api">API</span>

### `config.has(keyPath)`

检查指定路径的配置是否存在。

- `keyPath`: 字符串，配置的路径，支持点号和数组索引，如`'app.name'`或`'database.users[0].name'`。
- 返回：布尔值，表示配置是否存在。

### `config.get(keyPath, defaultValue)`

获取指定路径的配置值。

- `keyPath`: 字符串，配置的路径，支持点号和数组索引。
- `defaultValue`: 可选，如果配置不存在时返回的默认值。
- 返回：配置值，如果不存在且未提供默认值则返回`undefined`。

### `config.set(keyPath, value)`

设置指定路径的配置值。

- `keyPath`: 字符串，配置的路径，支持点号和数组索引。
- `value`: 要设置的值。

### `config.remove(keyPath)`

删除指定路径的配置。

- `keyPath`: 字符串，配置的路径，支持点号和数组索引。

### `config.clear()`

清空所有配置。

### `config.merge(cfg)`

合并配置对象。

- `cfg`: 对象，要合并的配置对象。

### `config.mergeEnv(env, removePrefix)`

合并环境变量。

- `env`: 对象，包含环境变量的对象，通常是`process.env`或`import.meta.env`。
- `removePrefix`: 可选，字符串，要从环境变量名中移除的前缀。

## <span id="contributing">贡献</span>

如果您发现任何问题或有改进建议，请随时在[GitHub仓库]开issue或提交pull request。

## <span id="license">许可证</span>

[@qubit-ltd/config]在Apache 2.0许可证下分发。
有关更多详细信息，请参见[LICENSE](LICENSE)文件。

[@qubit-ltd/config]: https://npmjs.com/package/@qubit-ltd/config
[GitHub仓库]: https://github.com/qubit-ltd/js-config
npm package: @qubit-ltd/jsdoc-minami
Description: Clean and minimal JSDoc 3 Template / Theme
Author: Haixing Hu
Latest version: 1.5.3

# Minami

A clean, responsive documentation template theme for JSDoc 3.

![Minami Screenshot](http://i.imgur.com/rPCIFqT.png)


## Uses

- [the Taffy Database library](http://taffydb.com/)
- [Underscore Template library](http://underscorejs.org/#template)
- [Montserrat](https://fonts.google.com/specimen/Montserrat) & Helvetica Neue


## Install

```bash
$ npm install --save-dev minami
```


## Usage

Clone repository to your designated `jsdoc` template directory, then:

```bash
$ jsdoc entry-file.js -t path/to/minami
```


### Node.js Dependency

In your projects `package.json` file add a generate script:

```json
"scripts": {
  "generate-docs": "node_modules/.bin/jsdoc --configure .jsdoc.json --verbose"
}
```

In your `.jsdoc.json` file, add a template option.

```json
"opts": {
  "template": "node_modules/minami"
}
```


### Example JSDoc Config

```json
{
    "tags": {
        "allowUnknownTags": true,
        "dictionaries": ["jsdoc"]
    },
    "source": {
        "include": ["lib", "package.json", "README.md"],
        "includePattern": ".js$",
        "excludePattern": "(node_modules/|docs)"
    },
    "plugins": [
        "plugins/markdown"
    ],
    "templates": {
        "cleverLinks": false,
        "monospaceLinks": true,
        "useLongnameInNav": false,
        "showInheritedInNav": true
    },
    "opts": {
        "destination": "./docs/",
        "encoding": "utf8",
        "private": true,
        "recurse": true,
        "template": "./node_modules/minami"
    }
}
```

Specifying a number for useLongnameInNav it will be the max number of path elements to show in nav (starting from Class).


## License

Licensed under the Apache2 license.