@blockr/blockr-data-access

Data access layer for Blockr

Usage no npm install needed!

<script type="module">
  import blockrBlockrDataAccess from 'https://cdn.skypack.dev/@blockr/blockr-data-access';
</script>

README

blockr-data-access TypeScript

CI SonarQube Version
Build Status Quality Gate Status npm

The data access layer can be consumed either by dependency injection or normal construction.

Dependency injection

This library uses inversify-js as its dependency injection library. This means the consuming project is required to do the same. The data access layer has two dependencies: DataSource and Configuration that either need to be injected or constructed.

|Name|Type| |-|-| |DataSource|Enum| |Configuration|IClientConfiguration|

Example:

container

DIContainer.bind<DataAccessLayer>(DataAccessLayer).toSelf().inTransientScope();

DIContainer.bind<DataSource>("DataSource").toConstantValue(DataSource.MONGO_DB);
DIContainer.bind<IClientConfiguration>("Configuration")
    .toConstantValue(new MongoDbConfiguration("connection string", "database"));

consumer (typically a service)

class MainService {
    private dataAccessLayer: DataAccessLayer;

    constructor(@inject(DataAccessLayer) dataAccessLayer: DataAccessLayer) {
        this.dataAccessLayer = dataAccessLayer;
    }
}

Normal construction

Example:

consumer (typically a service)

class MainService {
    private dataAccessLayer: DataAccessLayer;

    constructor() {
        this.dataAccessLayer = new DataAccessLayer(
            DataSource.MONGO_DB,
            new MongoDbConfiguration("connection string", "database")
        );
    }
}