https://github.com/fairdataihub/config
Commonly used configs for FAIR Data Innovations Hub projects
https://github.com/fairdataihub/config
Last synced: about 1 year ago
JSON representation
Commonly used configs for FAIR Data Innovations Hub projects
- Host: GitHub
- URL: https://github.com/fairdataihub/config
- Owner: fairdataihub
- License: mit
- Created: 2022-07-01T18:53:35.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-07T18:58:34.000Z (over 1 year ago)
- Last Synced: 2024-11-07T19:44:59.352Z (over 1 year ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@fairdataihub/config
- Size: 1.47 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @fairdataihub/config



A simple list of configs for use in [FAIR Data Innovations Hub](https://github.com/fairdataihub) projects.
```
npm install --save-dev @fairdataihub/config
yarn add -D @fairdataihub/config
```
## How to use
Refer to our documentation for this package here: [@fairdataihub/config](https://dev.fairdataihub.org/general/config.html)
## Getting started
1. `git clone https://github.com/fairdataihub/config.git `
2. `cd config`
3. `npm install`
To enable deployment, you will need to:
1. Setup `NPM_TOKEN` secret in GitHub actions ([Settings > Secrets > Actions](https://github.com/fairdataihub/config/settings/secrets/actions))
2. Give `GITHUB_TOKEN` write permissions for GitHub releases ([Settings > Actions > General](https://github.com/fairdataihub/config/settings/actions) > Workflow permissions)
## Features
Currently supported configs:
- prettier
- eslint
- devmoji
- commitlint
### Typescript
Leverages [esbuild](https://github.com/evanw/esbuild) for blazing fast builds, but keeps `tsc` to generate `.d.ts` files.
Generates two builds to support both ESM and CJS.
Commands:
- `build`: runs typechecking then generates CJS, ESM and `d.ts` files in the `build/` directory
- `clean`: removes the `build/` directory
- `type:dts`: only generates `d.ts`
- `type:check`: only run typechecking
- `type:build`: only generates CJS and ESM
### Tests
This library uses [ava](https://github.com/avajs/ava) and [esbuild-register](https://github.com/egoist/esbuild-register) so that there is no need to compile before the tests start running. The coverage is done through [nyc](https://github.com/istanbuljs/nyc).
Commands:
- `test`: runs ava test runner
- `test:coverage`: runs ava test runner and generates coverage reports
### Format & lint
This project relies on the combination of [eslint](https://github.com/eslint/eslint) — through [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) for linting and [prettier](https://github.com/prettier/prettier) for formatting.
It also uses [cspell](https://github.com/streetsidesoftware/cspell) to ensure spelling
Commands:
- `format`: runs prettier with automatic fixing
- `format:check`: runs prettier without automatic fixing (used in CI)
- `lint`: runs eslint with automatic fixing
- `lint:check`: runs eslint without automatic fixing (used in CI)
- `spell:check`: runs spellchecking
### Releasing
Under the hood, this library uses [semantic-release](https://github.com/semantic-release/semantic-release) and [commitizen](https://github.com/commitizen/cz-cli).
The goal is to avoid manual release process. Using `semantic-release` will automatically create a github release (hence tags) as well as an npm release.
Based on your commit history, `semantic-release` will automatically create a patch, feature or breaking release.
Commands:
- `cz`: interactive CLI that helps you generate a proper git commit message, using [commitizen](https://github.com/commitizen/cz-cli)
- `semantic-release`: triggers a release (used in CI)