From 3013d2a4fa974bcba67a7a55bc98e4ed88aee390 Mon Sep 17 00:00:00 2001 From: Eddie Antonio Santos Date: Thu, 23 Apr 2020 13:30:13 -0600 Subject: [PATCH] refactor(common/lmlayer): extract type guard for simple wordbreaker spec --- .../lexical-model-compiler/lexical-model-compiler.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/developer/js/source/lexical-model-compiler/lexical-model-compiler.ts b/developer/js/source/lexical-model-compiler/lexical-model-compiler.ts index e31112a46f..be074cfdc3 100644 --- a/developer/js/source/lexical-model-compiler/lexical-model-compiler.ts +++ b/developer/js/source/lexical-model-compiler/lexical-model-compiler.ts @@ -114,12 +114,10 @@ function compileWordBreaker(spec: WordBreakerSpec): string { * normalizes it to a common form that the compiler can deal with. */ function normalizeWordBreakerSpec(wordBreakerSpec: LexicalModelSource["wordBreaker"]): WordBreakerSpec { - if (!wordBreakerSpec) { + if (wordBreakerSpec == undefined) { // Use the default word breaker when it's unspecified return { use: 'default' }; - } else if (wordBreakerSpec === "default" || wordBreakerSpec === 'ascii') { - return { use: wordBreakerSpec }; - } else if (typeof wordBreakerSpec === "function") { + } else if (isSimpleWordBreaker(wordBreakerSpec)) { // The word breaker was passed as a literal function; use its source code. return { use: wordBreakerSpec }; } else if (wordBreakerSpec.use) { @@ -129,3 +127,6 @@ function normalizeWordBreakerSpec(wordBreakerSpec: LexicalModelSource["wordBreak } } +function isSimpleWordBreaker(spec: WordBreakerSpec | SimpleWordBreakerSpec): spec is SimpleWordBreakerSpec { + return typeof spec === "function" || spec === "default" || spec === "ascii"; +}