diff --git a/src/lib/string.ts b/src/lib/string.ts index 587649a..d2cc0d1 100644 --- a/src/lib/string.ts +++ b/src/lib/string.ts @@ -4,12 +4,12 @@ import { LuaError } from '../LuaError' import { tostring, posrelat, - coerceArgToNumber, - coerceArgToString, - hasOwnProperty, - LuaType, - coerceToBoolean -} from '../utils' + coerceArgToNumber, + coerceArgToString, + hasOwnProperty, + LuaType, + coerceArgToBoolean +} from '../utils' const ROSETTA_STONE: Record = { '([^a-zA-Z0-9%(])-': '$1*?', @@ -125,7 +125,7 @@ function find(s: LuaType, pattern: LuaType, init: LuaType, plain: LuaType): (num const S = coerceArgToString(s, 'find', 1) const P = coerceArgToString(pattern, 'find', 2) const INIT = init === undefined ? 1 : coerceArgToNumber(init, 'find', 3) - const PLAIN = plain === undefined ? false : coerceToBoolean(plain) + const PLAIN = plain === undefined ? false : coerceArgToBoolean(plain, 'find', 4) // Regex if (!PLAIN) { diff --git a/src/utils.ts b/src/utils.ts index 7f565b4..eb29d52 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -157,23 +157,27 @@ function coerceToString(val: LuaType, errorMessage?: string): string { throwCoerceError(val, errorMessage) } -function coerceArg( - value: LuaType, - coerceFunc: (val: LuaType, errorMessage?: string) => T, - typ: 'number' | 'string', - funcName: string, - index: number -): T { - return coerceFunc(value, `bad argument #${index} to '${funcName}' (${typ} expected, got %type)`) -} - -function coerceArgToNumber(value: LuaType, funcName: string, index: number): number { - return coerceArg(value, coerceToNumber, 'number', funcName, index) -} - -function coerceArgToString(value: LuaType, funcName: string, index: number): string { - return coerceArg(value, coerceToString, 'string', funcName, index) -} +function coerceArg( + value: LuaType, + coerceFunc: (val: LuaType, errorMessage?: string) => T, + typ: 'number' | 'string' | 'boolean', + funcName: string, + index: number +): T { + return coerceFunc(value, `bad argument #${index} to '${funcName}' (${typ} expected, got %type)`) +} + +function coerceArgToNumber(value: LuaType, funcName: string, index: number): number { + return coerceArg(value, coerceToNumber, 'number', funcName, index) +} + +function coerceArgToString(value: LuaType, funcName: string, index: number): string { + return coerceArg(value, coerceToString, 'string', funcName, index) +} + +function coerceArgToBoolean(value: LuaType, funcName: string, index: number): boolean { + return coerceArg(value, coerceToBoolean, 'boolean', funcName, index) +} function coerceArgToTable(value: LuaType, funcName: string, index: number): Table { if (value instanceof Table) { @@ -203,14 +207,15 @@ export { Config, type, tostring, - posrelat, - coerceToBoolean, - coerceToNumber, - coerceToString, - coerceArgToNumber, - coerceArgToString, - coerceArgToTable, - coerceArgToFunction, - ensureArray, - hasOwnProperty -} + posrelat, + coerceToBoolean, + coerceToNumber, + coerceToString, + coerceArgToBoolean, + coerceArgToNumber, + coerceArgToString, + coerceArgToTable, + coerceArgToFunction, + ensureArray, + hasOwnProperty +}