Skip to content

Commit

Permalink
clean up source tree
Browse files Browse the repository at this point in the history
  • Loading branch information
qluana7 committed Oct 28, 2021
1 parent 4738be7 commit 26fbcfc
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 43 deletions.
1 change: 1 addition & 0 deletions mod.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export { Hangul } from "./src/entities/hangul.ts"
export { Converter } from "./src/entities/converter.ts"
export { Assembler } from "./src/entities/assembler.ts"
export { InteractLists, ComplexInteractionLists } from "./src/entities/interactList.ts"
export { HangulBuilder } from "./src/entities/hangulBuilder.ts"
Expand Down
19 changes: 0 additions & 19 deletions src/assemblers/assemble.ts

This file was deleted.

4 changes: 1 addition & 3 deletions src/entities/assembler.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import { assemble } from "../assemblers/assemble.ts"
import { disassemble } from "../assemblers/disassemble.ts"
import {} from "../assemblers/disassemble.ts"
import { assemble, disassemble } from "../modules/assemble.ts"

/**
* Provide hangul assemble and disassemble function.
Expand Down
26 changes: 26 additions & 0 deletions src/entities/converter.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { toKorean } from "../modules/convert.ts"
import { disassemble } from "../modules/assemble.ts"
import { InteractLists } from "./interactList.ts"

export class Converter {
static toKorean(eng: string): string {
return toKorean(eng);
}

static toEnglish(kor: string): string {
const c = disassemble(kor);
let r = [];

for (let i = 0; i < c.length; i++) {
const ko = InteractLists.allInteractions.map(v => v[0]);
const en = InteractLists.allInteractions.map(v => v[1]);
r.push(
ko.includes(c[i]) ?
en[ko.indexOf(c[i])] :
c[i]
);
}

return r.reduce((p, c) => p + c);
}
}
42 changes: 24 additions & 18 deletions src/entities/hangul.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { toKorean } from "../modules/convert.ts"
import { Assembler } from "../entities/assembler.ts"
import { InteractLists } from "./interactList.ts"
import { HangulBuilder } from "./hangulBuilder.ts"
import { StringType,
getType } from "./stringType.ts"
import { random,
RandomOption } from "../modules/random.ts"
import { Converter } from "./converter.ts";

function insert(origin: string, ind: number, value: string): string {
return [origin.slice(0, ind), value, origin.slice(ind)].join('');
Expand Down Expand Up @@ -92,37 +91,44 @@ export class Hangul {
return Hangul.getType(this.content);
}

/**
* Convert specific value to Korean.
* @example Hangul.engToKor(new Hangul('dks')) // '안'
* @param str The value that want to convert
* @returns Hangul object that contains korean string
*/
static engToKor(str: Hangul): Hangul
/**
* Convert specific value to Korean.
* @example Hangul.engToKor('dks') // '안'
* @param str The value that want to convert
* @returns Korean string
*/
static engToKor(str: string): string {
return toKorean(str);
static engToKor(str: string): string
static engToKor(str: string | Hangul): string | Hangul {
const s: string = Converter.toKorean(str instanceof Hangul ? str.content : str);

return str instanceof Hangul ? new Hangul(s) : s;
}

/**
* Convert specific value to English.
* @example Hangul.korToEng(new Hangul('안')) // 'dks'
* @param str The value that want to convert
* @returns Hangul object that contains english string
*/
static korToEng(str: Hangul): Hangul
/**
* Convert specific value to English.
* @example Hangul.korToEng('안') // 'dks'
* @param str The value that want to convert
* @returns English string
*/
static korToEng(str: string): string {
const c = Assembler.disassemble(str);
let r = [];

for (let i = 0; i < c.length; i++) {
const ko = InteractLists.allInteractions.map(v => v[0]);
const en = InteractLists.allInteractions.map(v => v[1]);
r.push(
ko.includes(c[i]) ?
en[ko.indexOf(c[i])] :
c[i]
);
}
static korToEng(str: string): string
static korToEng(str: string | Hangul): string | Hangul {
const s: string = Converter.toEnglish(str instanceof Hangul ? str.content : str);

return r.reduce((p, c) => p + c);
return str instanceof Hangul ? new Hangul(s) : s;
}

/**
Expand Down
18 changes: 18 additions & 0 deletions src/assemblers/disassemble.ts → src/modules/assemble.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
import { InteractLists } from "../entities/interactList.ts"
import { toKorean } from "./convert.ts"

export function assemble(str: string): string {
const c = str.split('');
let r = [];

for (let i = 0; i < c.length; i++) {
const ko = InteractLists.allInteractions.map(v => v[0]);
const en = InteractLists.allInteractions.map(v => v[1]);
r.push(
ko.includes(c[i]) ?
en[ko.indexOf(c[i])] :
c[i]
);
}

return toKorean(r.reduce((p, c) => p + c));
}

export function disassemble(str: string): string[] {
const ch: string[] = str.split('');
Expand Down
9 changes: 6 additions & 3 deletions test/hangul.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@ import {
Hangul
} from "../mod.ts"

const han = new Hangul("테스트");
const han: Hangul = new Hangul("테스트");

console.log(han.toString());

han.append("!");
han.insert(0, "Insert ");
han.insert(0, "insert ");

console.log(han.toString());

console.log(Hangul.engToKor("dkssud tprP!"));
console.log(Hangul.engToKor("dkf tn djqtsms answk cjfl : 32암$%@ asakdno"));

console.log(Hangul.korToEng("안녕 세계!"));
console.log(Hangul.korToEng("알 수 없는 문자 처리 : 32dka$%@ asakdno"));
console.log(Hangul.korToEng("알 수 없는 문자 처리 : 32dka$%@ asakdno"));

console.log(Hangul.korToEng(han));
console.log(Hangul.engToKor(new Hangul("xptmxm")));

0 comments on commit 26fbcfc

Please sign in to comment.