open-index/open-npm huggingface dataset:
npm package: @pengyin/eslint-config
Description: ESLint config for FED.
Author: yinpeng
Latest version: 1.0.3

# @pengyin/eslint-config

FED 团队使用的 ESLint 配置。

## 安装

```shell
npm i -D eslint @babel/eslint-parser @babel/eslint-plugin @pengyin/eslint-config
```

## 使用

在 `.eslintrc.js` 中使用：

```js
module.exports = {
  extends: ["@pengyin/eslint-config"],
};
```

也可开启严格模式：

```js
module.exports = {
  extends: ["@pengyin/eslint-config/strict"],
};
```

## 扩展

### `import`

如果需要检测与 `import` 相关的规则，需要安装这个插件：

```shell
npm i -D eslint-plugin-import
```

并在 `.eslintrc.js` 中引用：

```js
module.exports = {
  extends: [
    "@pengyin/eslint-config",
    "@pengyin/eslint-config/import",
    // 或者选择严格模式
    // '@pengyin/eslint-config/import/strict',
  ],
};
```

注意这些规则会要求使用 ES6 的 `import` 来引入依赖，如果使用的是 `require` 则会出现检查错误，可禁用 `import/no-commonjs` 和 `import/unambiguous` 来解决。

### React

如果需要检测 React 相关的代码，需要安装相关插件：

```shell
npm i -D eslint-plugin-react eslint-plugin-react-hooks
```

并在 `.eslintrc.js` 中引用：

```js
module.exports = {
  extends: [
    "@pengyin/eslint-config",
    "@pengyin/eslint-config/react",
    // 或者选择严格模式
    // '@pengyin/eslint-config/react/strict',
  ],
};
```

会自动检测本地 React 的版本，默认情况下无需其它配置。

### TypeScript

如果需要检测 TypeScript 代码，需要安装相关插件：

```shell
npm i -D @typescript-eslint/parser @typescript-eslint/eslint-plugin
npm i -D eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin
```

**除此之外，需要先安装`typescript`包，并在项目根目录有`tsconfig.json`文件**。

并在`.eslintrc.js`中引用：

```js
module.exports = {
  extends: [
    "@pengyin/eslint-config",
    "@pengyin/eslint-config/typescript",
    // 或者选择严格模式
    // '@pengyin/eslint-config/typescript/strict',
  ],
};
```

## 细节

严格版配置 `*/strict` 开启了更严格的规则。


### CSS

or

```json
{
  "extends": "stylelint-config-one/css"
}
```

### SCSS

```json
{
  "extends": "stylelint-config-one/scss"
}
```

### CSS with CSS Modules

```json
{
  "extends": "stylelint-config-one/css-modules"
}
```

### SCSS with CSS Modules

```json
{
  "extends": "stylelint-config-one/scss-modules"
}
```
npm package: @pengyin/qiniu
Description: 上传 Webpack 打包出来的 assets 到 七牛云。
Latest version: 1.0.0


## 特点

- 上传 webpack 打包后的所有静态资源到七牛云。
- 自动忽略`.html`文件。
- 支持覆盖已上传文件。

基于官方七牛云[Node.js SDK](https://developer.qiniu.com/kodo/sdk/1289/nodejs)。

## 安装

```js
npm install @pengyin/qiniu --save-dev
```

## 使用方法

```js
const QiniuUploadPlugin = require('@pengyin/qiniu');

plugins: [
  new QiniuUploadPlugin({
    publicPath: 'http://cdn.xxx.com', // 七牛云域名，自动替换 publicPath
    accessKey: 'your qiniu accessKey', // 个人中心，秘钥管理，AK
    secretKey: 'your qiniu secretKey', // 个人中心，秘钥管理，SK
    bucket: 'your qiniu bucket', // 存储空间名称
    zone: 'Zone_z2', // 存储地区
    // 可选参数：
    cover: false // 慎用！默认为 false，设置为 true 会覆盖掉已经保存在七牛云上的同名文件。
  })
];
```

## 效果截图

![上传七牛云](https://raw.githubusercontent.com/yhlben/qiniu-upload-plugin/master/screenshots/qiniu-upload.png)
npm package: @pengyin/tools
Description: Tool library based on typscript
Author: yinpeng
Latest version: 1.0.7

<div align="center">
<h1>tools-ts <sup><sup><sub>v1</sub></sup></sup></h1>
Tool library based on typescript.

![](https://img.shields.io/npm/v/@pengyin/tools)
![](https://img.shields.io/github/license/peng-yin/tools)
![](https://img.shields.io/npm/types/@pengyin/tools)
![](https://img.shields.io/bundlephobia/min/@pengyin/tools)

</div>
## Install

```sh
yarn add @pengyin/tools

# npm install @pengyin/tools
```

## Usage

```ts
import { to  } from "@pengyin/tools";

interface ServerResponse {
  test: number;
}

const p = Promise.resolve({test: 123});

const [err, data] = await to<ServerResponse>(p);

async function asyncFunctionWithThrow() {
  const [err, user] = await to(UserModel.findById(1));
  if (!user) throw new Error('User not found');
}

```

## feature
- docs
- jest

## License

[MIT License](https://github.com/peng-yin/tools/blob/main/LICENSE)