Add boolean argument coercion helper

master
Piotr 3 months ago committed by Teodor Tanasoaia
parent 95b6489f18
commit 61366d4800

@ -8,7 +8,7 @@ import {
coerceArgToString, coerceArgToString,
hasOwnProperty, hasOwnProperty,
LuaType, LuaType,
coerceToBoolean coerceArgToBoolean
} from '../utils' } from '../utils'
const ROSETTA_STONE: Record<string, string> = { const ROSETTA_STONE: Record<string, string> = {
@ -125,7 +125,7 @@ function find(s: LuaType, pattern: LuaType, init: LuaType, plain: LuaType): (num
const S = coerceArgToString(s, 'find', 1) const S = coerceArgToString(s, 'find', 1)
const P = coerceArgToString(pattern, 'find', 2) const P = coerceArgToString(pattern, 'find', 2)
const INIT = init === undefined ? 1 : coerceArgToNumber(init, 'find', 3) 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 // Regex
if (!PLAIN) { if (!PLAIN) {

@ -160,7 +160,7 @@ function coerceToString(val: LuaType, errorMessage?: string): string {
function coerceArg<T>( function coerceArg<T>(
value: LuaType, value: LuaType,
coerceFunc: (val: LuaType, errorMessage?: string) => T, coerceFunc: (val: LuaType, errorMessage?: string) => T,
typ: 'number' | 'string', typ: 'number' | 'string' | 'boolean',
funcName: string, funcName: string,
index: number index: number
): T { ): T {
@ -175,6 +175,10 @@ function coerceArgToString(value: LuaType, funcName: string, index: number): str
return coerceArg<string>(value, coerceToString, 'string', funcName, index) return coerceArg<string>(value, coerceToString, 'string', funcName, index)
} }
function coerceArgToBoolean(value: LuaType, funcName: string, index: number): boolean {
return coerceArg<boolean>(value, coerceToBoolean, 'boolean', funcName, index)
}
function coerceArgToTable(value: LuaType, funcName: string, index: number): Table { function coerceArgToTable(value: LuaType, funcName: string, index: number): Table {
if (value instanceof Table) { if (value instanceof Table) {
return value return value
@ -207,6 +211,7 @@ export {
coerceToBoolean, coerceToBoolean,
coerceToNumber, coerceToNumber,
coerceToString, coerceToString,
coerceArgToBoolean,
coerceArgToNumber, coerceArgToNumber,
coerceArgToString, coerceArgToString,
coerceArgToTable, coerceArgToTable,

Loading…
Cancel
Save