feat: skip nextTick in nodeify (#103)

This commit is contained in:
Friedel Ziegelmayer 2017-08-17 06:38:26 +02:00 committed by David Dias
parent 1b6a070fa8
commit f20267b962
5 changed files with 23 additions and 9 deletions

View File

@ -35,14 +35,13 @@
"browserify-aes": "^1.0.6",
"keypair": "^1.0.1",
"libp2p-crypto-secp256k1": "~0.2.1",
"nodeify": "^1.0.1",
"multihashing-async": "~0.4.6",
"pem-jwk": "^1.5.1",
"protocol-buffers": "^3.2.1",
"rsa-pem-to-jwk": "^1.1.3",
"safe-buffer": "^5.1.1",
"tweetnacl": "^1.0.0",
"webcrypto-shim": "github:dignifiedquire/webcrypto-shim#master",
"multihashing-async": "~0.4.6"
"webcrypto-shim": "github:dignifiedquire/webcrypto-shim#master"
},
"devDependencies": {
"aegir": "^11.0.2",
@ -79,4 +78,4 @@
"greenkeeper[bot] <greenkeeper[bot]@users.noreply.github.com>",
"nikuda <nikuda@gmail.com>"
]
}
}

View File

@ -1,6 +1,6 @@
'use strict'
const nodeify = require('nodeify')
const nodeify = require('../nodeify')
const Buffer = require('safe-buffer').Buffer
const crypto = require('../webcrypto.js')()
@ -12,6 +12,11 @@ const hashTypes = {
SHA512: 'SHA-512'
}
const sign = (key, data, cb) => {
nodeify(crypto.subtle.sign({name: 'HMAC'}, key, data)
.then((raw) => Buffer.from(raw)), cb)
}
exports.create = function (hashType, secret, callback) {
const hash = hashTypes[hashType]
@ -27,8 +32,7 @@ exports.create = function (hashType, secret, callback) {
).then((key) => {
return {
digest (data, cb) {
nodeify(crypto.subtle.sign({name: 'HMAC'}, key, data)
.then((raw) => Buffer.from(raw)), cb)
sign(key, data, cb)
},
length: lengths[hashType]
}

View File

@ -1,7 +1,7 @@
'use strict'
const webcrypto = require('../webcrypto.js')()
const nodeify = require('nodeify')
const nodeify = require('../nodeify')
const BN = require('asn1.js').bignum
const Buffer = require('safe-buffer').Buffer

View File

@ -1,6 +1,6 @@
'use strict'
const nodeify = require('nodeify')
const nodeify = require('../nodeify')
const Buffer = require('safe-buffer').Buffer
const webcrypto = require('../webcrypto.js')()

11
src/nodeify.js Normal file
View File

@ -0,0 +1,11 @@
'use strict'
// Based on npmjs.com/nodeify but without additional `nextTick` calls
// to keep the overhead low
module.exports = function nodeify (promise, cb) {
return promise.then((res) => {
cb(null, res)
}, (err) => {
cb(err)
})
}