Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

serenity-datasource

1.0.0 • Public • Published

Serenity common datasource module

This module build on top of sequelize ORM. It reads all the sequelize schema definations from a directory and initialize each schema, and exposes them as sequelize Models via a common object.

How to install ?

Install via npm and git

npm install serenity-node-datasource

How to use?

Include the lc1-node-datasource into your application using require

var serenityDatasource = require('serenity-node-datasource');

Instantiate datasource using new operator passing in the congifuration object.

var datasource = new serenityDatasource(config);

Errors during instantiation has to be handled by the applicaiton

Configuration

Configuration object should define datasource configuration inner object with a mandatory properties defined below

  • modelsDirectory: This directory path has to be relative to current process.pwd() path which is currently running. Generally application would be run from the application root directory so in that case this path would be relative to application root.

    NOTE: Path is case sensitive and must not end with slash

  • pgURL: postgresql connection string

  • dbOptions (optional DB options as supported by sequelize) See sequelize docs for more inof

modelsDirectory and pgURL is mandatory and dbOptions is optional

Sample config object

datasource: {
  modelsDirectory: <STRING> <REQUIRED> './api/models',
  pgURL: <STRING> <REQUIRED> 'postgres://postgres@localhost:5432/travis_ci_test',
  dbOptions: <OBJECT> <OPTIONAL> {}
}

Examples

var config = {
    modelsDirectory: './api/models',
    pgURL: 'postgres://postgres@localhost:5432/challengeapi'
};
var serenityDatasource = require('serenity-node-datasource');
var datasource = new serenityDatasource(config);
var Challenge = datasource.Challenge;
// use the Challenge model

Keywords

install

npm i serenity-datasource

Downloadsweekly downloads

5

version

1.0.0

license

none

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability