Comparing version 2.2.0 to 2.3.0
@@ -11,1 +11,2 @@ export * from './array.js'; | ||
export * from './object.js'; | ||
export * from './timeout.js'; |
@@ -27,2 +27,3 @@ "use strict"; | ||
__exportStar(require("./object.js"), exports); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1Qiw4Q0FBNEI7QUFDNUIsZ0RBQThCO0FBQzlCLDhDQUE0QiJ9 | ||
__exportStar(require("./timeout.js"), exports); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5QiwyQ0FBeUI7QUFDekIsNENBQTBCO0FBQzFCLDhDQUE0QjtBQUM1Qiw4Q0FBNEI7QUFDNUIsZ0RBQThCO0FBQzlCLDhDQUE0QjtBQUM1QiwrQ0FBNkIifQ== |
@@ -11,1 +11,2 @@ export * from './array.js'; | ||
export * from './object.js'; | ||
export * from './timeout.js'; |
@@ -11,2 +11,3 @@ export * from './array.js'; | ||
export * from './object.js'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUMifQ== | ||
export * from './timeout.js'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMifQ== |
{ | ||
"name": "utility", | ||
"version": "2.2.0" | ||
"version": "2.3.0" | ||
} |
{ | ||
"name": "utility", | ||
"version": "2.2.0", | ||
"version": "2.3.0", | ||
"description": "A collection of useful utilities.", | ||
@@ -10,3 +10,3 @@ "scripts": { | ||
"test-local": "egg-bin test", | ||
"preci": "npm run prepublishOnly", | ||
"preci": "npm run lint && npm run prepublishOnly && attw --pack", | ||
"ci": "egg-bin cov", | ||
@@ -20,2 +20,3 @@ "prepublishOnly": "tshy && tshy-after" | ||
"devDependencies": { | ||
"@arethetypeswrong/cli": "^0.17.1", | ||
"@eggjs/tsconfig": "^1.3.3", | ||
@@ -22,0 +23,0 @@ "@types/escape-html": "^1.0.4", |
104
README.md
@@ -7,2 +7,3 @@ # utility | ||
[![npm download][download-image]][download-url] | ||
[![Node.js Version](https://img.shields.io/node/v/utility.svg?style=flat)](https://nodejs.org/en/download/) | ||
@@ -33,3 +34,3 @@ [npm-image]: https://img.shields.io/npm/v/utility.svg?style=flat-square | ||
```ts | ||
import * as utility from 'utility'; | ||
import * as utils from 'utility'; | ||
``` | ||
@@ -39,10 +40,17 @@ | ||
```js | ||
utils.md5('苏千').should.equal('5f733c47c58a077d61257102b2d44481'); | ||
utils.md5(Buffer.from('苏千')).should.equal('5f733c47c58a077d61257102b2d44481'); | ||
```ts | ||
import { md5 } from 'utility'; | ||
md5('苏千'); | ||
// '5f733c47c58a077d61257102b2d44481' | ||
md5(Buffer.from('苏千')); | ||
// '5f733c47c58a077d61257102b2d44481' | ||
// md5 base64 format | ||
utils.md5('苏千', 'base64'); // 'X3M8R8WKB31hJXECstREgQ==' | ||
md5('苏千', 'base64'); | ||
// 'X3M8R8WKB31hJXECstREgQ==' | ||
// Object md5 hash. Sorted by key, and JSON.stringify. See source code for detail | ||
utils.md5({foo: 'bar', bar: 'foo'}).should.equal(utils.md5({bar: 'foo', foo: 'bar'})); | ||
md5({foo: 'bar', bar: 'foo'}).should.equal(md5({bar: 'foo', foo: 'bar'})); | ||
``` | ||
@@ -52,10 +60,17 @@ | ||
```js | ||
utils.sha1('苏千').should.equal('0a4aff6bab634b9c2f99b71f25e976921fcde5a5'); | ||
utils.sha1(Buffer.from('苏千')).should.equal('0a4aff6bab634b9c2f99b71f25e976921fcde5a5'); | ||
```ts | ||
import { sha1 } from 'utility'; | ||
sha1('苏千'); | ||
// '0a4aff6bab634b9c2f99b71f25e976921fcde5a5' | ||
sha1(Buffer.from('苏千')); | ||
// '0a4aff6bab634b9c2f99b71f25e976921fcde5a5' | ||
// sha1 base64 format | ||
utils.sha1('苏千', 'base64'); // 'Ckr/a6tjS5wvmbcfJel2kh/N5aU=' | ||
sha1('苏千', 'base64'); | ||
// 'Ckr/a6tjS5wvmbcfJel2kh/N5aU=' | ||
// Object sha1 hash. Sorted by key, and JSON.stringify. See source code for detail | ||
utils.sha1({foo: 'bar', bar: 'foo'}).should.equal(utils.sha1({bar: 'foo', foo: 'bar'})); | ||
sha1({foo: 'bar', bar: 'foo'}).should.equal(sha1({bar: 'foo', foo: 'bar'})); | ||
``` | ||
@@ -65,4 +80,7 @@ | ||
```js | ||
utils.sha256(Buffer.from('苏千')).should.equal('75dd03e3fcdbba7d5bec07900bae740cc8e361d77e7df8949de421d3df5d3635'); | ||
```ts | ||
import { sha256 } from 'utility'; | ||
sha256(Buffer.from('苏千')); | ||
// '75dd03e3fcdbba7d5bec07900bae740cc8e361d77e7df8949de421d3df5d3635' | ||
``` | ||
@@ -72,5 +90,8 @@ | ||
```js | ||
```ts | ||
import { hmac } from 'utility'; | ||
// hmac-sha1 with base64 output encoding | ||
utils.hmac('sha1', 'I am a key', 'hello world'); // 'pO6J0LKDxRRkvSECSEdxwKx84L0=' | ||
hmac('sha1', 'I am a key', 'hello world'); | ||
// 'pO6J0LKDxRRkvSECSEdxwKx84L0=' | ||
``` | ||
@@ -80,17 +101,26 @@ | ||
```js | ||
```ts | ||
import { base64encode, base64decode, escape, unescape, encodeURIComponent, decodeURIComponent } from 'utility'; | ||
// base64 encode | ||
utils.base64encode('你好¥'); // '5L2g5aW977+l' | ||
utils.base64decode('5L2g5aW977+l') // '你好¥' | ||
base64encode('你好¥'); | ||
// '5L2g5aW977+l' | ||
base64decode('5L2g5aW977+l'); | ||
// '你好¥' | ||
// urlsafe base64 encode | ||
utils.base64encode('你好¥', true); // '5L2g5aW977-l' | ||
utils.base64decode('5L2g5aW977-l', true); // '你好¥' | ||
base64encode('你好¥', true); | ||
// '5L2g5aW977-l' | ||
base64decode('5L2g5aW977-l', true); | ||
// '你好¥' | ||
// html escape and unescape | ||
utils.escape('<script/>"& &'); // '<script/>"& &amp;' | ||
utils.unescape('<script/>"& &amp;'); // '<script/>"& &' | ||
escape('<script/>"& &'); | ||
// '<script/>"& &amp;' | ||
unescape('<script/>"& &amp;'); | ||
// '<script/>"& &' | ||
// Safe encodeURIComponent and decodeURIComponent | ||
utils.decodeURIComponent(utils.encodeURIComponent('你好, nodejs')).should.equal('你好, nodejs'); | ||
decodeURIComponent(encodeURIComponent('你好, Node.js')); | ||
// '你好, Node.js' | ||
``` | ||
@@ -100,3 +130,3 @@ | ||
___[WARNNING] getIP() remove, PLEASE use `https://github.com/node-modules/address` module instead.___ | ||
___[WARNNING] `getIP()` remove, PLEASE use `https://github.com/node-modules/address` module instead.___ | ||
@@ -175,8 +205,14 @@ ```js | ||
### Timers | ||
### Timeout | ||
```js | ||
utils.setImmediate(function () { | ||
console.log('hi'); | ||
}); | ||
#### `runWithTimeout(scope, timeout)` | ||
Executes a scope promise with a specified timeout duration. If the promise doesn't resolve within the timeout period, it will reject with a `TimeoutError`. | ||
```ts | ||
import { runWithTimeout } from 'utility'; | ||
await runWithTimeout(async () => { | ||
// long run operation here | ||
}, 1000); | ||
``` | ||
@@ -228,5 +264,5 @@ | ||
```js | ||
import * as utility from 'utility'; | ||
import { UNSTABLE_METHOD } from 'utility'; | ||
utility.UNSTABLE_METHOD.try(...); | ||
UNSTABLE_METHOD.try(...); | ||
... | ||
@@ -239,3 +275,3 @@ ``` | ||
function foo() { | ||
const arr = utility.argumentsToArray(arguments); | ||
const arr = utils.argumentsToArray(arguments); | ||
console.log(arr.join(', ')); | ||
@@ -282,6 +318,6 @@ } | ||
// assign object | ||
utility.assign({}, { a: 1 }); | ||
utils.assign({}, { a: 1 }); | ||
// assign multiple object | ||
utility.assign({}, [ { a: 1 }, { b: 1 } ]); | ||
utils.assign({}, [ { a: 1 }, { b: 1 } ]); | ||
``` | ||
@@ -288,0 +324,0 @@ |
@@ -11,1 +11,2 @@ export * from './array.js'; | ||
export * from './object.js'; | ||
export * from './timeout.js'; |
175669
66
3136
363
18