0.15.0 • Published 2 years ago

@dashevo/dp-services-ctl v0.15.0

Weekly downloads
2
License
MIT
Repository
github
Last release
2 years ago

Dash Platform services ctl

Build Status NPM version

Control Dash Platform services using JavaScript and Docker

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

Table of Contents

Installation

  1. Install Docker
  2. Install NPM package:

    npm install @dashevo/dp-services-ctl

Usage

Available DP services

Drive

Drive service starts a bunch of related services:

DAPI

DAPI service starts all DP services:

Dash Core

Tendermint Core

Insight API

MongoDB

Starting a service

// Export service(s)
const { startMongoDb } = require('@dashevo/dp-services-ctl');
// This is optional. Default options listed in options class
const options = {
  port: 27017, // mongoDB port
};

// Start service
const mongo = await startMongoDb(options);

// Get mongo client
const client = await mongo.getClient();

// Stop mongoDB
await mongo.remove();

Use many method to start several instances:

const { startMongoDb } = require('@dashevo/dp-services-ctl');

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

// Start two services
const mongoNodes = await startMongoDb.many(2,options);

// Get peer IDs
const [client1, client2] = await Promise.all(
  mongoNodes.map(mongo => mongo.getClient()),
);

// Stop mongoDB nodes
await Promise.all(
  mongoNodes.map(mongo => mongo.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: { startMongoDb } } = require('@dashevo/dp-services-ctl');

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

  startMongoDb().then(mongo => () => {
    mongoClient = mongo.getClient();
  });

  it('should do something', async () => {
    const collection = mongoClient.db('test').collection('syncState');
    const count = await collection.countDocuments({});

    expect(count).to.equal(0);
  });
});

Maintainers

@shumkov

@jawid-h

@abvgedeika

Contributing

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

License

MIT © Dash Core Group, Inc.

0.15.0

2 years ago

0.14.0

4 years ago

0.13.1

4 years ago

0.14.0-dev.1

4 years ago

0.13.0-dev.1

4 years ago

0.12.0-dev.1

4 years ago

0.11.0

4 years ago

0.11.0-dev.3

4 years ago

0.11.0-dev.2

4 years ago

0.11.0-dev.1

4 years ago

0.11.0-dev.0

4 years ago

0.10.0

4 years ago

0.10.0-dev.8

4 years ago

0.10.0-dev.7

4 years ago

0.10.0-dev.6

4 years ago

0.10.0-dev.5

4 years ago

0.10.0-dev.4

4 years ago

0.10.0-dev.3

4 years ago

0.10.0-dev.2

4 years ago

0.10.0-dev.1

4 years ago

0.9.4-dev.1

4 years ago

0.9.0-dev.4

4 years ago

0.9.0-dev.3

4 years ago

0.9.3

4 years ago

0.9.2

4 years ago

0.9.1

5 years ago

0.9.0

5 years ago

0.9.0-dev.2

5 years ago

0.8.0

5 years ago

0.8.0-dev.11

5 years ago

0.8.0-dev.10

5 years ago

0.8.0-dev.9

5 years ago

0.8.0-dev.8

5 years ago

0.8.0-dev.7

5 years ago

0.8.0-dev.6

5 years ago

0.8.0-dev.5

5 years ago

0.8.0-dev.4

5 years ago

0.8.0-dev.3

5 years ago

0.7.4

5 years ago

0.7.3

5 years ago

0.7.2

5 years ago

0.7.1

5 years ago

0.7.0

5 years ago

0.6.2

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.0

5 years ago