Shared database code for central services
Contents:
The library supports both MySQL and Postgres. To use the library you can use the following configurations:
const connectionConfig = {
client: 'mysql', //or 'pg' for postgres
connection: {
host: 'some-data-uri',
port: '9999',
user: 'user',
password: 'password',
database: 'databaseSchema'
},
pool: {
// minimum size
min: 2,
// maximum size
max: 10,
// acquire promises are rejected after this many milliseconds
// if a resource cannot be acquired
acquireTimeoutMillis: 30000,
// create operations are cancelled after this many milliseconds
// if a resource cannot be acquired
createTimeoutMillis: 3000,
// destroy operations are awaited for at most this many milliseconds
// new resources will be created after this timeout
destroyTimeoutMillis: 5000,
// free resouces are destroyed after this many milliseconds
idleTimeoutMillis: 30000,
// how often to check for idle resources to destroy
reapIntervalMillis: 1000,
// long long to idle after failed create before trying again
createRetryIntervalMillis: 200
// ping: function (conn, cb) { conn.query('SELECT 1', cb) }
},
debug: false
}
Currently all is set into the config.
Logs are sent to standard output by default.
Running the tests:
npm run test
npm run test:unit
npm run test:xunit
npm run test:coverage
npm run test:coverage-check
Tests include code coverage via istanbul. See the test/unit/ folder for testing scripts.
We use npm-audit-resolver
along with npm audit
to check dependencies for vulnerabilities, and keep track of resolved dependencies with an audit-resolv.json
file.
To start a new resolution process, run:
npm run audit:resolve
You can then check to see if the CI will pass based on the current dependencies with:
npm run audit:check
And commit the changed audit-resolv.json
to ensure that CircleCI will build correctly.