Development

Principles

The Javascript SDK wraps the æternity API exposed byNode's Swagger filearrow-up-right. It aims to abstract the API, while still providing low-level access to it's endpoints, when necessary.

It uses the following Javascript technologies and principles:

Requirements

aepp-sdk is transpiled to EcmaScript 5 through WebPackarrow-up-right, using Babelarrow-up-right and is expected to work in any sufficiently new version of Node.jsarrow-up-right or modern web browser.

Contributing

  1. Clone the application

  2. Make sure your editor/IDE can read and use the .editorconfig file

  3. Start hacking (and don't forget to add test for whatever you'll be building).

Documenting

Apart from documenting features and code, there is also documentation automatically generated using TypeDocarrow-up-right for documenting TS files and a scriptarrow-up-right for documenting examples and code partials.

Building

aepp-sdk is built using npm. In order to build a production version, launch the build command.

Note: If you experience errors during the building, you might need to install build tools for your OS.

Windows: Windows Build Tools

Ubuntu / Debian: Build Essential

Mac

Download Xcodearrow-up-right from AppStore, then run

Generate bundle report

Testing

To test, launch the test command. This will run mochaarrow-up-right's tests locally.

This repository also includes a docker-compose file, to allow you to run your own æternity node locally. If you want to do so, from the root of the project:

  1. Run docker-compose up node

  2. Congrats! you're now running your own æternity node locally.

The WebPack compilation provides two different build artifacts in dist/, one for Node.js and one for browsers. When referencing aepp-sdk through any modern build tooling, it should pick the right one automatically through the entry points defined in package.json.

Installation / Linking

In order to add a local development version of aepp-sdk to a project, npm link1arrow-up-right can be used.

Releasing

How to release a new version

Last updated

Was this helpful?