korean-gotong
Version:
한글이 인생에 고통을 선사할 때마다 기능이 추가될 예정입니다.
163 lines (129 loc) • 5.09 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.이가 = exports.을를 = exports.은는 = exports.과와 = exports.getTopicParticle = exports.getSubjectParticle = exports.getObjectParticle = exports.getLinkingParticle = exports.getEndsWithFinal = exports.addTopicParticle = exports.addSubjectParticle = exports.addObjectParticle = exports.addLinkingParticle = void 0;
var _hangulCodes = require("./hangulCodes");
/**
* 주어진 문자열의 마지막 글자가 음가가 있는 종성으로 끝나는지 확인하는 함수
* @param str 확인할 문자열
* @returns 마지막 글자가 음가가 있는 종성으로 끝나는 한글이면 `true`, 아니면 `false`
*/
var getEndsWithFinal = function getEndsWithFinal(str) {
var charcode = str.charCodeAt(str.length - 1);
if (_hangulCodes.Syllables.has(charcode)) {
return (charcode - 0xac00) % 28 !== 0;
} else if (_hangulCodes.AllConsonant.has(charcode)) {
return true; // 초성 혹은 자음으로 끝나는 단어
}
return false;
};
/**
* 주어진 문자열 뒤에 보조사 '은'/'는' 중에서 무엇이 오는지 반환
* @param str 조사 앞의 문자열
* @returns '은' 또는 '는'
*/
exports.getEndsWithFinal = getEndsWithFinal;
var getTopicParticle = function getTopicParticle(str) {
return getEndsWithFinal(str) ? "은" : "는";
};
/**
* 주어진 문자열 뒤에 격조사 '을'/'를' 중에서 무엇이 오는지 반환
* @param str 조사 앞의 문자열
* @returns '을' 또는 '를'
*/
exports.getTopicParticle = getTopicParticle;
var getObjectParticle = function getObjectParticle(str) {
return getEndsWithFinal(str) ? "을" : "를";
};
/**
* 주어진 문자열 뒤에 격조사/보조사 '이'/'가' 중에서 무엇이 오는지 반환
* @param str 조사 앞의 문자열
* @returns '이' 또는 '가'
*/
exports.getObjectParticle = getObjectParticle;
var getSubjectParticle = function getSubjectParticle(str) {
return getEndsWithFinal(str) ? "이" : "가";
};
/**
* 주어진 문자열 뒤에 접속조사 '과'/'와' 중에서 무엇이 오는지 반환
* @param str 조사 앞의 문자열
* @returns '과' 또는 '와'
*/
exports.getSubjectParticle = getSubjectParticle;
var getLinkingParticle = function getLinkingParticle(str) {
return getEndsWithFinal(str) ? "과" : "와";
};
/**
* `getTopicParticle`을 사용해 입력 문자열에 '은'/'는'를 붙여 반환
* @param str '은'/'는'을 붙일 문자열
* @example addTopicParticle('사과') //'사과는' 반환
*/
exports.getLinkingParticle = getLinkingParticle;
var addTopicParticle = function addTopicParticle(str) {
return str + getTopicParticle(str);
};
/**
* `getSubjectParticle`을 사용해 입력 문자열에 '이'/'가'를 붙여 반환
* @param str '이'/'가'를 붙일 문자열
* @example addSubjectParticle('사과') //'사과가' 반환
*/
exports.addTopicParticle = addTopicParticle;
var addObjectParticle = function addObjectParticle(str) {
return str + getSubjectParticle(str);
};
/**
* `getObjectParticle`을 사용해 입력 문자열에 '을'/'를'를 붙여 반환
* @param str '을'/'를'을 붙일 문자열
* @example addObjectParticle('사과') //'사과를' 반환
*/
exports.addObjectParticle = addObjectParticle;
var addSubjectParticle = function addSubjectParticle(str) {
return str + getObjectParticle(str);
};
/**
* `getLinkingParticle`을 사용해 입력 문자열에 '과'/'와'를 붙여 반환
* @param str '과'/'와'를 붙일 문자열
* @example addLinkingParticle('사과') //'사과와' 반환
*/
exports.addSubjectParticle = addSubjectParticle;
var addLinkingParticle = function addLinkingParticle(str) {
return str + getLinkingParticle(str);
};
/**
* `getTopicParticle`을 사용해 입력 문자열에 '은'/'는'를 붙여 반환
* @category alias
* @see {@link addTopicParticle}
* @param str '은'/'는'을 붙일 문자열
* @example 은는('사과') //'사과는' 반환
*/
exports.addLinkingParticle = addLinkingParticle;
var 은는 = addTopicParticle;
/**
* `getSubjectParticle`을 사용해 입력 문자열에 '이'/'가'를 붙여 반환
* @category alias
* @see {@link addSubjectParticle}
* @param str '이'/'가'를 붙일 문자열
* @example 이가('사과') //'사과가' 반환
*/
exports.은는 = 은는;
var 이가 = addSubjectParticle;
/**
* `getObjectParticle`을 사용해 입력 문자열에 '을'/'를'를 붙여 반환
* @category alias
* @see {@link addObjectParticle}
* @param str '을'/'를'을 붙일 문자열
* @example 을를('사과') //'사과를' 반환
*/
exports.이가 = 이가;
var 을를 = addObjectParticle;
/**
* `getLinkingParticle`을 사용해 입력 문자열에 '과'/'와'를 붙여 반환
* @category alias
* @see {@link addLinkingParticle}
* @param str '과'/'와'를 붙일 문자열
* @example 과와('사과') //'사과와' 반환
*/
exports.을를 = 을를;
var 과와 = addLinkingParticle;
exports.과와 = 과와;