# mao-core

> `mao-core` is a library that can be used to implement microservices.

Latest version **0.1.30** (published 2026-02-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install mao-core
pnpm add mao-core
yarn add mao-core
bun add mao-core
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: no vulnerabilities.

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

## Facts

| | |
|---|---|
| Version | 0.1.30 |
| Published | 2026-02-11 |
| First published | 2022-01-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=24.13.1 |
| Dependencies | 3 |
| Unpacked size | 22.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Fabien Bénard |
| Maintainers | fbenard |

## Links

- npm: https://www.npmjs.com/package/mao-core
- Repository: https://github.com/fbenard/mao-core
- Issues: https://github.com/fbenard/mao-core/issues
- npm.io page: https://npm.io/package/mao-core

## Dependencies (3)

- [dotenv](https://npm.io/package/dotenv.md) ^17.2.4
- [express](https://npm.io/package/express.md) ^5.2.1
- [express-openapi-validator](https://npm.io/package/express-openapi-validator.md) ^5.6.2

## Recent versions

- 0.1.30 (latest) — 2026-02-11
- 0.1.29 — 2026-02-11
- 0.1.28 — 2026-02-10
- 0.1.27 — 2026-02-10
- 0.1.26 — 2025-09-29
- 0.1.25 — 2022-02-02
- 0.1.24 — 2022-02-02
- 0.1.23 — 2022-02-01
- 0.1.22 — 2022-02-01
- 0.1.21 — 2022-01-31
- 0.1.20 — 2022-01-31
- 0.1.19 — 2022-01-31
- 0.1.18 — 2022-01-31
- 0.1.17 — 2022-01-31
- 0.1.16 — 2022-01-31
- … 16 more at https://npm.io/package/mao-core/versions

## README

# Mão Core

`mao-core` is a library that can be used to implement microservices.


## Getting started

Create a new Node.js project:

```
npm init
```

Create a directory for your project with the following structure:

```
- package.json
- app/
	- .env
	- index.js
	- config/
		- config.json
```

Edit the `package.json` file as follows:

```
"main": "app/index.js",
"scripts": {
  "start": "nodemon app/index.js"
},
"dependencies": {
	"mao-core": "^0.1"
},
"devDependencies": {
  "nodemon": "^3.1.11"
}
```

Create the file `app/index.js` with the following content:

```
// Internal dependencies

const App = require(`mao-core`).App;


// Create the app

let app = new App
(
	[
		// Create your controllers here
	]
);


// Start the app

app.start().catch
(
	(error) =>
	{
		console.log(error.message);
	}
);


// Export app

module.exports = app;
```

Create the file `app/config/config.json` with the following content (don't forget to replace `"your-service-code"`):

```
{
	"mao":
	{
		"core":
		{
			"registry": {"ENV": "MAO_CORE_REGISTRY"},
			"service":
			{
				"name": "your-service-code",
				"url": {"ENV": "MAO_CORE_SERVICE_URL"}
			},
			"server":
			{		
				"host": {"ENV": "MAO_CORE_SERVER_HOST"},
				"port": {"ENV": "MAO_CORE_SERVER_PORT"}
			}
		}
	}
}
```

Create the file `app/config/api.yml` with the following content (don't forget to replace `"your-service-code"`). Every route registered in controllers must be defined there.

```
openapi: "3.0.3"
info:
  version: "1.0.0"
  title: "your-service-code"
  license:
    name: "MIT"
    url: "https://opensource.org/licenses/mit-license.php"
paths:
  /api/health/ready:
    get:
      description: "Check whether service is ready"
      responses:
        "200":
          description: "Service is ready"
```

Create the `.env` file with the following content:

```
MAO_CORE_REGISTRY=http://localhost:8080

MAO_CORE_SERVICE_URL=http://localhost:8081

MAO_CORE_SERVER_HOST=localhost
MAO_CORE_SERVER_PORT=8081
```

Install dependencies:

```
npm install
```

Start the app:

```
npm start
```

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