1.0.0 • Published 2 years ago
@elmijo/monorepo-helper v1.0.0
Monorepo Helpers
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/
1.0.0
2 years ago