Skip to content

Commit

Permalink
feat: add task: commitizen
Browse files Browse the repository at this point in the history
  • Loading branch information
bingtsingw committed Aug 20, 2022
1 parent 562b402 commit 5c3409e
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 7 deletions.
4 changes: 4 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no -- commitlint --edit "${1}"
19 changes: 16 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

# @bingtsingw/mrm-preset

[mrm](https://github.com/sapegin/mrm) preset to keep configuration files in-sync and consistent across various projects.
Inspired by [mrm-preset-default](https://github.com/sapegin/mrm/tree/master/packages/mrm-preset-default) and [@adonisjs/mrm-preset](https://github.com/adonisjs/mrm-preset)
[mrm](https://github.com/sapegin/mrm) preset to keep configuration files in-sync and consistent across various projects. Highly inspired by [mrm-preset-default](https://github.com/sapegin/mrm/tree/master/packages/mrm-preset-default) and [@adonisjs/mrm-preset](https://github.com/adonisjs/mrm-preset).

> :warning: I use [@antfu/ni](https://github.com/antfu/ni) in this readme file to install npm packages.
> :warning: This documentation uses [@antfu/ni](https://github.com/antfu/ni) for npm operations.
## Usage

Expand Down Expand Up @@ -50,6 +49,16 @@ $ nr mrm vscode
$ nr mrm husky
```

### Commitizen

1. Remove all `commitizen` configs
2. Add `commitizen` packages and configs
3. Install husky hook if exists

```bash
$ nr mrm commitizen
```

### Typescript

1. Create `tsconfig.json`
Expand All @@ -68,3 +77,7 @@ $ nr mrm typescript
4. Add `package.json` scripts
5. install `prettier`
1. install `prettier-plugin-organize-imports` if in a typescript project

```bash
$ nr mrm prettier
```
43 changes: 43 additions & 0 deletions commitizen/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
const { install, packageJson, deleteFiles, lines } = require('mrm-core');

const hasHusky = !!packageJson().get('devDependencies.husky');

const removeMatch = (lines, match) => {
lines = lines.filter((value) => !value.match(match));
return lines;
};

const task = async () => {
deleteFiles([
'.commitlintrc',
'.commitlintrc.json',
'.commitlintrc.yaml',
'.commitlintrc.yml',
'.commitlintrc.js',
'.commitlintrc.cjs',
'.commitlintrc.ts',
'commitlint.config.js',
'commitlint.config.cjs',
'commitlint.config.ts',
]);
deleteFiles(['.czrc']);

install(['commitizen', 'cz-conventional-changelog']);
packageJson().setScript('commit', 'cz').set('config.commitizen', { path: 'cz-conventional-changelog' }).save();

install(['@commitlint/cli', '@commitlint/config-conventional']);
packageJson()
.set('commitlint', { extends: ['@commitlint/config-conventional'] })
.save();

if (hasHusky) {
const commitMsg = '.husky/commit-msg';
lines(commitMsg)
.set(removeMatch(lines(commitMsg).get(), /commitlint/))
.add('npx --no -- commitlint --edit $1')
.save();
}
};

task.description = 'Add commitizen';
module.exports = task;
2 changes: 1 addition & 1 deletion husky/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const task = async () => {

packageJson().setScript('prepare', "if [ -d './node_modules/husky' ]; then husky install; fi").save();
install(['husky']);
await execa('npx husky install');
await execa('npx husky install', { shell: true });
};

task.description = 'Add husky';
Expand Down
6 changes: 3 additions & 3 deletions prettier/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { install, packageJson, lines, json, deleteFiles } = require('mrm-core');

const isTs = !!packageJson().get('devDependencies.typescript');
const hasTypescript = !!packageJson().get('devDependencies.typescript');

const task = () => {
deleteFiles([
Expand All @@ -26,7 +26,7 @@ const task = () => {
trailingComma: 'all',
proseWrap: 'never',
});
if (isTs) {
if (hasTypescript) {
prettierrc.merge({
plugins: ['prettier-plugin-organize-imports'],
});
Expand Down Expand Up @@ -84,7 +84,7 @@ const task = () => {
* Install required dependencies
*/
install(['prettier']);
if (isTs) {
if (hasTypescript) {
install(['prettier-plugin-organize-imports']);
}
};
Expand Down

0 comments on commit 5c3409e

Please sign in to comment.