@axerunners/ap-services-ctl

0.7.3 • Public • Published

Axe Platform services ctl

Build Status NPM version

Control Axe Platform services using JavaScript and Docker

The tool provides a convenient JavaScript interface for configuration and interaction with Axe Platform services. Services are started in Docker containers.

Table of Contents

Installation

  1. Install Docker

  2. Install NPM package:

    npm install @axerunners/ap-services-ctl

Usage

Available AP services

Drive

Drive service starts a bunch of related services:

DAPI

DAPI service starts all AP services:

Axe Core

Axe Core service - Methods - Options

Insight API

IPFS

MongoDB

Starting a service

// Export service(s)
const { startIPFS } = require('@axerunners/ap-services-ctl');

// This is optional. Default options listed in options class
const options = {
  port: 5001, // IPFS port
};

// Start service
const ipfs = await startIPFS(options);

// Get peer ID
const peerId = await ipfs.getApi().id();

// Stop IPFS
await ipfs.remove();

Use many method to start several instances:

const { startIPFS } = require('@axerunners/ap-services-ctl');

// This is optional. Default options listed in options class
const options = {
  port: 5001, // IPFS port
};

// Start two services
const ipfsNodes = await startIPFS.many(2, options);

// Get peer IDs
const [peerId1, peerId2] = await Promise.all(
  ipfsNodes.map(ipfs => ipfs.getApi().id()),
);

// Stop IPFS nodes
await Promise.all(
  ipfsNodes.map(ipfs => ipfs.remove()),
);

Services configuration

Each service has default options which can be overwritten in three ways:

  1. Pass options as plain JS object to start[service] or create[service] methods
  2. Pass instance of options class to start[service] or create[service] methods
  3. Pass default options as plain JS object to setDefaultCustomOptions method of options class

Integration with Mocha

Services Mocha hooks provide automation for your mocha tests:

  • Removing obsolete related Docker containers (before)
  • Cleaning a service state between tests (beforeEach, afterEach)
  • Stopping service after tests (after)
// Export service(s) with mocha hooks
const { mocha: { startIPFS } } = require('@axerunners/ap-services-ctl');

describe('Test suite', () => {
  let ipfsApi;

  startIPFS().then(ipfs => () => {
    ipfsApi = ipfs.getApi();
  });

  it('should do something', async () => {
    const peerId = await ipfsApi.id();

    expect(peerId).to.be.a('string');
  });
});

Maintainers

@shumkov

@jawid-h

@abvgedeika

Contributing

Feel free to dive in! Open an issue or submit PRs.

License

MIT © Axe Core Group, Inc.

Dependents (0)

Package Sidebar

Install

npm i @axerunners/ap-services-ctl

Weekly Downloads

3

Version

0.7.3

License

MIT

Unpacked Size

177 kB

Total Files

95

Last publish

Collaborators

  • charlie137
  • ddude1