mn-spellcheck 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checker.d.ts +3 -5
- package/dist/checker.d.ts.map +1 -1
- package/dist/checker.js +16 -11
- package/dist/checker.js.map +1 -1
- package/dist/suffix-engine.d.ts +8 -1
- package/dist/suffix-engine.d.ts.map +1 -1
- package/dist/suffix-engine.js +60 -32
- package/dist/suffix-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/checker.d.ts
CHANGED
|
@@ -18,14 +18,12 @@ export interface MnSpellCheckerOptions {
|
|
|
18
18
|
export declare class MnSpellChecker {
|
|
19
19
|
private entries;
|
|
20
20
|
private suffixRules;
|
|
21
|
+
private ruleIndex;
|
|
21
22
|
private repRules;
|
|
22
23
|
private options;
|
|
23
|
-
|
|
24
|
+
ready: boolean;
|
|
25
|
+
private suffixCache;
|
|
24
26
|
constructor(options?: MnSpellCheckerOptions);
|
|
25
|
-
/**
|
|
26
|
-
* Checker амжилттай ачаалагдсан эсэхийг шалгана.
|
|
27
|
-
*/
|
|
28
|
-
get ready(): boolean;
|
|
29
27
|
private _findDictionaryFiles;
|
|
30
28
|
/**
|
|
31
29
|
* Нэг үг зөв эсэхийг шалгана.
|
package/dist/checker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,OAAO,CAAgF;
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,OAAO,CAAgF;IACxF,KAAK,EAAE,OAAO,CAAS;IAC9B,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,CAAC,EAAE,qBAAqB;IA0C3C,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAsBrC;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAqBhC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgC/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAwDxC;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAkBxC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,OAAO;CAgChB"}
|
package/dist/checker.js
CHANGED
|
@@ -44,13 +44,15 @@ const rules_1 = require("./rules");
|
|
|
44
44
|
*/
|
|
45
45
|
class MnSpellChecker {
|
|
46
46
|
constructor(options) {
|
|
47
|
-
this.
|
|
47
|
+
this.ready = false;
|
|
48
|
+
this.suffixCache = new Map();
|
|
48
49
|
this.options = {
|
|
49
50
|
checkVowelHarmony: options?.checkVowelHarmony ?? true,
|
|
50
51
|
useCommonRules: options?.useCommonRules ?? true,
|
|
51
52
|
};
|
|
52
53
|
this.entries = new Map();
|
|
53
54
|
this.suffixRules = new Map();
|
|
55
|
+
this.ruleIndex = { byLastChar: new Map() };
|
|
54
56
|
this.repRules = [];
|
|
55
57
|
let affContent;
|
|
56
58
|
let dicContent;
|
|
@@ -67,6 +69,7 @@ class MnSpellChecker {
|
|
|
67
69
|
}
|
|
68
70
|
const affData = (0, suffix_engine_1.parseAffFile)(affContent);
|
|
69
71
|
this.suffixRules = affData.suffixRules;
|
|
72
|
+
this.ruleIndex = affData.ruleIndex;
|
|
70
73
|
this.repRules = affData.repRules;
|
|
71
74
|
this.entries = (0, suffix_engine_1.parseDicEntries)(dicContent, affData.flagMode);
|
|
72
75
|
// Нэмэлт үгс нэмэх
|
|
@@ -76,13 +79,7 @@ class MnSpellChecker {
|
|
|
76
79
|
this.entries.set(word.toLowerCase(), []);
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
|
-
this.
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Checker амжилттай ачаалагдсан эсэхийг шалгана.
|
|
83
|
-
*/
|
|
84
|
-
get ready() {
|
|
85
|
-
return this._ready;
|
|
82
|
+
this.ready = true;
|
|
86
83
|
}
|
|
87
84
|
_findDictionaryFiles() {
|
|
88
85
|
const searchPaths = [
|
|
@@ -114,17 +111,23 @@ class MnSpellChecker {
|
|
|
114
111
|
* Нэг үг зөв эсэхийг шалгана.
|
|
115
112
|
*/
|
|
116
113
|
correct(word) {
|
|
114
|
+
if (!this.ready)
|
|
115
|
+
return false;
|
|
117
116
|
const cleaned = word.trim();
|
|
118
117
|
if (!cleaned)
|
|
119
118
|
return true;
|
|
120
|
-
// Тоо, латин тэмдэгт, цэг таслал бол шалгахгүй
|
|
119
|
+
// 1. Тоо, латин тэмдэгт, цэг таслал бол шалгахгүй
|
|
121
120
|
if (/^[a-zA-Z0-9\s.,!?@#$%^&*()\-_+=\[\]{};':"\\|<>\/]+$/.test(cleaned)) {
|
|
122
121
|
return true;
|
|
123
122
|
}
|
|
124
|
-
// Хэт богино монгол үг (1 тэмдэгт бол зөв гэж тооцох
|
|
123
|
+
// 2. Хэт богино монгол үг (1 тэмдэгт бол зөв гэж тооцох)
|
|
125
124
|
if (cleaned.length === 1)
|
|
126
125
|
return true;
|
|
127
|
-
|
|
126
|
+
// 3. Төгсгөлийн цэг таслал салгах
|
|
127
|
+
if (/[\?\!,\.]$/.test(cleaned)) {
|
|
128
|
+
return this.correct(cleaned.slice(0, -1));
|
|
129
|
+
}
|
|
130
|
+
return (0, suffix_engine_1.checkWordWithSuffixes)(cleaned, this.entries, this.suffixRules, this.ruleIndex, this.suffixCache);
|
|
128
131
|
}
|
|
129
132
|
/**
|
|
130
133
|
* Нэг үгийг шалгаж, дэлгэрэнгүй үр дүн буцаана.
|
|
@@ -258,6 +261,7 @@ class MnSpellChecker {
|
|
|
258
261
|
addWord(word) {
|
|
259
262
|
this.entries.set(word, []);
|
|
260
263
|
this.entries.set(word.toLowerCase(), []);
|
|
264
|
+
this.suffixCache.clear(); // Cache-г цэвэрлэхгүй бол хуучин "буруу" гэсэн хариу хадгалагдаастай байна
|
|
261
265
|
}
|
|
262
266
|
/**
|
|
263
267
|
* Олон үг нэмэх.
|
|
@@ -273,6 +277,7 @@ class MnSpellChecker {
|
|
|
273
277
|
removeWord(word) {
|
|
274
278
|
this.entries.delete(word);
|
|
275
279
|
this.entries.delete(word.toLowerCase());
|
|
280
|
+
this.suffixCache.clear();
|
|
276
281
|
}
|
|
277
282
|
/**
|
|
278
283
|
* Dictionary-д хэдэн root word байгааг буцаана.
|
package/dist/checker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/suffix-engine.d.ts
CHANGED
|
@@ -9,12 +9,19 @@ export interface DicEntry {
|
|
|
9
9
|
word: string;
|
|
10
10
|
flags: string[];
|
|
11
11
|
}
|
|
12
|
+
export interface SuffixRuleIndex {
|
|
13
|
+
byLastChar: Map<string, Array<{
|
|
14
|
+
flag: string;
|
|
15
|
+
rule: SuffixRule;
|
|
16
|
+
}>>;
|
|
17
|
+
}
|
|
12
18
|
/**
|
|
13
19
|
* .aff файлаас SFX дүрмүүдийг parse хийнэ.
|
|
14
20
|
* FLAG long форматыг дэмжинэ (2 тэмдэгтийн flag).
|
|
15
21
|
*/
|
|
16
22
|
export declare function parseAffFile(content: string): {
|
|
17
23
|
suffixRules: Map<string, SuffixRule[]>;
|
|
24
|
+
ruleIndex: SuffixRuleIndex;
|
|
18
25
|
repRules: Array<[string, string]>;
|
|
19
26
|
flagMode: 'long' | 'short';
|
|
20
27
|
};
|
|
@@ -30,5 +37,5 @@ export declare function parseDicEntries(content: string, flagMode: 'long' | 'sho
|
|
|
30
37
|
* 2. Suffix rule-ийн дагуу strip хийж root word олоход
|
|
31
38
|
* тухайн root-д зохих flag байвал -> зөв
|
|
32
39
|
*/
|
|
33
|
-
export declare function checkWordWithSuffixes(word: string, entries: Map<string, string[]>, suffixRules: Map<string, SuffixRule[]>): boolean;
|
|
40
|
+
export declare function checkWordWithSuffixes(word: string, entries: Map<string, string[]>, suffixRules: Map<string, SuffixRule[]>, ruleIndex: SuffixRuleIndex, cache: Map<string, boolean>): boolean;
|
|
34
41
|
//# sourceMappingURL=suffix-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suffix-engine.d.ts","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,
|
|
1
|
+
{"version":3,"file":"suffix-engine.d.ts","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAmEA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBlG;AAuBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EACtC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,OAAO,CAgDT"}
|
package/dist/suffix-engine.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.checkWordWithSuffixes = checkWordWithSuffixes;
|
|
|
10
10
|
function parseAffFile(content) {
|
|
11
11
|
const lines = content.split('\n');
|
|
12
12
|
const suffixRules = new Map();
|
|
13
|
+
const ruleIndex = { byLastChar: new Map() };
|
|
13
14
|
const repRules = [];
|
|
14
15
|
let flagMode = 'short';
|
|
15
16
|
for (const line of lines) {
|
|
@@ -54,11 +55,18 @@ function parseAffFile(content) {
|
|
|
54
55
|
if (!suffixRules.has(flag)) {
|
|
55
56
|
suffixRules.set(flag, []);
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
+
const ruleObj = { flag, strip, add, condition, continuationFlags };
|
|
59
|
+
suffixRules.get(flag).push(ruleObj);
|
|
60
|
+
if (add) {
|
|
61
|
+
const lastChar = add[add.length - 1];
|
|
62
|
+
if (!ruleIndex.byLastChar.has(lastChar))
|
|
63
|
+
ruleIndex.byLastChar.set(lastChar, []);
|
|
64
|
+
ruleIndex.byLastChar.get(lastChar).push({ flag, rule: ruleObj });
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
|
-
return { suffixRules, repRules, flagMode };
|
|
69
|
+
return { suffixRules, ruleIndex, repRules, flagMode };
|
|
62
70
|
}
|
|
63
71
|
/**
|
|
64
72
|
* .dic файлаас үг + flag-уудыг parse хийнэ.
|
|
@@ -114,7 +122,9 @@ function splitFlags(flagStr, mode) {
|
|
|
114
122
|
* 2. Suffix rule-ийн дагуу strip хийж root word олоход
|
|
115
123
|
* тухайн root-д зохих flag байвал -> зөв
|
|
116
124
|
*/
|
|
117
|
-
function checkWordWithSuffixes(word, entries, suffixRules) {
|
|
125
|
+
function checkWordWithSuffixes(word, entries, suffixRules, ruleIndex, cache) {
|
|
126
|
+
if (cache.has(word))
|
|
127
|
+
return cache.get(word);
|
|
118
128
|
// Шууд хайх
|
|
119
129
|
if (entries.has(word))
|
|
120
130
|
return true;
|
|
@@ -127,55 +137,73 @@ function checkWordWithSuffixes(word, entries, suffixRules) {
|
|
|
127
137
|
if (entries.has(capitalized))
|
|
128
138
|
return true;
|
|
129
139
|
}
|
|
130
|
-
// Suffix stripping (starts with undefined continuation flag constraint, max depth
|
|
131
|
-
if (checkWithSuffixStripping(lower, entries,
|
|
140
|
+
// Suffix stripping (starts with undefined continuation flag constraint, max depth 2)
|
|
141
|
+
if (checkWithSuffixStripping(lower, entries, ruleIndex, undefined, 0, cache)) {
|
|
142
|
+
cache.set(word, true);
|
|
132
143
|
return true;
|
|
144
|
+
}
|
|
133
145
|
// Compound word check: үгийг хоёр хэсэгт хуваагаад тус тусыг нь шалгах
|
|
134
146
|
if (lower.length >= 4) {
|
|
135
147
|
for (let i = 2; i <= lower.length - 2; i++) {
|
|
136
148
|
const left = lower.substring(0, i);
|
|
137
149
|
const right = lower.substring(i);
|
|
138
|
-
|
|
139
|
-
|
|
150
|
+
let leftOk = entries.has(left) || cache.get(left);
|
|
151
|
+
if (leftOk === undefined) {
|
|
152
|
+
leftOk = checkWithSuffixStripping(left, entries, ruleIndex, undefined, 0, cache);
|
|
153
|
+
cache.set(left, leftOk);
|
|
154
|
+
}
|
|
140
155
|
if (!leftOk)
|
|
141
156
|
continue;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
157
|
+
let rightOk = entries.has(right) || cache.get(right);
|
|
158
|
+
if (rightOk === undefined) {
|
|
159
|
+
rightOk = checkWithSuffixStripping(right, entries, ruleIndex, undefined, 0, cache);
|
|
160
|
+
cache.set(right, rightOk);
|
|
161
|
+
}
|
|
162
|
+
if (rightOk) {
|
|
163
|
+
cache.set(word, true);
|
|
145
164
|
return true;
|
|
165
|
+
}
|
|
146
166
|
}
|
|
147
167
|
}
|
|
168
|
+
cache.set(word, false);
|
|
148
169
|
return false;
|
|
149
170
|
}
|
|
150
|
-
function checkWithSuffixStripping(word, entries,
|
|
151
|
-
if (depth >
|
|
171
|
+
function checkWithSuffixStripping(word, entries, ruleIndex, requiredContinuationFlag, depth = 0, cache) {
|
|
172
|
+
if (depth > 2 || word.length < 2)
|
|
152
173
|
return false;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
174
|
+
const cacheKey = requiredContinuationFlag ? `${word}|${requiredContinuationFlag}` : word;
|
|
175
|
+
if (cache && cache.has(cacheKey))
|
|
176
|
+
return cache.get(cacheKey);
|
|
177
|
+
const lastChar = word[word.length - 1];
|
|
178
|
+
const candidates = ruleIndex.byLastChar.get(lastChar) || [];
|
|
179
|
+
for (const { flag, rule } of candidates) {
|
|
180
|
+
// If we are recursing inwards, the inner suffix MUST have the outer suffix's flag in its continuationFlags
|
|
181
|
+
if (requiredContinuationFlag && !rule.continuationFlags.includes(requiredContinuationFlag)) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (word.endsWith(rule.add)) {
|
|
185
|
+
const base = word.substring(0, word.length - rule.add.length);
|
|
186
|
+
const root = base + rule.strip;
|
|
187
|
+
if (root.length === 0)
|
|
156
188
|
continue;
|
|
157
|
-
|
|
158
|
-
if (
|
|
189
|
+
const toCheck = rule.strip ? root : base;
|
|
190
|
+
if (!rule.condition.test(toCheck))
|
|
159
191
|
continue;
|
|
192
|
+
const rootFlags = entries.get(root);
|
|
193
|
+
if (rootFlags && rootFlags.includes(flag)) {
|
|
194
|
+
if (cache)
|
|
195
|
+
cache.set(cacheKey, true);
|
|
196
|
+
return true;
|
|
160
197
|
}
|
|
161
|
-
if (
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
continue;
|
|
166
|
-
const toCheck = rule.strip ? root : base;
|
|
167
|
-
if (!rule.condition.test(toCheck))
|
|
168
|
-
continue;
|
|
169
|
-
const rootFlags = entries.get(root);
|
|
170
|
-
if (rootFlags && rootFlags.includes(flag)) {
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
if (checkWithSuffixStripping(root, entries, suffixRules, flag, depth + 1)) {
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
198
|
+
if (checkWithSuffixStripping(root, entries, ruleIndex, flag, depth + 1, cache)) {
|
|
199
|
+
if (cache)
|
|
200
|
+
cache.set(cacheKey, true);
|
|
201
|
+
return true;
|
|
176
202
|
}
|
|
177
203
|
}
|
|
178
204
|
}
|
|
205
|
+
if (cache)
|
|
206
|
+
cache.set(cacheKey, false);
|
|
179
207
|
return false;
|
|
180
208
|
}
|
|
181
209
|
//# sourceMappingURL=suffix-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suffix-engine.js","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"suffix-engine.js","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED