Options
All
  • Public
  • Public/Protected
  • All
Menu

Monorepo Helpers - v1.0.0

Monorepo Helpers

Build Status codecov Coverage Status

This package has some helpers to work more easily with a Monorepository.

Install

yarn

yarn add --dev @elmijo/monorepo-helpers

npm

npm i --save-dev @elmijo/monorepo-helpers

Usage

Single package repository

Project skeleton

project
| package.json
| index.ts
| README.md
|
└─packages
|
└─packageA
| package.json
| index.ts
| README.md
|
└─packageB
package.json
index.ts
README.md

Package A

// packages/packageA/jest.config.ts
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default jestPackageConfig({ projectDir: __dirname })

Package B

// packages/packageB/jest.config.ts
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default jestPackageConfig({ projectDir: __dirname })

Project

// jest.config.ts
import { jestRootConfig } from "@elmijo/monorepo-helper"

export default jestRootConfig({ packageRepos: ["./packages"] })

Multi package repositories

Project skeleton

project
| package.json
| index.ts
| README.md
|
└─frontend
| |
| └─packageA
| package.json
| index.ts
| README.md
|
└─backend
|
└─packageB
package.json
index.ts
README.md

Package A

// packages/frontend/packageA/jest.config.ts
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default jestPackageConfig({ projectDir: __dirname })

Package B

// packages/backend/packageB/jest.config.ts
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default jestPackageConfig({ projectDir: __dirname })

Project

// jest.config.ts
import { jestRootConfig } from "@elmijo/monorepo-helper"

export default jestRootConfig({ packageRepos: ["./frontend", "./backend"] })

Custom configuration

Both functions work with a default configuration, but you can override them whenever you want. Let's use the single package repository example, you can do that:

// packages/packageA/jest.config.ts
import { Config } from "@jest/types"
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default {
...jestPackageConfig({ projectDir: __dirname }),
verbose: true,
} as Config.InitialOptions

Package B

// packages/packageB/jest.config.ts
import { Config } from "@jest/types"
import { jestPackageConfig } from "@elmijo/monorepo-helper"

export default {
...jestPackageConfig({ projectDir: __dirname }),
coverageThreshold: {
global: {
branches: 95,
functions: 95,
lines: 95,
statements: 95,
},
},
} as Config.InitialOptions

Project

// jest.config.ts
import { Config } from "@jest/types"
import { jestRootConfig } from "@elmijo/monorepo-helper"

export default {
...jestRootConfig({ packageRepos: ["./packages"] })
watchman: false
} as Config.InitialOptions

Documentation

(https://elmijo.github.io/monorepo-helper/)[https://elmijo.github.io/monorepo-helper/]

Generated using TypeDoc