open-index/open-npm huggingface dataset:
npm package: @feizheng/next-delay
Description: Delay for next.
Author: afei
Latest version: 1.1.2

# next-delay
> Delay for next.


```js
function sleeper(ms) {
  return function(x) {
    return new Promise(resolve => setTimeout(() => resolve(x), ms));
  };
}
```

## installation
```bash
npm install -S @feizheng/next-delay
```

## usage
```js
import '@feizheng/next-delay';

//DOCS here!
```

## resources
- https://stackoverflow.com/questions/38956121/how-to-add-delay-to-promise-inside-then
npm package: @feizheng/next-delete-if
Description: Delete from object on if condition.
Author: afei
Latest version: 1.0.3

# next-delete-if
> Delete from object on if condition.

## installation
```bash
npm install -S @feizheng/next-delete-if
```

## usage
```js
import '@feizheng/next-delete-if';

const obj = { name: 'fei', age: 122 };
nx.deleteIf(obj, ['age'], (obj) => obj.age < 100); // delete failed
```
npm package: @feizheng/next-doc2pdf
Description: Covert doc/docx to pdf.
Author: afei
Latest version: 1.0.1

# next-doc2pdf
> Covert doc/docx to pdf.

## installation
```bash
# brew install unoconv
npm install -S @feizheng/next-doc2pdf
```

## usage
```js
import '@feizheng/next-doc2pdf';

nx.doc2pdf({
  input: './__tests__/docs/zscqf_jc_whl_jy0101.doc',
  output: './__tests__/docs/zscqf_jc_whl_jy0101.pdf'
})
```

## doc2pdf + merge
```js
require("@feizheng/next-doc2pdf");
require("@feizheng/next-pdf-merge");

nx.doc2pdf({
  input: "./files/*.doc",
  output: `./pdfs`
}).then(res => {
  console.log("convert done!");
  nx.pdfMerge({
    input: "./pdfs/*.pdf"
  });
});

```


## resources
- https://github.com/unoconv/unoconv
- http://macappstore.org/unoconv/
- http://dag.wiee.rs/home-made/unoconv/
- https://www.libreoffice.org/
npm package: @feizheng/next-dom-event
Description: Dom event api based on next toolkit.
Author: afei
Latest version: 2.0.2

# next-dom-event
> Dom event api based on next toolkit.

## installation
```bash
npm install -S @feizheng/next-dom-event
```

## apis
| api | params | description          |
| --- | ------ | -------------------- |
| on  | -      | register a new event |

## usage
```js
import NxDomEvent from '@feizheng/next-dom-event';

//create resurces:
const res1 = NxDomEvent.on(el,'click',callback,capture);
const res2 = NxDomEvent.timeout(callback,100);
const res3 = NxDomEvent.interval(callback,100);

//destroy resource:
res1.destory();
res2.destory();
res3.destory();
```

```html
<h3>Everything is resources!</h3>
<hr>
<button id="btn1">Button1</button>
<button id="btn2">Button2</button>
<button id="btn3" style="background: #3eb233">Unbind btn1 events</button>
<script src="../node_modules/next-js-core2/dist/next-js-core2.js"></script>
<script src="../dist/next-dom-event.js"></script>
<script>
  const btn1 = document.querySelector('#btn1');
  const btn2 = document.querySelector('#btn2');
  const btn3 = document.querySelector('#btn3');
  const btn4 = document.querySelector('#btn4');
  const btn4_1 = document.querySelector('#btn4_1');

  const nxEvent = nx.dom.Event;
  const res1 = nxEvent.on(btn1,'click',function(){
    console.log('click1');
  });

  const res2 = nxEvent.on(btn2,'click',function(){
    console.log('click2');
  });

  const res3 = nxEvent.on(btn3,'click',function(){
    res1.destroy();
  });

  const timerRes = nxEvent.interval(function(){
    console.log('trigger every 1s!')
  },1000);

  const res4_1 = nxEvent.on(btn4_1,'click',function(){
    console.log('cancel interval!');
    timerRes.destroy();
  });
</script>
```
npm package: @feizheng/next-dom-find-ancestor
Description: Find the closest ancestor element that has a specific class.
Author: afei
Latest version: 1.0.2

# next-dom-find-ancestor
> Find the closest ancestor element that has a specific class.

## installation
```bash
npm install -S @feizheng/next-dom-find-ancestor
```

## usage
```html
<div class="far ancestor">
    <div id="target2">
      <div class="near ancestor">
          <p id="target1">Where am I?</p>
      </div>
    </div>
</div>
```
```js
import '@feizheng/next-dom-find-ancestor';

const el1 = document.querySelector('#target1');
const el2 = document.querySelector('#target2');

nx.domFindAncestor(el1, '.ancestor'); // near
nx.domFindAncestor(el2, '.ancestor'); // far
```

## resources
- https://stackoverflow.com/questions/22119673/find-the-closest-ancestor-element-that-has-a-specific-class
npm package: @feizheng/next-dom2json
Description: Dom to json for next.
Author: afei
Latest version: 1.0.1

