Client library for connecting to Bee decentralised storage
Warning: This project is in beta state. There might (and most probably will) be changes in the future to its API and working. Also, no guarantees can be made about its stability, efficiency, and security at this stage.
> npm install @ethersphere/bee-js --save
> yarn add @ethersphere/bee-js
Be aware, if you are running Yarn v1 and are attempting to install this repo using GitHub URL, this won't unfortunately
work as it does not correctly handle execution of prepare
script.
We require Node.js's version of at least 12.x
var BeeJs = require("@ethersphere/bee-js");
var BeeJs = require("@ethersphere/bee-js");
Loading this module through a script tag will make the BeeJs
object available in the global namespace.
<script src="https://unpkg.com/@ethersphere/bee-js/dist/index.browser.min.js"></script>
import { Bee } from "@ethersphere/bee-js"
bee = new Bee("http://localhost:1633")
// Be aware, this creates on-chain transactions that spend Eth and BZZ!
const batchId = await bee.createPostageBatch('100', 17)
const fileHash = await bee.uploadData(batchId, "Bee is awesome!")
const data = await bee.downloadData(fileHash)
console.log(data.text()) // prints 'Bee is awesome!'
You can find the full documentation here. The API reference documentation can be found here.
You can generate API docs locally with:
npm run docs
The generated docs can be viewed in browser by opening ./docs/index.html
There are some ways you can make this module better:
- Consult our open issues and take on one of them
- Help our tests reach 100% coverage!
- Join us in our Discord chat in the #develop-on-swarm channel if you have questions or want to give feedback
Install project dependencies with
npm i
The tests run in both context: node and dom with Jest.
To run the integration tests, you need to have a Bee cluster running locally. You can run your own local Bee client for test purposes with the help of test/bee.sh.
If you pass --ephemeral
flag, the container automatically will be removed at the end of the run.
By default, for integration tests two bee nodes are expected to run on localhost on addresses http://localhost:1633
and http://localhost:11633
. These are the default values for the test/bee.sh
script.
If you want to use custom setup, you can change the behavior of tests to different addresses using environment variables BEE_API_URL
, BEE_DEBUG_API_URL
, BEE_PEER_DEBUG_API_URL
and BEE_PEER_API_URL
.
In Visual Studio environment, the tests have been set up to run against your local bee node on http://localhost:1633
To run Jest tests, choose the vscode-jest-tests
CI job under the Run tab.
There are also browser tests by Puppeteer, which also provide integrity testing.
npm run test:browser
The test HTML file which Puppeteer uses is the test/testpage/testpage.html.
To open and manually test BeeJS with developer console, it is necessary to build the library first with npm run compile:browser
(running the browser tests npm run test:browser
also builds the library).
In order to compile NodeJS code run
npm run compile:node
or for Browsers
npm run compile:browser