diff --git a/expressions/src/completion/descriptionDictionary.ts b/expressions/src/completion/descriptionDictionary.ts index 2aaa3dd..44b1c8e 100644 --- a/expressions/src/completion/descriptionDictionary.ts +++ b/expressions/src/completion/descriptionDictionary.ts @@ -9,7 +9,7 @@ export function isDescriptionDictionary(x: ExpressionData): x is DescriptionDict export class DescriptionDictionary extends Dictionary { private readonly descriptions = new Map(); - public complete: boolean = true; + public complete = true; constructor(...pairs: DescriptionPair[]) { super(); diff --git a/expressions/src/data/null.ts b/expressions/src/data/null.ts index 78593df..71947cb 100644 --- a/expressions/src/data/null.ts +++ b/expressions/src/data/null.ts @@ -1,8 +1,6 @@ -import {ExpressionData, ExpressionDataInterface, Kind} from "./expressiondata"; +import {ExpressionDataInterface, Kind} from "./expressiondata"; export class Null implements ExpressionDataInterface { - constructor() {} - public readonly kind = Kind.Null; public primitive = true; diff --git a/expressions/src/data/number.ts b/expressions/src/data/number.ts index 960e9c3..9a3dec4 100644 --- a/expressions/src/data/number.ts +++ b/expressions/src/data/number.ts @@ -8,7 +8,7 @@ export class NumberData implements ExpressionDataInterface { public primitive = true; coerceString(): string { - if (this.value === -0) { + if (Object.is(this.value, -0)) { return "0"; } diff --git a/expressions/src/data/replacer.ts b/expressions/src/data/replacer.ts index 4217952..c73530d 100644 --- a/expressions/src/data/replacer.ts +++ b/expressions/src/data/replacer.ts @@ -10,7 +10,7 @@ import {StringData} from "./string"; * * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#replacer */ -export function replacer(key: string, value: any): any { +export function replacer(_key: string, value: unknown): unknown { if (value instanceof Null) { return null; } @@ -34,7 +34,7 @@ export function replacer(key: string, value: any): any { if (value instanceof Dictionary) { const pairs = value.pairs(); - const r: any = {}; + const r: Record = {}; for (const p of pairs) { r[p.key] = p.value; } diff --git a/expressions/src/data/reviver.ts b/expressions/src/data/reviver.ts index 4d1168b..3838e2a 100644 --- a/expressions/src/data/reviver.ts +++ b/expressions/src/data/reviver.ts @@ -1,7 +1,7 @@ import {Array as dArray} from "./array"; import {BooleanData} from "./boolean"; import {Dictionary} from "./dictionary"; -import {ExpressionData, Pair} from "./expressiondata"; +import {ExpressionData} from "./expressiondata"; import {Null} from "./null"; import {NumberData} from "./number"; import {StringData} from "./string"; @@ -11,7 +11,7 @@ import {StringData} from "./string"; * * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#reviver */ -export function reviver(key: string, val: any): ExpressionData { +export function reviver(_key: string, val: unknown): ExpressionData { if (val === null) { return new Null(); } @@ -25,25 +25,22 @@ export function reviver(key: string, val: any): ExpressionData { } if (typeof val === "boolean") { - return new BooleanData(val as boolean); + return new BooleanData(val); } if (Array.isArray(val)) { - return new dArray(...val); + return new dArray(...(val as ExpressionData[])); } if (typeof val === "object") { return new Dictionary( - ...Object.keys(val).map( - k => - ({ - key: k, - value: val[k] - } as Pair) - ) + ...Object.keys(val).map(k => ({ + key: k, + value: val[k as keyof typeof val] + })) ); } // Pass through value - return val; + return val as ExpressionData; } diff --git a/expressions/src/funcs/contains.ts b/expressions/src/funcs/contains.ts index d074d0f..e21f44d 100644 --- a/expressions/src/funcs/contains.ts +++ b/expressions/src/funcs/contains.ts @@ -1,4 +1,4 @@ -import {Array, BooleanData, ExpressionData, Kind} from "../data"; +import {BooleanData, ExpressionData, Kind} from "../data"; import {equals} from "../result"; import {FunctionDefinition} from "./info"; @@ -19,7 +19,7 @@ export const contains: FunctionDefinition = { return new BooleanData(ls.toLowerCase().includes(rs.toLowerCase())); } } else if (left.kind === Kind.Array) { - const la = left as Array; + const la = left; if (la.values().length === 0) { return new BooleanData(false); } diff --git a/expressions/src/funcs/format.ts b/expressions/src/funcs/format.ts index 8c5478c..93bfa5c 100644 --- a/expressions/src/funcs/format.ts +++ b/expressions/src/funcs/format.ts @@ -15,7 +15,7 @@ export const format: FunctionDefinition = { while (index < fs.length) { const lbrace = fs.indexOf("{", index); - let rbrace = fs.indexOf("}", index); + const rbrace = fs.indexOf("}", index); // Left brace if (lbrace >= 0 && (rbrace < 0 || rbrace > lbrace)) { @@ -81,7 +81,7 @@ function safeCharAt(string: string, index: number): string { function readArgIndex(string: string, startIndex: number): ArgIndex { // Count the number of digits let length = 0; - while (true) { + for (;;) { const nextChar = safeCharAt(string, startIndex + length); if (nextChar >= "0" && nextChar <= "9") { length++; @@ -112,9 +112,3 @@ interface ArgIndex { result: number; endIndex: number; } - -interface FormatSpecifiers { - success: boolean; - result: string; - rbrace: number; -} diff --git a/expressions/src/funcs/fromjson.ts b/expressions/src/funcs/fromjson.ts index 6546b2a..5eca009 100644 --- a/expressions/src/funcs/fromjson.ts +++ b/expressions/src/funcs/fromjson.ts @@ -18,7 +18,7 @@ export const fromjson: FunctionDefinition = { } try { - return JSON.parse(is, reviver); + return JSON.parse(is, reviver) as ExpressionData; } catch (e) { throw new ExpressionEvaluationError("Error parsing JSON when evaluating fromJson", {cause: e}); } diff --git a/expressions/src/funcs/join.ts b/expressions/src/funcs/join.ts index 38bb92f..92750ae 100644 --- a/expressions/src/funcs/join.ts +++ b/expressions/src/funcs/join.ts @@ -1,4 +1,4 @@ -import {Array, ExpressionData, Kind, StringData} from "../data"; +import {ExpressionData, Kind, StringData} from "../data"; import {FunctionDefinition} from "./info"; export const join: FunctionDefinition = { @@ -23,7 +23,7 @@ export const join: FunctionDefinition = { // Convert items to strings return new StringData( - (args[0] as Array) + args[0] .values() .map(item => item.coerceString()) .join(separator)