# next-dom2json
> Dom to json for next.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-dom2json
```

## usage
```js
import '@feizheng/next-dom2json';

const domElement = `
  <div class="list_item odd" data-value="v1" itemscope="" itemtype="http://schema.org/Movie">
    123
    <span>abc</span>
    <strong>def</strong>
  </div>
`;
const dom = new JSDOM(domElement);
const el = dom.window.document.querySelector('.list_item');
const json = nx.dom2json(el);

// results:
/*
{
  nodeName: 'div',
  nodeType: 1,
  attributes: {
    class: 'list_item odd',
    'data-value': 'v1',
    itemscope: '',
    itemtype: 'http://schema.org/Movie'
  },
  childNodes: [
    {
      nodeName: '#text',
      nodeType: 3,
      nodeValue: '\n        123\n        ',
      childNodes: []
    },
    {
      nodeName: 'span',
      nodeType: 1,
      attributes: {},
      childNodes: [
        {
          nodeName: '#text',
          nodeType: 3,
          nodeValue: 'abc',
          childNodes: []
        }
      ]
    },
    {
      nodeName: '#text',
      nodeType: 3,
      nodeValue: '\n        ',
      childNodes: []
    },
    {
      nodeName: 'strong',
      nodeType: 1,
      attributes: {},
      childNodes: [
        {
          nodeName: '#text',
          nodeType: 3,
          nodeValue: 'def',
          childNodes: []
        }
      ]
    },
    {
      nodeName: '#text',
      nodeType: 3,
      nodeValue: '\n      ',
      childNodes: []
    }
  ]
}
*/
```

## resources
- https://www.w3school.com.cn/jsref/prop_node_nodetype.asp
- https://github.com/sumn2u/dom-to-json/blob/master/lib/index.js



## license
Code released under [the MIT license](https://github.com/afeiship/next-dom2json/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-dom2json
[version-url]: https://npmjs.org/package/@feizheng/next-dom2json

[license-image]: https://img.shields.io/npm/l/@feizheng/next-dom2json
[license-url]: https://github.com/afeiship/next-dom2json/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-dom2json
[size-url]: https://github.com/afeiship/next-dom2json/blob/master/dist/next-dom2json.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-dom2json
[download-url]: https://www.npmjs.com/package/@feizheng/next-dom2json
npm package: @feizheng/next-domain2ip
Description: Query ip from domain.
Author: afei
Latest version: 1.0.1

# next-domain2ip
> Query ip from domain.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-domain2ip
```

## usage
```js
import '@feizheng/next-domain2ip';

nx.domain2ip('www.china.com').then(res=>{
  console.log(res);
});
// [ '13.114.40.48' ]
```

## resources
- https://millermedeiros.github.io/mdoc/examples/node_api/doc/dns.html#dns.lookup 

