# connect-utilities

> Common connect utilities, services and middlesares used by all microservices.

Latest version **2.0.24** (published 2020-03-25) · ISC license · 0 weekly downloads

## Install

```sh
npm install connect-utilities
pnpm add connect-utilities
yarn add connect-utilities
bun add connect-utilities
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.24 |
| Published | 2020-03-25 |
| First published | 2019-08-14 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 25 |
| Unpacked size | 42.4 KB |
| Known vulnerabilities | 0 (+40 in 4 direct dependencies) |
| Install scripts | no |
| Maintainers | justingosan |

## Links

- npm: https://www.npmjs.com/package/connect-utilities
- Repository: https://justingosan@bitbucket.org/mclinicadev/connect-utilities
- Homepage: https://bitbucket.org/mclinicadev/connect-utilities#readme
- npm.io page: https://npm.io/package/connect-utilities

## Dependencies (25)

- [qs](https://npm.io/package/qs.md) ^6.9.0
- [cors](https://npm.io/package/cors.md) ^2.8.5
- [axios](https://npm.io/package/axios.md) ^0.19.0
- [helmet](https://npm.io/package/helmet.md) ^3.21.2
- [lodash](https://npm.io/package/lodash.md) ^4.17.15
- [mysql2](https://npm.io/package/mysql2.md) ^2.0.0
- [express](https://npm.io/package/express.md) ^4.17.1
- [winston](https://npm.io/package/winston.md) ^3.2.1
- [jwks-rsa](https://npm.io/package/jwks-rsa.md) ^1.6.0
- [celebrate](https://npm.io/package/celebrate.md) ^10.0.1
- [sequelize](https://npm.io/package/sequelize.md) ^5.21.2
- [supertest](https://npm.io/package/supertest.md) ^4.0.2
- [cls-hooked](https://npm.io/package/cls-hooked.md) ^4.2.2
- [body-parser](https://npm.io/package/body-parser.md) ^1.19.0
- [cls-rtracer](https://npm.io/package/cls-rtracer.md) ^1.3.0
- [jsonwebtoken](https://npm.io/package/jsonwebtoken.md) ^8.5.1
- [swagger-jsdoc](https://npm.io/package/swagger-jsdoc.md) ^3.4.0
- [firebase-admin](https://npm.io/package/firebase-admin.md) ^8.7.0
- [keycloak-admin](https://npm.io/package/keycloak-admin.md) ^1.13.0
- [libphonenumber-js](https://npm.io/package/libphonenumber-js.md) ^1.7.26
- [swagger-ui-express](https://npm.io/package/swagger-ui-express.md) ^4.1.2
- [@google-cloud/pubsub](https://npm.io/package/@google-cloud/pubsub.md) ^1.1.5
- [express-bearer-token](https://npm.io/package/express-bearer-token.md) ^2.4.0
- [joi-errors-for-forms](https://npm.io/package/joi-errors-for-forms.md) ^0.2.6
- [@google-cloud/logging-winston](https://npm.io/package/@google-cloud/logging-winston.md) ^3.0.0

## Recent versions

- 2.0.24 (latest) — 2020-03-25
- 2.0.23 — 2020-03-23
- 2.0.22 — 2020-03-17
- 2.0.21 — 2020-03-16
- 2.0.20 — 2020-03-12
- 2.0.19 — 2020-02-13
- 2.0.18 — 2020-01-16
- 2.0.17 — 2019-12-12
- 2.0.16 — 2019-12-11
- 2.0.15 — 2019-12-09
- 2.0.14 — 2019-12-06
- 2.0.12 — 2019-12-05
- 2.0.11 — 2019-12-04
- 2.0.10 — 2019-12-01
- 2.0.9 — 2019-12-01
- … 36 more at https://npm.io/package/connect-utilities/versions

## README

# Connect Utilities
Common connect utilities, services and middlesares used by all microservices.


## Usage
```
const connectUtils = require('connect-utilities');

// Logger
global.logger = connectUtils.logger.initializeLogger({ packageJsonPath: __dirname + '../../package.json' });


// Express Middlewares
const {
    errorHandlerMiddleware,
    inputValidationMiddleware,
    routeLoggerMiddleware
} = connectUtils.middlewares;

// pubsub
const {
    Publisher,
    Subscriber
} = connectUtils.pubsub;

// first arg is logger
app.use(errorHandlerMiddleware(global.logger))

// first arg is logger
app.use(routeLoggerMiddleware(global.logger))
```

//sequelize
```
const { initializeSequelize } = require('connect-utilities').sequelize;

global.models = await initializeSequelize({
    connectionString: global.config.DB_CONNECTION_STRING,
    modelsPath: path.join(__dirname, '/models') //should be absolute path
    logger: global.logger //defaults to console if not specified
  });
```

// ConfigRetriever
```
global.configRetriever = new ConfigRetrieverMiddleware(global.models.UserFieldConfiguration);

publicRouter.use('/admin', global.configRetriever.getMiddlewares(), require('./routes/admin.route'));

`req.serviceConfig` is exposed
```

---
_Source: https://npm.io/package/connect-utilities · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
