UNPKG

hangulx

Version:

Providing various utilities for Hangul

209 lines (208 loc) 7.29 kB
import { basicConsonantCharCodeSet, basicConsonantSet } from "./constants/consonant/basic-consonants"; import { doubleConsonantCharCodeSet, doubleConsonantDisassembleMap, doubleConsonantSet } from "./constants/consonant/double-consonants"; import { clusterConsonantCharCodeSet, clusterConsonantDisassembleMap, clusterConsonantSet } from "./constants/consonant/cluster-consonants"; import { CONSONANT } from "./constants/CONSONANT"; var Consonant = /** @class */ (function () { function Consonant() { } Consonant.disassembleCompound = function (str) { var results = []; var length = str.length; for (var i = 0; i < length; ++i) { var char = str.charAt(i); if (clusterConsonantDisassembleMap.has(char)) { var disassembled = clusterConsonantDisassembleMap.get(char); if (typeof disassembled !== 'undefined') { results.push.apply(results, Array.from(disassembled)); continue; } } results.push(char); } return results; }; Consonant.disassembleCompoundToString = function (str) { return this.disassembleCompound(str).join(''); }; Consonant.disassembleDouble = function (str) { var results = []; var length = str.length; for (var i = 0; i < length; ++i) { var char = str.charAt(i); if (doubleConsonantDisassembleMap.has(char)) { var disassembled = doubleConsonantDisassembleMap.get(char); if (typeof disassembled !== 'undefined') { results.push.apply(results, Array.from(disassembled)); continue; } } results.push(char); } return results; }; Consonant.disassembleDoubleToString = function (str) { return this.disassembleDouble(str).join(''); }; /** * 주어진 문자 코드가 자음인지 확인합니다. * * Checks if the given char code is a consonant. * * @param charCode - 검사할 단일 문자 * @param charCode - The single character to check * @returns 자음 문자 코드면 true, 아니면 false * @returns true if the character is a consonant char code, otherwise false */ Consonant.isConsonantCharCode = function (charCode) { return charCode >= CONSONANT.START_CHAR_CODE && charCode <= CONSONANT.END_CHAR_CODE; }; /** * 주어진 문자가 자음인지 확인합니다. * * Checks if the given character is a consonant. * * @param char - 검사할 단일 문자 * @param char - The single character to check * @returns 자음이면 true, 아니면 false * @returns true if the character is a consonant, otherwise false */ Consonant.isConsonant = function (char) { return this.isConsonantCharCode(char.charCodeAt(0)); }; /** * 주어진 문자열의 모든 문자가 자음인지 확인합니다. * * Checks if all characters in the given string are consonants. * * @param str - 검사할 문자열 * @param str - The string to check * @returns 문자열의 모든 문자가 자음이면 true, 아니면 false * @returns true if all characters in the string are consonants, otherwise false */ Consonant.isConsonantAll = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (!this.isConsonantCharCode(str.charCodeAt(i))) { return false; } } return true; }; /** * 주어진 문자열에 하나 이상의 자음이 포함되어 있는지 확인합니다. * * Checks if the given string contains at least one consonant. * * @param str - 검사할 문자열 * @param str - The string to check * @returns 자음이 하나라도 있으면 true, 없으면 false * @returns true if there is at least one consonant, otherwise false */ Consonant.hasConsonant = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (this.isConsonantCharCode(str.charCodeAt(i))) { return true; } } return false; }; Consonant.isBasicConsonantCharCode = function (charCode) { return basicConsonantCharCodeSet.has(charCode); }; Consonant.isBasicConsonant = function (char) { return basicConsonantSet.has(char); }; Consonant.isBasicConsonantAll = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (!this.isBasicConsonantCharCode(str.charCodeAt(i))) { return false; } } return true; }; Consonant.hasBasicConsonant = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (this.isBasicConsonantCharCode(str.charCodeAt(i))) { return true; } } return false; }; Consonant.isDoubleConsonantCharCode = function (charCode) { return doubleConsonantCharCodeSet.has(charCode); }; Consonant.isDoubleConsonant = function (char) { return doubleConsonantSet.has(char); }; Consonant.isDoubleConsonantAll = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (!this.isDoubleConsonantCharCode(str.charCodeAt(i))) { return false; } } return true; }; Consonant.hasDoubleConsonant = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (this.isDoubleConsonantCharCode(str.charCodeAt(i))) { return true; } } return false; }; Consonant.isClusterConsonantCharCode = function (charCode) { return clusterConsonantCharCodeSet.has(charCode); }; Consonant.isClusterConsonant = function (char) { return clusterConsonantSet.has(char); }; Consonant.isClusterConsonantAll = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (!this.isClusterConsonantCharCode(str.charCodeAt(i))) { return false; } } return true; }; Consonant.hasClusterConsonant = function (str) { var length = str.length; if (length === 0) { return false; } for (var i = 0; i < length; ++i) { if (this.isClusterConsonantCharCode(str.charCodeAt(i))) { return true; } } return false; }; return Consonant; }()); export { Consonant };