@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.

    Keywords

    none

    Install

    npm i @axerunners/ap-services-ctl

    DownloadsWeekly Downloads

    7

    Version

    0.7.3

    License

    MIT

    Unpacked Size

    177 kB

    Total Files

    95

    Last publish

    Collaborators

    • charlie137
    • ddude1