## license
Code released under [the MIT license](https://github.com/afeiship/next-domain2ip/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-domain2ip
[version-url]: https://npmjs.org/package/@feizheng/next-domain2ip

[license-image]: https://img.shields.io/npm/l/@feizheng/next-domain2ip
[license-url]: https://github.com/afeiship/next-domain2ip/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-domain2ip
[size-url]: https://github.com/afeiship/next-domain2ip/blob/master/dist/next-domain2ip.min.js

[download-image]: https://img.shields.io/npm/dw/@feizheng/next-domain2ip
[download-url]: https://www.npmjs.com/package/@feizheng/next-domain2ip
npm package: @feizheng/next-element-in-viewport
Description: Judge element if is in viewport.
Author: afei
Latest version: 1.0.4

# next-element-in-viewport
> Judge element if is in viewport.

## installation
```bash
npm install -S @feizheng/next-element-in-viewport
```

## usage
```js
import '@feizheng/next-element-in-viewport';

// scroll into view when element not in the viewport
const el = document.querySelector('.to-scroll-element');
if (el && !nx.elementInViewport(el)) {
  el.scrollIntoView();
}
```

## resources
- https://stackoverflow.com/questions/123999/how-can-i-tell-if-a-dom-element-is-visible-in-the-current-viewport
npm package: @feizheng/next-escape-regexp
Description: Escape regexp for string.
Author: afei
Latest version: 1.0.0

# next-escape-regexp
> Escape regexp for string.

## installation
```bash
npm install -S @feizheng/next-escape-regexp
```

## usage
```js
import '@feizheng/next-escape-regexp';

const str = 'How much $ for a 🦄?';
const res = nx.escapeRegexp(str);

// result:
// How much \\$ for a 🦄\\?
```
## resources
- https://www.w3school.com.cn/jsref/jsref_replace.asp
- https://github.com/sindresorhus/escape-string-regexp
npm package: @feizheng/next-fanyi-api-sign
Description: Get baidu translate api sign.
Author: afei
Latest version: 1.0.3

# next-fanyi-api-sign
> Get baidu translate api sign.

## installation
```bash
npm install -S @feizheng/next-fanyi-api-sign
```

## usage
```js
import '@feizheng/next-fanyi-api-sign';

//DOCS here!
```

## descriptions
1. 拼接字符串1
   1. appid=2015063000000001
   2. q=apple
   3. salt=1435660288
   4. 密钥=12345678
   5. 得到字符串1：“2015063000000001apple143566028812345678”
2. 计算签名：（对字符串1做md5加密）
   1. sign=md5(2015063000000001apple143566028812345678)
   2. sign=f89f9594663708c1605f3d736d01d2d4

## resources
- https://api.fanyi.baidu.com/doc/21
npm package: @feizheng/next-fetch
Description: Abstract for browser or node.
Author: afei
Latest version: 1.3.9

# next-fetch
> Abstract for browser or node.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch
```

## options
| option       | type        | default               | description                       |
| ------------ | ----------- | --------------------- | --------------------------------- |
| fetch        | Function    | require('node-fetch') | Defult fetch implement            |
| dataType     | String      | json                  | json/raw/urlencoded/multipart     |
| responseType | String/Null | json                  | json/text/blob/null               |

## usage
```js
import NxFetch from '@feizheng/next-fetch';

const http = NxFetch.getInstance({ responseType:'json' });

http.get('https://api.github.com/users/afeiship').then(res=>{
  console.log(res);
});

// {
//   login: 'afeiship',
//   id: 3038631,
//   node_id: 'MDQ6VXNlcjMwMzg2MzE=',
//   avatar_url: 'https://avatars2.githubusercontent.com/u/3038631?v=4',
    // .....
// }
```

## resources
- https://github.com/afeiship/next-abstract-request

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch
[version-url]: https://npmjs.org/package/@feizheng/next-fetch

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch
[license-url]: https://github.com/afeiship/next-fetch/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch
[size-url]: https://github.com/afeiship/next-fetch/blob/master/dist/next-fetch.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch
npm package: @feizheng/next-fetch-with-debug
Description: Debug middleware for next fetch.
Author: afei
Latest version: 1.0.2

# next-fetch-with-debug
> Debug middleware for next fetch.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-debug
```

## usage
```js
import '@feizheng/next-fetch-with-debug';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-debug/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-debug
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-debug

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-debug
[license-url]: https://github.com/afeiship/next-fetch-with-debug/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-debug
[size-url]: https://github.com/afeiship/next-fetch-with-debug/blob/master/dist/next-fetch-with-debug.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-debug
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-debug
npm package: @feizheng/next-fetch-with-delay
Description: Fetch with delay options.
Author: afei
Latest version: 1.0.0

# next-fetch-with-delay
> Fetch with delay options.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-delay
```

## usage
```js
import '@feizheng/next-fetch-with-delay';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-delay/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-delay
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-delay

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-delay
[license-url]: https://github.com/afeiship/next-fetch-with-delay/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-delay
[size-url]: https://github.com/afeiship/next-fetch-with-delay/blob/master/dist/next-fetch-with-delay.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-delay
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-delay
npm package: @feizheng/next-fetch-with-node-timeout
Description: Timeout option for node-fetch with abort-controller.
Author: afei
Latest version: 1.0.0

# next-fetch-with-node-timeout
> Timeout option for node-fetch with abort-controller.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-node-timeout
```

## usage
```js
import '@feizheng/next-fetch-with-node-timeout';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-node-timeout/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-node-timeout
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-node-timeout

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-node-timeout
[license-url]: https://github.com/afeiship/next-fetch-with-node-timeout/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-node-timeout
[size-url]: https://github.com/afeiship/next-fetch-with-node-timeout/blob/master/dist/next-fetch-with-node-timeout.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-node-timeout
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-node-timeout
npm package: @feizheng/next-fetch-with-proxy
Description: Fetch with proxy options.
Author: afei
Latest version: 1.0.0

# next-fetch-with-proxy
> Fetch with proxy options.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-proxy
```

## usage
```js
import '@feizheng/next-fetch-with-proxy';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-proxy/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-proxy
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-proxy

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-proxy
[license-url]: https://github.com/afeiship/next-fetch-with-proxy/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-proxy
[size-url]: https://github.com/afeiship/next-fetch-with-proxy/blob/master/dist/next-fetch-with-proxy.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-proxy
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-proxy
npm package: @feizheng/next-fetch-with-random-ua
Description: Random user-agent for fetch.
Author: afei
Latest version: 1.0.2

# next-fetch-with-random-ua
> Random user-agent for fetch.

<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1gg7qnfxszaj30rt03qwft.jpg" width="800" />

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-random-ua
```

## usage
```js
import '@feizheng/next-fetch-with-random-ua';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-random-ua/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-random-ua
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-random-ua

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-random-ua
[license-url]: https://github.com/afeiship/next-fetch-with-random-ua/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-random-ua
[size-url]: https://github.com/afeiship/next-fetch-with-random-ua/blob/master/dist/next-fetch-with-random-ua.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-random-ua
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-random-ua
npm package: @feizheng/next-fetch-with-request-id
Description: Fetch with request id.
Author: afei
Latest version: 1.0.0

# next-fetch-with-request-id
> Fetch with request id.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-request-id
```

## usage
```js
import '@feizheng/next-fetch-with-request-id';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-request-id/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-request-id
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-request-id

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-request-id
[license-url]: https://github.com/afeiship/next-fetch-with-request-id/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-request-id
[size-url]: https://github.com/afeiship/next-fetch-with-request-id/blob/master/dist/next-fetch-with-request-id.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-request-id
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-request-id
npm package: @feizheng/next-fetch-with-timeout
Description: Fetch with timeout options.
Author: afei
Latest version: 1.0.1

# next-fetch-with-timeout
> Fetch with timeout options.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-fetch-with-timeout
```

## usage
```js
import '@feizheng/next-fetch-with-timeout';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-fetch-with-timeout/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-fetch-with-timeout
[version-url]: https://npmjs.org/package/@feizheng/next-fetch-with-timeout

[license-image]: https://img.shields.io/npm/l/@feizheng/next-fetch-with-timeout
[license-url]: https://github.com/afeiship/next-fetch-with-timeout/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-fetch-with-timeout
[size-url]: https://github.com/afeiship/next-fetch-with-timeout/blob/master/dist/next-fetch-with-timeout.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-fetch-with-timeout
[download-url]: https://www.npmjs.com/package/@feizheng/next-fetch-with-timeout
npm package: @feizheng/next-file-to-base64
Description: File to base64 based on FileReader for next.
Author: afei
Latest version: 1.1.1

# next-file-to-base64
> File to base64 based on FileReader for next.

## installation
```bash
npm install -S @feizheng/next-file-to-base64
```

## usage
```js
import '@feizheng/next-file-to-base64';

nx.fileToBase64(inFile).then((base64)=>{
  console.log(base64);
});
```
npm package: @feizheng/next-file-upload
Description: Simple xhr for file upload.
Author: afei
Latest version: 1.0.0

# next-file-upload
> Simple xhr for file upload.

## installation
```bash
npm install -S @feizheng/next-file-upload
```

## usage
```js
import '@feizheng/next-file-upload';

//DOCS here!
```
npm package: @feizheng/next-filesize
Description: Get filesize based on filesize.js.
Author: afei
Latest version: 1.0.1

# next-filesize
> Get filesize based on filesize.js.

## installation
```bash
npm install -S @feizheng/next-filesize
```

## usage
```js
import '@feizheng/next-filesize';

nx.filesize(filename) //421 B
nx.filesize(filename, { bits: true }) // 3.29 Kb
```

## resources
- https://github.com/avoidwork/filesize.js
- https://stackoverflow.com/questions/42363140/how-to-find-the-size-of-the-file-in-node-js
npm package: @feizheng/next-filter
Description: Filter for next.
Author: afei
Latest version: 1.0.2

# next-filter
> Filter for next.

## installation
```bash
npm install -S @feizheng/next-filter
```

## usage
```js
import nx from '@feizheng/next-js-core2';
import '@feizheng/next-filter';

// single filter
const res1 = nx.filter('aaa', [addMore(111, 999)]);                 

//res1: '111aaa999'

// multiple filter
const res2 = nx.filter('aaa', [ 
  addMore(111, 999), 
  addZero() 
]);    

//res2: 0111aaa9990
```
npm package: @feizheng/next-filter-map
Description: Filter after map for next use reduce.
Author: afei
Latest version: 1.0.0

# next-filter-map
> Filter after map for next use reduce.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-filter-map
```

## usage
```js
import '@feizheng/next-filter-map';

const options = [
  { name: 'One', assigned: true },
  { name: 'Two', assigned: false },
  { name: 'Three', assigned: true }
];

const reduced = nx.filterMap(
  options,
  (item) => item.assigned,
  (item) => {
    return { name: item.name };
  }
);

// [ { name: 'One' }, { name: 'Three' } ]
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-filter-map/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-filter-map
[version-url]: https://npmjs.org/package/@feizheng/next-filter-map

[license-image]: https://img.shields.io/npm/l/@feizheng/next-filter-map
[license-url]: https://github.com/afeiship/next-filter-map/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-filter-map
[size-url]: https://github.com/afeiship/next-filter-map/blob/master/dist/next-filter-map.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-filter-map
[download-url]: https://www.npmjs.com/package/@feizheng/next-filter-map
npm package: @feizheng/next-flatten
Description: Flattens `array` a single or multiple level deep.
Author: afei
Latest version: 1.1.0

# next-flatten
> Flattens `array` a single or multiple level deep.

## installation
```bash
npm install -S @feizheng/next-flatten
```

## usage
```js
import '@feizheng/next-flatten';

const res = nx.flatten([[1, 2, 3], [4, 5]]); 
// [1, 2, 3, 4, 5]
```

## other solution
```js
function flattenArrayOfArrays(a, r) {
  if (!r) { r = [] }
  for (var i = 0; i < a.length; i++) {
    if (a[i].constructor == Array) {
      r.concat(flattenArrayOfArrays(a[i], r));
    } else {
      r.push(a[i]);
    }
  }
  return r;
}
```

## resources
- https://stackoverflow.com/questions/10865025/merge-flatten-an-array-of-arrays
npm package: @feizheng/next-form2data
Description: FormData to js data.
Author: afei
Latest version: 1.2.1

# next-form2data
> FormData to js data.

## installation
```bash
npm install -S @feizheng/next-form2data
```

## usage
```js
// DO NOT USE in NODE ENV (because: form-data package has bug.)
import nxForm2Data from '@feizheng/next-form2data';

const formData = new FormData();
formData.append('u', 'username');
formData.append('p', 'pass1');
nx.form2data(formData);

// { u: 'username', p: 'pass1' }
```

## required
- Array.from
- Browser FormData

## resources
- https://stackoverflow.com/questions/41431322/how-to-convert-formdatahtml5-object-to-json
npm package: @feizheng/next-git-branch
Description: Git branch.
Author: afei
Latest version: 1.0.0

# next-git-branch
> Git branch.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-git-branch
```

## usage
```js
import '@feizheng/next-git-branch';

nx.gitBranch()

/*
{
  current: 'feature/page-relad',
  all: [
    'develop',
    'feature/addContent',
    'feature/page-relad',
    'staging',
    'origin/beta',
    'origin/develop',
    'origin/feature/addContent',
    'origin/feature/contentLibrary',
    'origin/feature/independentBiz',
    'origin/feature/page-reload',
    'origin/feature/pptPreview',
    'origin/master',
    'origin/staging'
  ],
  locals: [ 'develop', 'feature/addContent', 'feature/page-relad', 'staging' ],
  remotes: [
    'beta',
    'develop',
    'feature/addContent',
    'feature/contentLibrary',
    'feature/independentBiz',
    'feature/page-reload',
    'feature/pptPreview',
    'master',
    'staging'
  ]
}
*/
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-git-branch/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-git-branch
[version-url]: https://npmjs.org/package/@feizheng/next-git-branch

[license-image]: https://img.shields.io/npm/l/@feizheng/next-git-branch
[license-url]: https://github.com/afeiship/next-git-branch/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-git-branch
[size-url]: https://github.com/afeiship/next-git-branch/blob/master/dist/next-git-branch.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-git-branch
[download-url]: https://www.npmjs.com/package/@feizheng/next-git-branch
npm package: @feizheng/next-git-log
Description: Git logs.
Author: afei
Latest version: 1.1.1

# next-git-log
> Git logs.

## installation
```bash
npm install -S @feizheng/next-git-log
```

## apis
| api    | type    | default    | description                 |
| ------ | ------- | ---------- | --------------------------- |
| pretty | string  | %h - %s    | git log `pretty`            |
| since  | string  | 2020-05-01 | git log `since`             |
| before | string  | TODAY      | git log `before`            |
| suffix | string  | ''         | git log - ... `suffix`      |
| debug  | boolean | false      | Output the shell scripts    |
| async  | boolean | true       | ExecSync/exec the shell cmd |

## usage
```js
import '@feizheng/next-git-log';

nx.gitLog({ since: '2020-06-01' }).then(res => {
  console.log(res);
});

// c1b0ca1 - docs: initail
// 6f6380f - refactor: use tmpl for template
// 5b51e88 - feat: initail

```
npm package: @feizheng/next-git-url
Description: Get git urls.
Author: afei
Latest version: 1.0.3

# next-git-url
> Get git urls.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-git-url
```

## apis
| property | description                                 |
| -------- | ------------------------------------------- |
| github   | Check if is github.                         |
| pages    | Gh_pages.                                   |
| url      | Git url in its source.                      |
| ssh      | `ssh` git url.                              |
| https    | `https` git url.                            |
| mr       | Get merge request url(only support gitlab). |

## usage
```js
import NxGitUrl from '@feizheng/next-git-url';

const url = 'git@github.com:afeiship/next-git-url.git';
const gitUrl = new NxGitUrl(url);
const { github, pages, url, ssh, https } = gitUrl;

// true
// https://afeiship.github.io/next-git-url/
// git@github.com:afeiship/next-git-url.git
// https://github.com/afeiship/next-git-url.git
// https://github.com/afeiship/next-git-url
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-git-url/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-git-url
[version-url]: https://npmjs.org/package/@feizheng/next-git-url

[license-image]: https://img.shields.io/npm/l/@feizheng/next-git-url
[license-url]: https://github.com/afeiship/next-git-url/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-git-url
[size-url]: https://github.com/afeiship/next-git-url/blob/master/dist/next-git-url.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-git-url
[download-url]: https://www.npmjs.com/package/@feizheng/next-git-url
npm package: @feizheng/next-global
Description: Global property for next.
Author: afei
Latest version: 1.0.2

# next-global
> Global property for next.

## installation
```bash
npm install -S @feizheng/next-global
```

## usage
```js
import '@feizheng/next-global';

nx.global(null);
nx.$global = { abc: 123 };
nx.$global = { 'c.d.e': 'test-str' };
```
npm package: @feizheng/next-gm-api
Description: APIs for tampermonkey.
Author: afei
Latest version: 1.0.7

# next-gm-api
> APIs for From tampermonkey..

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-gm-api
```

## apis
| api                       | description        |
| ------------------------- | ------------------ |
| `gets`                    | Get all the apis.  |
| addStyle                  | From tampermonkey. |
| deleteValue               | From tampermonkey. |
| listValues                | From tampermonkey. |
| addValueChangeListener    | From tampermonkey. |
| removeValueChangeListener | From tampermonkey. |
| setValue                  | From tampermonkey. |
| getValue                  | From tampermonkey. |
| log                       | From tampermonkey. |
| getResourceText           | From tampermonkey. |
| getResourceURL            | From tampermonkey. |
| registerMenuCommand       | From tampermonkey. |
| unregisterMenuCommand     | From tampermonkey. |
| openInTab                 | From tampermonkey. |
| xmlhttpRequest            | From tampermonkey. |
| download                  | From tampermonkey. |
| getTab                    | From tampermonkey. |
| saveTab                   | From tampermonkey. |
| getTabs                   | From tampermonkey. |
| notification              | From tampermonkey. |
| setClipboard              | From tampermonkey. |
| info                      | From tampermonkey. |

## usage
```js
// @grant GM_addStyle
// @grant GM_deleteValue
// @grant GM_listValues
// @grant GM_addValueChangeListener
// @grant GM_removeValueChangeListener
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_log
// @grant GM_getResourceText
// @grant GM_getResourceURL
// @grant GM_registerMenuCommand
// @grant GM_unregisterMenuCommand
// @grant GM_openInTab
// @grant GM_xmlhttpRequest
// @grant GM_download
// @grant GM_getTab
// @grant GM_saveTab
// @grant GM_getTabs
// @grant GM_notification
// @grant GM_setClipboard
// @grant GM_info

import NxGmApi from '@feizheng/next-gm-api';

NxGmApi.log('hello From tampermonkey.~');
```

## resources
- https://www.From tampermonkey..net/documentation.php

## license
Code released under [the MIT license](https://github.com/afeiship/next-gm-api/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-gm-api
[version-url]: https://npmjs.org/package/@feizheng/next-gm-api

[license-image]: https://img.shields.io/npm/l/@feizheng/next-gm-api
[license-url]: https://github.com/afeiship/next-gm-api/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-gm-api
[size-url]: https://github.com/afeiship/next-gm-api/blob/master/dist/next-gm-api.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-gm-api
[download-url]: https://www.npmjs.com/package/@feizheng/next-gm-api
npm package: @feizheng/next-gm-storage
Description: Storage implement for GM tampermonkey.
Author: afei
Latest version: 1.0.0

# next-gm-storage
> Storage implement for GM tampermonkey.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-gm-storage
```

## apis
| api | params | description   |
|-----|--------|---------------|
| get | -      | desc balabala |

## usage
```js
import NxGmStorage from '@feizheng/next-gm-storage';

// code goes here:
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-gm-storage/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-gm-storage
[version-url]: https://npmjs.org/package/@feizheng/next-gm-storage

[license-image]: https://img.shields.io/npm/l/@feizheng/next-gm-storage
[license-url]: https://github.com/afeiship/next-gm-storage/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-gm-storage
[size-url]: https://github.com/afeiship/next-gm-storage/blob/master/dist/next-gm-storage.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-gm-storage
[download-url]: https://www.npmjs.com/package/@feizheng/next-gm-storage
npm package: @feizheng/next-gm-store-engine
Description: Store engin for tampermonkey GM_storage.
Author: afei
Latest version: 1.0.0

# next-gm-store-engine
> Store engin for tampermonkey GM_storage.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-gm-store-engine

```

## apis
| api        | params      | description                 |
| ---------- | ----------- | --------------------------- |
| setItem    | (key,value) | Set vlaue by key.           |
| getItem    | (key)       | Get value by key.           |
| removeItem | (key)       | Remove a item from storage. |
| clear      | -           | Clear the storage.          |

## usage
```js
import NxGmStoreEngine from '@feizheng/next-gm-store-engine';

// Must be grant:

// @grant GM_deleteValue
// @grant GM_listValues
// @grant GM_setValue
// @grant GM_getValue


// basic usage:
NxGmStoreEngine.setItem('afei', 'feizheng');
NxGmStoreEngine.getItem('afei');
NxGmStoreEngine.removeItem('afei');
NxGmStoreEngine.clear();
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-gm-store-engine/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-gm-store-engine
[version-url]: https://npmjs.org/package/@feizheng/next-gm-store-engine

[license-image]: https://img.shields.io/npm/l/@feizheng/next-gm-store-engine
[license-url]: https://github.com/afeiship/next-gm-store-engine/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-gm-store-engine
[size-url]: https://github.com/afeiship/next-gm-store-engine/blob/master/dist/next-gm-store-engine.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-gm-store-engine
[download-url]: https://www.npmjs.com/package/@feizheng/next-gm-store-engine
npm package: @feizheng/next-group-by
Description: Creates an object composed of keys generated from the results of running each element of collection thru iteratee.
Author: afei
Latest version: 1.2.1

# next-group-by
> Creates an object composed of keys generated from the results of running each element of collection thru iteratee.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-group-by
```

## usage
```js
import '@feizheng/next-group-by';

const arr = [
  'sljflsdjf.jpg',
  'bb.jpg',
  'bc.jpg',
  'ccsdf.jpg',
  'ccsdf.jpg',
  'http://www.agc.cn/1.jpg',
  'sldjfsld.jpg',
  'wx://localResource'
];

const res = nx.groupBy(arr, (_, item) => {
  var rs = item.split('://');
  return rs.length === 2 ? rs[0] : 'normal';
});

// result
{
  normal: [
    'sljflsdjf.jpg',
    'bb.jpg',
    'bc.jpg',
    'ccsdf.jpg',
    'ccsdf.jpg',
    'sldjfsld.jpg'
  ],
  http: [ 'http://www.agc.cn/1.jpg' ],
  wx: [ 'wx://localResource' ]
}
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-group-by/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-group-by
[version-url]: https://npmjs.org/package/@feizheng/next-group-by

[license-image]: https://img.shields.io/npm/l/@feizheng/next-group-by
[license-url]: https://github.com/afeiship/next-group-by/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-group-by
[size-url]: https://github.com/afeiship/next-group-by/blob/master/dist/next-group-by.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-group-by
[download-url]: https://www.npmjs.com/package/@feizheng/next-group-by
npm package: @feizheng/next-guid
Description: Simple guid for next.
Author: afei
Latest version: 1.0.0

# next-guid
> Simple guid for next.

## installation
```bash
npm install -S @feizheng/next-guid
```

## usage
```js
import '@feizheng/next-guid';

// generate guid:
// 968ea2c2-21b6-4ba6-a8d4-bb74de3062a1
// 3c85406b-dca0-4974-ab86-a26b577380b5
// f960d301-1068-4470-aa3a-f406aae879e3
// 061ead49-b6c5-485b-9530-c1eed8166ea5
```
npm package: @feizheng/next-hash
Description: Get object hash code for next.
Author: afei
Latest version: 1.0.0

# next-hash
> Get object hash code for next.

## installation
```bash
npm install -S @feizheng/next-hash
```

## usage
```js
import '@feizheng/next-hash';

nx.hash({ name:'afei', github:'afeiship' }); // 4564597f67d8d0f181d4c4b149834a1994afc7e3
nx.hash({ github:'afeiship', name:'afei' }); // 4564597f67d8d0f181d4c4b149834a1994afc7e3
```
npm package: @feizheng/next-html2text
Description: Strip html to text for next.
Author: afei
Latest version: 1.0.3

# next-html2text
> Strip html to text for next.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-html2text
```

## usage
```js
import '@feizheng/next-html2text';

nx.html2text("<p>we&#x27;d|better|not.|I|don&#x27;t|want|to|miss|the|train|.</p>")
// we'd|better|not.|I|don't|want|to|miss|the|train|.
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-html2text/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-html2text
[version-url]: https://npmjs.org/package/@feizheng/next-html2text

[license-image]: https://img.shields.io/npm/l/@feizheng/next-html2text
[license-url]: https://github.com/afeiship/next-html2text/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-html2text
[size-url]: https://github.com/afeiship/next-html2text/blob/master/dist/next-html2text.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-html2text
[download-url]: https://www.npmjs.com/package/@feizheng/next-html2text
npm package: @feizheng/next-includes-multi
Description: Check if string includes multiple for next.
Author: afei
Latest version: 1.0.2

# next-includes-multi
> Check if string includes multiple for next.

## installation
```bash
npm install -S @feizheng/next-includes-multi
```

## usage
```js
import '@feizheng/next-includes-multi';

const abc = 'abcdef';
const target = ['a', 'b', 'ddd'];

nx.includesMulti(abc, { target, aor: true });
nx.includesMulti(abc, { target });

//some: false
//every: true
```
npm package: @feizheng/next-indent
Description: Indent string with indent-string.
Author: afei
Latest version: 1.0.0

# next-indent
> Indent string with indent-string.

## installation
```bash
npm install -S @feizheng/next-indent
```

## usage
```js
import '@feizheng/next-indent';

const str = 'hello';

nx.indent(str, 2);
//  hello
```

## resources
- https://github.com/sindresorhus/indent-string#readme
npm package: @feizheng/next-instance
Description: Create an instance without new.
Author: afei
Latest version: 1.0.0

# next-instance
> Create an instance without new.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-instance
```

## usage
```js
import '@feizheng/next-instance';

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

const p1 = nx.instance(Person, 'fei', 100);
// Person { name: 'fei', age: 100 }
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-instance/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-instance
[version-url]: https://npmjs.org/package/@feizheng/next-instance

[license-image]: https://img.shields.io/npm/l/@feizheng/next-instance
[license-url]: https://github.com/afeiship/next-instance/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-instance
[size-url]: https://github.com/afeiship/next-instance/blob/master/dist/next-instance.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-instance
[download-url]: https://www.npmjs.com/package/@feizheng/next-instance
npm package: @feizheng/next-intersection
Description: Simple intersection implement.
Author: afei
Latest version: 1.0.0

# next-intersection
> Simple intersection implement.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-intersection
```

## usage
```js
import '@feizheng/next-intersection';

const a1 = [1, 2, 3];
const a2 = [2, 3, 4];

nx.intersection(a1, a2)
// [2, 3]


const a1 = [
  { id: 1, value: 'aa' },
  { id: 2, value: 'bb' },
  { id: 3, value: 'cc' }
];

const a2 = [
  { id: 3, value: 'cc' },
  { id: 4, value: 'dd' }
];

const ids = a2.map(item => item.id);
const res = nx.intersection(a1, a2, (_, value) => {
  return ids.includes(value.id);
});

// [ { id: 3, value: 'cc' } ]
```

## resources
- https://stackoverflow.com/questions/1885557/simplest-code-for-array-intersection-in-javascript

## license
Code released under [the MIT license](https://github.com/afeiship/next-intersection/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-intersection
[version-url]: https://npmjs.org/package/@feizheng/next-intersection

[license-image]: https://img.shields.io/npm/l/@feizheng/next-intersection
[license-url]: https://github.com/afeiship/next-intersection/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-intersection
[size-url]: https://github.com/afeiship/next-intersection/blob/master/dist/next-intersection.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/next-intersection
[download-url]: https://www.npmjs.com/package/@feizheng/next-intersection
npm package: @feizheng/next-ip2info
Description: Get infomation from ip.
Author: afei
Latest version: 1.0.1

# next-ip2info
> Get infomation from ip.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```bash
npm install -S @feizheng/next-ip2info
```

## usage
```js
import '@feizheng/next-ip2info';

nx.ip2info('8.8.8.8').then(res=>{
  console.log(res);
});

/*
  {
    ip: '8.8.8.8',
    location: '美国 加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器',
    os: '未知操作系统',
    browser: '未知浏览器'
  }
*/
```

## resources
- http://www.cz88.net/ip/

## license
Code released under [the MIT license](https://github.com/afeiship/next-ip2info/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-ip2info
[version-url]: https://npmjs.org/package/@feizheng/next-ip2info

[license-image]: https://img.shields.io/npm/l/@feizheng/next-ip2info
[license-url]: https://github.com/afeiship/next-ip2info/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-ip2info
[size-url]: https://github.com/afeiship/next-ip2info/blob/master/dist/next-ip2info.min.js

[download-image]: https://img.shields.io/npm/dw/@feizheng/next-ip2info
[download-url]: https://www.npmjs.com/package/@feizheng/next-ip2info
npm package: @feizheng/next-is-array
Description: Array.isArray polly fill for next.
Author: afei
Latest version: 1.0.2

# next-is-array
> Array.isArray polly fill for next.

## installation
```bash
npm install -S @feizheng/next-is-array
```

## usage
```js
import '@feizheng/next-is-array';

//DOCS here!
```
npm package: @feizheng/next-is-empty-object
Description: Check if is emptyObject for next.
Author: afei
Latest version: 1.0.0

# next-is-empty-object
> Check if is emptyObject for next.

## installation
```bash
npm install -S @feizheng/next-is-empty-object
```

## usage
```js
import '@feizheng/next-is-empty-object';

//DOCS here!
```
npm package: @feizheng/next-is-nil
Description: Is null/undefined for next.
Author: afei
Latest version: 1.0.0

# next-is-nil
> Is null/undefined for next.

## installation
```bash
npm install -S @feizheng/next-is-nil
```

## usage
```js
import '@feizheng/next-is-nil';

//DOCS here!
```
npm package: @feizheng/next-is-phone
Description: Regexp for is phone.
Author: afei
Latest version: 1.0.0

# next-is-phone
> Regexp for is phone.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
![size][size-image]
![download][download-image]

## installation
```bash
npm install -S @feizheng/next-is-phone
```

## usage
```js
import '@feizheng/next-is-phone';

//DOCS here!
```

## license
Code released under [the MIT license](https://github.com/afeiship/next-is-phone/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/next-is-phone
[version-url]: https://npmjs.org/package/@feizheng/next-is-phone

[license-image]: https://img.shields.io/npm/l/@feizheng/next-is-phone
[license-url]: https://github.com/afeiship/next-is-phone/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/next-is-phone
[download-image]: https://img.shields.io/npm/dw/@feizheng/next-is-phone