Socket
Book a DemoInstallSign in
Socket

@ipld/iq

Package Overview
Dependencies
Maintainers
3
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ipld/iq

## IPLD Query

latest
npmnpm
Version
0.4.3
Version published
Maintainers
3
Created
Source

EXPERIMENTAL: do not use in production.

IPLD Query

Simplified interface for IPLD graph reading and manipulation.

let iq = require('@ipld/iq')
let Block = require('@ipld/block')

let block = Block.encoder({one: {two: {three: 'hello world'}}})

let string = await iq(block, 'one/two/three').toString()
// hello world

Configuring Storage

Read-only example:

/* configure a read interface connected to storage */
let store = {}
let get = cid => store[cid.toString()] || null
iq.config.get = get

let block = Block.encoder({one: {two: {three: 'hello world'}}})
let cid = await block.cid()
store[cid.toString()] = block

let string = await iq(`${cid.toString()}/one/two/three`).toString()
// hello world

API

Read APIs

query.value()

Returns a decoded "kind." Best effort is made to determine the kind from composite types.

TODO: Implement some kind of configurable "max size" for composite types which may be prohibitively expensive to pull into memory.

query.toString([joiner='\n'])

Returns any string values from the expression.

If multiple values are found the joiner string is be used to join them into a single string.

Example at top of README.

query.read([start, end])

  • .read(0, 12) reads the path value from 0 to the 15th byte.
  • .read(5) reads from the 5th byte.

Full example:

let block = Block.encoder({one: {two: {three: Buffer.from('hello world')}}})

let buffer = await iq(block, 'one/two/three').read()
// Buffer containing 'hello world'
Buffer.isBuffer(buffer)
// true

query.readIterator(...[start, end])

FAQs

Package last updated on 18 Aug 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts