diff --git a/.circleci/config.yml b/.circleci/config.yml index b1044891..c44b4d46 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -100,4 +100,4 @@ workflows: - check-peer: filters: branches: - ignore: main \ No newline at end of file + ignore: main diff --git a/.eslintrc.js b/.eslintrc.js index 7e916108..7e858f7e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -14,11 +14,7 @@ module.exports = { ecmaFeatures: { jsx: true }, }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'prettier', - ], + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], plugins: ['@typescript-eslint'], rules: { 'no-implicit-coercion': 'error', diff --git a/.nvmrc b/.nvmrc index 2edeafb0..209e3ef4 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20 \ No newline at end of file +20 diff --git a/.prettierrc b/.prettierrc index 170f592e..260dec73 100644 --- a/.prettierrc +++ b/.prettierrc @@ -11,4 +11,4 @@ "singleQuote": true, "tabWidth": 2, "trailingComma": "es5" -} \ No newline at end of file +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..1d7ac851 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 56ff0e5b..a1f4a0ee 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,11 @@ { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], + "eslint.workingDirectories": [{ "mode": "auto" }], "jest.outputConfig": { "revealOn": "run", "revealWithFocus": "test-results", diff --git a/README-en_us.md b/README-en_us.md index 10fc509a..8dc67b46 100644 --- a/README-en_us.md +++ b/README-en_us.md @@ -31,7 +31,6 @@ const sentence2 = josa(word2, '이/가') + ' 맛있습니다.'; console.log(sentence2); // '바나나가 맛있습니다.' ``` - ## Contributing We welcome contribution from everyone in the community. Read below for detailed contribution guide. diff --git a/README.md b/README.md index 73bb1ee2..aa9ae38a 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ const sentence2 = josa(word2, '이/가') + ' 맛있습니다.'; console.log(sentence2); // '바나나가 맛있습니다.' ``` - ## 기여하기 es-hangul 라이브러리에 기여하고 싶다고 생각하셨다면 아래 문서를 참고해주세요. diff --git a/docs/next.config.js b/docs/next.config.js index bbf80303..43bc325a 100644 --- a/docs/next.config.js +++ b/docs/next.config.js @@ -2,9 +2,9 @@ const withNextra = require('nextra')({ theme: 'nextra-theme-docs', themeConfig: './theme.config.tsx', defaultShowCopyCode: true, -}) +}); /** @type {import('next').NextConfig} */ module.exports = withNextra({ - reactStrictMode: true -}) \ No newline at end of file + reactStrictMode: true, +}); diff --git a/docs/src/pages/docs/api/disassembleHangul.md b/docs/src/pages/docs/api/disassembleHangul.md index 87e36a9a..207b1c67 100644 --- a/docs/src/pages/docs/api/disassembleHangul.md +++ b/docs/src/pages/docs/api/disassembleHangul.md @@ -2,7 +2,6 @@ title: disassembleHangul --- - # disassembleHangul 한글 문자열을 글자별로 초성/중성/종성 단위로 완전히 분리하여, 하나의 문자열로 만듭니다. diff --git a/docs/src/pages/docs/introduction.mdx b/docs/src/pages/docs/introduction.mdx index 83cf25a6..a75dd52f 100644 --- a/docs/src/pages/docs/introduction.mdx +++ b/docs/src/pages/docs/introduction.mdx @@ -1,6 +1,6 @@ # 소개 -한글을 다루는 제품을 개발할 때, 초성 검색, 정확한 조사 붙이기와 같은 작업을 수행해야 할 경우가 많습니다. 그 외로 초성, 중성, 종성 등의 한글을 분리하거나 결합해야 하는 경우도 있죠. `es-hangul` 은 이렇게 비즈니스에서 반복적으로 발생하는 한글 관련한 기능을 쉽고 빠르게 구현할 수 있도록 돕습니다. +한글을 다루는 제품을 개발할 때, 초성 검색, 정확한 조사 붙이기와 같은 작업을 수행해야 할 경우가 많습니다. 그 외로 초성, 중성, 종성 등의 한글을 분리하거나 결합해야 하는 경우도 있죠. `es-hangul` 은 이렇게 비즈니스에서 반복적으로 발생하는 한글 관련한 기능을 쉽고 빠르게 구현할 수 있도록 돕습니다.
@@ -29,6 +29,7 @@ console.log(result); // true ``` ### 한글 문자열 분해 + 주어진 한글 문자열을 초성, 중성, 종성으로 분해하여 배열 형태로 반환하는 기능입니다. 이를 통해 문자열을 더 세밀하게 분석하거나 수정할 수 있습니다. ```tsx @@ -54,4 +55,3 @@ const word2 = '바나나'; const sentence2 = josa(word2, '이/가') + ' 맛있습니다.'; console.log(sentence2); // '바나나가 맛있습니다.' ``` - diff --git a/docs/tailwind.config.ts b/docs/tailwind.config.ts index e9a0944e..7747eda6 100644 --- a/docs/tailwind.config.ts +++ b/docs/tailwind.config.ts @@ -1,17 +1,16 @@ -import type { Config } from "tailwindcss"; +import type { Config } from 'tailwindcss'; const config: Config = { content: [ - "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", - "./src/components/**/*.{js,ts,jsx,tsx,mdx}", - "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + './src/pages/**/*.{js,ts,jsx,tsx,mdx}', + './src/components/**/*.{js,ts,jsx,tsx,mdx}', + './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], theme: { extend: { backgroundImage: { - "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", - "gradient-conic": - "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', }, }, }, diff --git a/src/chosungIncludes.spec.ts b/src/chosungIncludes.spec.ts index 08e2dcaa..4a6ca9b1 100644 --- a/src/chosungIncludes.spec.ts +++ b/src/chosungIncludes.spec.ts @@ -5,6 +5,7 @@ describe('chosungIncludes', () => { it('should return true when "ㅍㄹㅌ" is entered for searching "프론트엔드"', () => { expect(chosungIncludes('프론트엔드', 'ㅍㄹㅌ')).toBe(true); }); + it('should return true when "ㅍㄹㅌ" is entered for searching "00프론트엔드"', () => { expect(chosungIncludes('00프론트엔드', 'ㅍㄹㅌ')).toBe(true); }); diff --git a/src/constants.ts b/src/constants.ts index 548ae39d..47a2c695 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -99,33 +99,35 @@ export const HANGUL_CHARACTERS_BY_MIDDLE_INDEX = Object.values(DISASSEMBLED_VOWE /** * 종성으로 올 수 있는 한글 글자 */ -export const HANGUL_CHARACTERS_BY_LAST_INDEX = ([ - '', - 'ㄱ', - 'ㄲ', - 'ㄳ', - 'ㄴ', - 'ㄵ', - 'ㄶ', - 'ㄷ', - 'ㄹ', - 'ㄺ', - 'ㄻ', - 'ㄼ', - 'ㄽ', - 'ㄾ', - 'ㄿ', - 'ㅀ', - 'ㅁ', - 'ㅂ', - 'ㅄ', - 'ㅅ', - 'ㅆ', - 'ㅇ', - 'ㅈ', - 'ㅊ', - 'ㅋ', - 'ㅌ', - 'ㅍ', - 'ㅎ', -] as const).map(consonant => DISASSEMBLED_CONSONANTS_BY_CONSONANT[consonant]); +export const HANGUL_CHARACTERS_BY_LAST_INDEX = ( + [ + '', + 'ㄱ', + 'ㄲ', + 'ㄳ', + 'ㄴ', + 'ㄵ', + 'ㄶ', + 'ㄷ', + 'ㄹ', + 'ㄺ', + 'ㄻ', + 'ㄼ', + 'ㄽ', + 'ㄾ', + 'ㄿ', + 'ㅀ', + 'ㅁ', + 'ㅂ', + 'ㅄ', + 'ㅅ', + 'ㅆ', + 'ㅇ', + 'ㅈ', + 'ㅊ', + 'ㅋ', + 'ㅌ', + 'ㅍ', + 'ㅎ', + ] as const +).map(consonant => DISASSEMBLED_CONSONANTS_BY_CONSONANT[consonant]); diff --git a/src/index.ts b/src/index.ts index 22f8c5a7..3dc62e14 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,4 +3,3 @@ export * from './disassemble'; export * from './hangulIncludes'; export * from './josa'; export * from './utils'; -