Skip to content

Commit 3f1a703

Browse files
Refactor nested if-else for readability
1 parent 5f809f3 commit 3f1a703

1 file changed

Lines changed: 25 additions & 21 deletions

File tree

src/scripts/scripts.ts

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
WAW,
1111
YAA,
1212
} from '../constants/arabic-letters';
13-
import { setCharAt, similarityScore } from '../utils';
1413
import { fillDefaultOptions, type OldArabicOptions } from '../options';
14+
import { setCharAt, similarityScore } from '../utils';
1515

1616
/**
1717
* Remove all tashkeel from text
@@ -45,27 +45,31 @@ export function toOldArabic(sentence: string, option: OldArabicOptions = {}): st
4545
// if letter is not Arabic letter => append to newSentence
4646
if (!ARABIC_DOTLESS_DICT.hasOwnProperty(sentence[letter])) {
4747
newSentence += sentence[letter];
48+
}
49+
// Handle 'ن' Issue:
50+
// if 'ن' is not last character && next character is Arabic letter or 'ـ'
51+
// then replace it with 'ب' corresponding dotless letter => 'ٮ'
52+
else if (
53+
replaceMidNoonWithBah &&
54+
sentence[letter] == 'ن' &&
55+
letter + 1 < sentence.length &&
56+
(ARABIC_DOTLESS_DICT.hasOwnProperty(sentence[letter + 1]) || sentence[letter + 1] == 'ـ')
57+
) {
58+
newSentence += ARABIC_DOTLESS_DICT['ب'];
59+
}
60+
// Handle 'ي' Issue
61+
// if 'ي' is not last character && next character is Arabic letter or 'ـ'
62+
// then replace it with 'ب' corresponding dotless letter => 'ٮ'
63+
else if (
64+
replaceMidYahWithBah &&
65+
sentence[letter] == 'ي' &&
66+
letter + 1 < sentence.length &&
67+
(ARABIC_DOTLESS_DICT.hasOwnProperty(sentence[letter + 1]) || sentence[letter + 1] == 'ـ')
68+
) {
69+
newSentence += ARABIC_DOTLESS_DICT['ب'];
4870
} else {
49-
if (
50-
// Handle 'ن' Issue
51-
replaceMidNoonWithBah &&
52-
sentence[letter] == 'ن' &&
53-
letter + 1 < sentence.length &&
54-
(ARABIC_DOTLESS_DICT.hasOwnProperty(sentence[letter + 1]) || sentence[letter + 1] == 'ـ')
55-
) {
56-
newSentence += ARABIC_DOTLESS_DICT['ب'];
57-
} else if (
58-
// Handle 'ي' Issue
59-
replaceMidYahWithBah &&
60-
sentence[letter] == 'ي' &&
61-
letter + 1 < sentence.length &&
62-
(ARABIC_DOTLESS_DICT.hasOwnProperty(sentence[letter + 1]) || sentence[letter + 1] == 'ـ')
63-
) {
64-
newSentence += ARABIC_DOTLESS_DICT['ب'];
65-
} else {
66-
// if letter is Arabic letter => append corresponding dotless letter to newSentence
67-
newSentence += ARABIC_DOTLESS_DICT[sentence[letter]];
68-
}
71+
// if letter is Arabic letter => append corresponding dotless letter to newSentence
72+
newSentence += ARABIC_DOTLESS_DICT[sentence[letter]];
6973
}
7074
}
7175
return newSentence;

0 commit comments

Comments
 (0)