# BCGov Express Utilities

[![Lifecycle:Experimental](https://img.shields.io/badge/Lifecycle-Experimental-339999)](Redirect-URL)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)

![NPM](https://img.shields.io/badge/NPM-%23CB3837.svg?style=for-the-badge&logo=npm&logoColor=white)
[![NodeJS](https://img.shields.io/badge/Node.js_20-43853D?style=for-the-badge&logo=node.js&logoColor=white)](NodeJS)
[![Typescript](https://img.shields.io/badge/TypeScript_5-007ACC?style=for-the-badge&logo=typescript&logoColor=white)](Typescript)
[![React](https://img.shields.io/badge/-ReactJs-61DAFB?logo=react&logoColor=white&style=for-the-badge)](React)

# `Introduction`

This npm package provides utility functions for Express APIs, aimed at reducing code complexity, enhancing data integrity and security, and promoting consistency and scalability.

- Built for a NodeJS:20 Express API.
- Works with Vanilla JavaScript or TypeScript 5. [![JavaScript](https://img.shields.io/badge/-F7DF1E?logo=javascript&logoColor=000)](https://www.javascript.com/) [![TypeScript](https://img.shields.io/badge/-3178C6?logo=typescript&logoColor=ffffff)](https://www.typescriptlang.org/)  

<br />

[![GitHub release](https://img.shields.io/github/v/release/bcgov/citz-imb-express-utilities.svg)](https://GitHub.com/bcgov/citz-imb-express-utilities/releases/)  
[![Npm package total downloads](https://badgen.net/npm/dt/@bcgov/citz-imb-express-utilities)](https://www.npmjs.com/package/@bcgov/citz-imb-express-utilities)  
[![GitHub stars](https://img.shields.io/github/stars/bcgov/citz-imb-express-utilities.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/bcgov/citz-imb-express-utilities/stargazers/)  

### `Get Started Here!`

[Documentation] - `Installation, setup and usage guides.`

<br />

#### `For Developers working on this package:`

We emphasize the inclusion of documentation on our code to enhance onboarding efficiency. Understanding the project's architecture and operational dynamics create efficient team members.

We encourage collaboration by making our project's infrastructure transparent and accessible. Enabling developers to easily navigate and contribute to different parts of the codebase without barriers. Enriching our documentation contributes to a self-documenting codebase. The project's structure and commands are defined and updated within the repository itself. Ultimately, making the project more maintainable and scalable over time.

Use the links below to help you understand the codebase better.

- [Directory Structure]
- [Scripts]
- [Package Management Plan]
- [Publishing a New Release Version]

<br />

[Return to Top](#bcgov-express-utilities)

<!-- Link References -->
[CITZ IMB Common Code]: mailto:citz.codemvp@gov.bc.ca?subject=SSO%20Packages%20Support

[Documentation]: https://developer.gov.bc.ca/docs/default/component/citz-imb-express-utilities-npm-package
[Directory Structure]: https://github.com/bcgov/citz-imb-express-utilities/wiki/Directory-Structure
[Scripts]: https://github.com/bcgov/citz-imb-express-utilities/wiki/Scripts
[Publishing a New Release Version]: https://citz-imb.atlassian.net/l/cp/rj2F0y2n
[Package Management Plan]: https://citz-imb.atlassian.net/l/cp/jcxjEmBf
