Skip to content

Commit

Permalink
Merge pull request #12 from endless-horses/chore#11-style
Browse files Browse the repository at this point in the history
코드 스타일 설정
  • Loading branch information
jinlee1703 authored Jan 22, 2024
2 parents fa802a2 + 581e2b1 commit fa66790
Show file tree
Hide file tree
Showing 12 changed files with 715 additions and 191 deletions.
12 changes: 12 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"settings": {
"react": {
"version": "detect"
}
},
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "prettier"],
"extends": ["plugin:@typescript-eslint/recommended", "plugin:react/recommended", "plugin:prettier/recommended"],
"rules": {"prettier/prettier": ["error", { "endOfLine": "auto" }], "react/react-in-jsx-scope": "off"},
"ignorePatterns": ["craco.config.js"],
}
9 changes: 9 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 120,
"parser": "typescript",
"useTabs": true,
"tabWidth": 2
}
86 changes: 47 additions & 39 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -1,42 +1,50 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
plugins: ['commitlint-plugin-function-rules'],
rules: {
// 스코프는 컨벤션과 맞지 않기에, 사용하지 않는 것으로 한다.
'scope-empty': [2, 'always'],
// 헤더의 길이는 50자로 제한한다.
'header-max-length': [2, 'always', 50],
// 본문의 한 줄은 72자로 제한한다.
'body-max-line-length': [2, 'always', 72],
// 타입은 아래의 태그만 사용하도록 한다.
'type-enum': [2, 'always', ['feat', 'fix', 'refactor', 'style', 'docs', 'test', 'chore']],
'subject-full-stop': [0],
'function-rules/subject-full-stop': [
2,
'always',
({ subject, header, body, raw }) => {
// 이슈 번호로 종료되는가?
if (subject && !/[^\.] #[0-9]+$/.test(subject))
return [false, 'subject는 issue 번호를 #[number] 형식으로 끝에 포함해야하며, .(점) 으로 끝나지 말아야 합니다.'];
extends: ['@commitlint/config-conventional'],
plugins: ['commitlint-plugin-function-rules'],
rules: {
// 스코프는 컨벤션과 맞지 않기에, 사용하지 않는 것으로 한다.
'scope-empty': [2, 'always'],
// 헤더의 길이는 50자로 제한한다.
'header-max-length': [2, 'always', 50],
// 본문의 한 줄은 72자로 제한한다.
'body-max-line-length': [2, 'always', 72],
// 타입은 아래의 태그만 사용하도록 한다.
'type-enum': [2, 'always', ['feat', 'fix', 'refactor', 'style', 'docs', 'test', 'chore']],
'subject-full-stop': [0],
'function-rules/subject-full-stop': [
2,
'always',
({ subject, header, body, raw }) => {
// 이슈 번호로 종료되는가?
if (subject && !/[^\.] #[0-9]+$/.test(subject)) {
return [
false,
'subject는 issue 번호를 #[number] 형식으로 끝에 포함해야하며, .(점) 으로 끝나지 말아야 합니다.',
];
}

// 제목과 바디가 공백으로 분리되어있는가?
if (body && raw && header && raw.search('\n\n') !== header.length)
return [false, '제목과 본문은 공백으로 구분해주시기 바랍니다.'];
// 제목과 바디가 공백으로 분리되어있는가?
if (body && raw && header && raw.search('\n\n') !== header.length) {
return [false, '제목과 본문은 공백으로 구분해주시기 바랍니다.'];
}

return [true];
}],
'body-leading-blank': [0],
'function-rules/body-leading-blank': [
2,
'always',
({ body }) => {
// body가 없으면 굳이 판단하지 않는다.
if (!body)
return [true];
if (body.split('\n').filter(line => !/ *-/.test(line)).length > 0)
return [false, '본문의 각 줄은 - 으로 시작해야 합니다.'];
return [true];
}
],
},
}
return [true];
},
],
'body-leading-blank': [0],
'function-rules/body-leading-blank': [
2,
'always',
({ body }) => {
// body가 없으면 굳이 판단하지 않는다.
if (!body) {
return [true];
}
if (body.split('\n').filter((line) => !/ *-/.test(line)).length > 0) {
return [false, '본문의 각 줄은 - 으로 시작해야 합니다.'];
}
return [true];
},
],
},
};
Loading

0 comments on commit fa66790

Please sign in to comment.