ipld-block
Version:
JavaScript Implementation of IPLD Block
128 lines (88 loc) • 3.92 kB
Markdown
# IPLD Block JavaScript Implementation
[](http://ipn.io)
[](http://ipld.io/)
[](http://webchat.freenode.net/?channels=%23ipld)
[](https://github.com/RichardLitt/standard-readme)
[](https://travis-ci.com/ipld/js-ipld-block)
[](https://coveralls.io/github/ipld/js-ipld-block?branch=master)
[](https://david-dm.org/ipld/js-ipld-block)
[](https://github.com/feross/standard)


> [IPLD][ipld] implementation of the Block data structure in JavaScript.
**Block** - A block is a blob of binary data combined with a [CID].
## Lead Maintainer
[Volker Mische](https://github.com/vmx)
## Table of Contents
- [IPLD Block JavaScript Implementation](#ipld-block-javascript-implementation)
- [Lead Maintainer](#lead-maintainer)
- [Table of Contents](#table-of-contents)
- [Install](#install)
- [npm](#npm)
- [Usage](#usage)
- [Node.js](#nodejs)
- [Example](#example)
- [Browser: Browserify, Webpack, other bundlers](#browser-browserify-webpack-other-bundlers)
- [Browser: `<script>` Tag](#browser-script-tag)
- [API](#api)
- [Block](#block)
- [`new Block(data, cid)`](#new-blockdata-cid)
- [`block.data`](#blockdata)
- [`block.cid`](#blockcid)
- [Contribute](#contribute)
- [License](#license)
## Install
### npm
```sh
> npm install ipld-block
```
## Usage
### Node.js
```js
const Block = require('ipld-block')
```
#### Example
```js
const Block = require('ipld-block')
const encoder = new TextEncoder('utf8')
// create a block
const block = new Block(encoder.encode('hello world'), cid)
console.log(block.data.toString())
```
### Browser: Browserify, Webpack, other bundlers
The code published to npm that gets loaded on require is in fact a ES5
transpiled version with the right shims added. This means that you can require
it and use with your favourite bundler without having to adjust asset management
process.
```js
const Block = require('ipld-block')
```
### Browser: `<script>` Tag
Loading this module through a script tag will make the `IpldBlock` obj available in
the global namespace.
```html
<script src="https://unpkg.com/ipld-block/dist/index.min.js"></script>
<!-- OR -->
<script src="https://unpkg.com/ipld-block/dist/index.js"></script>
```
## API
```js
const Block = require('ipld-block')
```
### Block
#### `new Block(data, cid)`
- `data: Uint8Array`
Creates a new block with raw data `data`.
#### `block.data`
The raw data of the block. Its format matches whatever was provided in its constructor.
#### `block.cid`
The cid of the block.
[ipld]: https://ipld.io/
[multihash]: https://github.com/multiformats/js-multihash
[CID]: https://github.com/multiformats/js-cid
## Contribute
Feel free to join in. All welcome. Open an [issue](https://github.com/ipld/js-ipld-block/issues)!
This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).
[](https://github.com/ipfs/community/blob/master/contributing.md)
## License
[MIT](LICENSE)