open-index/open-npm huggingface dataset:
npm package: @spore-ui/dev-utils
Description: 提供项目配置所需的基础工具函数
Author: pillar0514@gmail.com
Latest version: 1.1.0

# dev-utils

![npm](https://img.shields.io/npm/v/@spore-ui/dev-utils)
![license](https://img.shields.io/npm/l/@spore-ui/dev-utils)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![Test](https://github.com/SporeUI/dev-utils/actions/workflows/test.yml/badge.svg)
![Release](https://github.com/SporeUI/dev-utils/actions/workflows/release.yml/badge.svg)
[![codecov](https://codecov.io/gh/SporeUI/dev-utils/branch/master/graph/badge.svg)](https://codecov.io/gh/SporeUI/dev-utils)

提供项目配置所需的基础工具函数

[releases and changelog](https://github.com/SporeUI/dev-utils/releases)

## 简介

本工具库提供一些项目自动化配置所需的一些基本工具函数。

部分方法来自于其他代码库，应对工程需求，进行了适应性变更。

## 快速上手

```shell
npm i -D @spore-ui/dev-utils
```

```javascript
const getGitPath = require('@spore-ui/dev-utils/git/getGitPath');
console.info(getGitPath());
```
npm package: @spore-ui/kit
Description: 原子化工具函数库
Author: pillar0514@gmail.com
Latest version: 1.3.2

# @spore-ui/kit

![npm](https://img.shields.io/npm/v/@spore-ui/kit)
![license](https://img.shields.io/npm/l/@spore-ui/kit)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![Release](https://github.com/SporeUI/spore-kit/actions/workflows/release.yml/badge.svg)
[![codecov](https://codecov.io/gh/SporeUI/spore-kit/branch/master/graph/badge.svg)](https://codecov.io/gh/SporeUI/spore-kit)

原子化工具函数库

[releases and changelog](https://github.com/SporeUI/spore-kit/releases)

## 参考文档

[https://sporeui.github.io/spore-kit/docs/](https://sporeui.github.io/spore-kit/docs/)

## 何时使用

虽然已经有了 underscore, lodash 这样优秀的工具库，但是日常开发中还是有很多常用的方法并未囊括在其中。

本工具库意图在日常业务积累中，留存各种常见工具函数，解决方案，Hack方案。

同时，也作为一个目录，整合线上一些优秀的工具库与工具函数，作为一批优秀工具库的索引，提供一些工具的快速使用封装。

工具函数进行了分门别类的梳理，推荐使用时引用确定版本，直接引用函数，可以直接减少代码打包体积。

## 快速上手

```shell
npm i @spore-ui/kit
```

```javascript
// 统一引入 @spore-ui/kit
var $kit = require('@spore-ui/kit');
$kit.arr.contains([1, 2], 1); // true

// 单独引入 @spore-ui/kit/packages/arr
var $arr = require('@spore-ui/kit/packages/arr');
$arr.contains([1, 2], 1); // true

// 单独引入一个方法（推荐）
var $contains = require('@spore-ui/kit/packages/arr/contains');
$contains([1, 2], 1); // true
```

## 测试

- [测试覆盖率](https://sporeui.github.io/spore-kit/coverage/lcov-report/index.html)
npm package: @spore-ui/tskit
Description: TypeScript 基础工具组件库
Author: pillar0514@gmail.com
Latest version: 1.2.1

# @spore-ui/tskit

![npm](https://img.shields.io/npm/v/@spore-ui/tskit)
![license](https://img.shields.io/npm/l/@spore-ui/tskit)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![release](https://github.com/SporeUI/spore-tskit/actions/workflows/release.yml/badge.svg)
[![codecov](https://codecov.io/gh/SporeUI/spore-tskit/branch/main/graph/badge.svg)](https://codecov.io/gh/SporeUI/spore-tskit)
![GitHub top language](https://img.shields.io/github/languages/top/SporeUI/spore-tskit)

现代工具函数库 / 面向 TypeScript

[releases and changelog](https://github.com/SporeUI/spore-tskit/releases)

## 参考文档

[https://sporeui.github.io/spore-tskit/docs/](https://sporeui.github.io/spore-tskit/docs/)

## 简介

本工具库意图在日常业务积累中，留存各种常见工具函数，解决方案，Hack方案。

工具函数进行了分门别类的梳理，推荐使用时引用确定版本，直接引用函数，可以直接减少代码打包体积。

## 快速上手

```shell
npm i @spore-ui/tskit
```

```javascript
// 引入一个方法
import { delay } from '@spore-ui/tskit';

// 引入支持 es5 的代码
// 注意这种方式会导致 tree-shaking 失效
import { delay } from '@spore-ui/tskit/es5';
```

## 测试

- [测试覆盖率](https://sporeui.github.io/spore-tskit/coverage/lcov-report/index.html)
npm package: @sporeball/hss.js
Description: library for Haskell-style strings in JavaScript - so bad it'll make you hiss
Author: sporeball
Latest version: 0.1.1

# hss.js

<a href="https://www.npmjs.com/package/@sporeball/hss.js"><img src="https://img.shields.io/npm/v/@sporeball/hss.js" /></a>

> library for Haskell-style strings in JavaScript - so bad it'll make you hiss

**hss.js** brings Haskell-style "a string is a list of characters" thinking to JavaScript:

```js
new Hss('hello')
// Hss { value: [ 'h', 'e', 'l', 'l', 'o' ] }
```

astral symbols are counted as just one character:

```js
new Hss('hi 😄')
// Hss { value: [ 'h', 'i', ' ', '😄' ] }
```

## disclaimer
this package is stupid. it should work, but it's really stupid.\
it does not implement several methods which we judged as unnecessary, such as `String#replaceAll` or `Array#copyWithin`.\
it also uses `Array#findLastIndex`, a method compatible only with fairly recent browser and Node.js versions, and does not provide a polyfill.\
**use at your own risk.**

## install
```
$ npm install @sporeball/hss.js
```

## API

### new Hss (value)
construct a new Hss instance.

#### value
type: `string|string[]`

### string methods
all of JavaScript's native string methods are available **except** for the following:
- `fromCharCode` and `fromCodePoint`
- `localeCompare`
- `matchAll` and `replaceAll`
- `normalize`
- `substring`
- `toLocaleLowerCase` and `toLocaleUpperCase`

additionally, `length` **is** available.

### array methods
all of JavaScript's native array methods are available **except** for the following:
- `copyWithin`
- `entries`, `keys`, and `values`
- `fill`
- `flat`
- `join`
- `reduce` and `reduceRight`
- `toLocaleString`

additionally, `reverse` and `sort` do **not** mutate Hss instances on which they are called.

## license
MIT
npm package: @sporeball/node-crush
Description: crush JavaScript files - reduce file size by 20% or more
Author: sporeball
Latest version: 0.1.0

# node-crush

<a href="https://www.npmjs.com/package/@sporeball/node-crush"><img src="https://img.shields.io/npm/v/@sporeball/node-crush" /></a>

> crush JavaScript files - reduce file size by 20% or more

a port of [Aivo Paas](https://twitter.com/aivopaas)' tool [JSCrush](http://www.iteral.com/jscrush) for the *modren era* -- TypeScript declarations, no leaking to the global scope, etc.

uses a brute-force algorithm to produce a compressed statement that can be `eval`'ed back into the original.\
this has been a staple of [JS1k](https://js1k.com) for many years.

## disclaimer
aside from fixing scope issues, the algorithm used in this package is unchanged from the original, and may be **prohibitively slow** to produce output depending on the size of the input (several seconds or minutes).\
as mentioned above, it also **requires an eval** for decompression; make sure you trust the code you're passing to it.

## install
```
$ npm install @sporeball/node-crush
```

## API

### crush(input)

#### input
type: `string`

a string containing the JavaScript code to crush.

---

### donate
you can support the development of this project and others via Patreon:

[![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dsporeball%26type%3Dpledges%26suffix%3D%252Fmonth&style=for-the-badge)](https://patreon.com/sporeball)
npm package: @sporeball/num.js
Description: library to provide a wrapper for JavaScript's Number primitive
Author: sporeball
Latest version: 0.1.0

# num.js

<a href="https://www.npmjs.com/package/@sporeball/num.js"><img src="https://img.shields.io/npm/v/@sporeball/num.js" /></a>

> library to provide a wrapper for JavaScript's Number primitive

**num.js** is a simple wrapper for Number objects in JavaScript:

```js
new Num(20)
// Num { value: 20 }
```

it's small and fast, with methods taken from [big.js](https://mikemcl.github.io/big.js/).

a Num instance is immmutable in the sense that it is not changed by its methods:

```js
x = new Num(20)
x.minus(5)       // Num { value: 15 }
x                // Num { value: 20 }
```

## install
```
$ npm install @sporeball/num.js
```

## API

### new Num (value)
construct a new Num instance.

#### value
type: `Num|number|string`

### available methods
all [big.js](https://mikemcl.github.io/big.js/) methods are available **except** for the following:
- `prec`
- `toJSON`
- `toNumber`

num.js method signatures are nearly identical to those of big.js, with Num instances, numbers, and strings accepted as parameters.

## license
MIT