New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ipld/block

Package Overview
Dependencies
Maintainers
3
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ipld/block - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

43

index.js

@@ -52,49 +52,16 @@ 'use strict'

}
async encode () {
return this.encodeMaybeSync()
}
encodeMaybeSync () {
encode () {
if (this.opts.data) return this.opts.data
let codec = module.exports.getCodec(this.codec)
if (codec.then) {
return codec.then(codec => {
return this._encodeData(codec)
})
} else {
return this._encodeData(codec)
}
}
_encodeData (codec) {
let data = codec.encode(this.opts.source)
if (data.then) {
data.then(data => {
this.opts.data = data
return data
})
}
this.opts.data = data
return data
}
async decode () {
return this.decodeMaybeSync()
}
decodeMaybeSync () {
decode () {
let codec = module.exports.getCodec(this.codec)
if (codec.then) {
return codec.then(codec => this._decodeData(codec))
} else {
return this._decodeData(codec)
}
}
_decodeData (codec) {
if (!this.opts.data) {
let encoded = this._encodeData(codec)
if (encoded.then) {
return encoded.then(() => codec.decode(this.opts.data))
}
}
if (!this.opts.data) this.encode()
return codec.decode(this.opts.data)
}
async reader () {
let codec = await module.exports.getCodec(this.codec)
reader () {
let codec = module.exports.getCodec(this.codec)
return codec.reader(this)

@@ -101,0 +68,0 @@ }

4

package.json
{
"name": "@ipld/block",
"version": "1.0.1",
"version": "2.0.0",
"main": "index.js",

@@ -22,3 +22,3 @@ "directories": {

"dependencies": {
"@ipld/get-codec": "^1.0.3",
"@ipld/get-codec": "^2.0.0",
"cids": "~0.7.1",

@@ -25,0 +25,0 @@ "class-is": "^1.1.0"

@@ -72,15 +72,2 @@ # Block API

## Hot path methods
We expose a few extra APIs you can use if you find IPLD in the hot paths of your own code.
Since *some* codecs require async work and some do not, it's a good idea to try and factor
our unnecesary async operations when you can if you can in hot paths.
## `block.encodeMaybeSync`
Just like `block.encode` but returns *either* a promise or the encoded value synchronously.
## `block.decodeMaybeSync`
Just like `block.decode` but returns *either* a proimse or the decoded value synchronously.

@@ -13,5 +13,5 @@ 'use strict'

let block = Block.encoder({ hello: 'world' }, 'dag-json')
let encoded = await block.encode()
let encoded = block.encode()
assert.ok(Buffer.isBuffer(encoded))
same(encoded, await dagjson.encode({ hello: 'world' }))
same(encoded, dagjson.encode({ hello: 'world' }))
})

@@ -21,17 +21,17 @@

let block = Block.encoder({ hello: 'world' }, 'dag-cbor')
let encoded = await block.encode()
let encoded = block.encode()
encoded.test = true
assert.ok((await block.encode()).test)
assert.ok((block.encode()).test)
})
test('Block decode', async () => {
let data = await dagjson.encode({ hello: 'world' })
let data = dagjson.encode({ hello: 'world' })
let block = Block.decoder(data, 'dag-json')
let decoded = await block.decode()
let decoded = block.decode()
same(decoded, { hello: 'world' })
block = Block.encoder({ hello: 'world' }, 'dag-json')
decoded = await block.decode()
decoded = block.decode()
same(decoded, { hello: 'world' })
// test data caching
decoded = await block.decode()
decoded = block.decode()
same(decoded, { hello: 'world' })

@@ -59,38 +59,14 @@ same(await block.validate(), true)

const testRaw = async () => {
test('raw codec', async () => {
let block = Block.encoder(Buffer.from('asdf'), 'raw')
let data = await block.encode()
let data = block.encode()
same(data, Buffer.from('asdf'))
block = Block.decoder(Buffer.from('asdf'), 'raw')
data = await block.decode()
data = block.decode()
same(data, Buffer.from('asdf'))
block = Block.encoder(Buffer.from('asdf'), 'raw')
data = await block.decode()
data = block.decode()
same(data, Buffer.from('asdf'))
}
test('raw codec', async () => {
await testRaw()
})
test('async codec', async () => {
const asyncRaw = {
encode: async x => x,
decode: async x => x,
codec: 'raw'
}
let asyncModule = new Promise(resolve => resolve(asyncRaw))
asyncModule.codec = 'raw'
Block.getCodec.setCodec(asyncModule)
await testRaw()
Block.getCodec.setCodec(asyncRaw)
await testRaw()
let asyncRawModule = new Promise(resolve => resolve(asyncRaw))
asyncRawModule.codec = 'raw'
Block.getCodec.setCodec(asyncRawModule)
await testRaw()
})
test('source', async () => {

@@ -102,3 +78,3 @@ let encoder = Block.encoder({ hello: 'world' }, 'dag-json')

encoder = Block.encoder({}, 'dag-json')
await encoder.encode()
encoder.encode()
same(encoder.source(), null)

@@ -105,0 +81,0 @@ let block = Block.decoder(Buffer.from('asd'), 'dag-json')

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc