diff --git a/src/prelude/index.ts b/src/prelude/index.ts index 78c1355..19a687a 100644 --- a/src/prelude/index.ts +++ b/src/prelude/index.ts @@ -161,6 +161,19 @@ export const globals = { return list }, + into: (value: unknown, type: Value['type']) => { + if (type === 'number') { + const num = Number(value) + if (isNaN(num)) throw new Error(`into: cannot convert ${value} to number`) + return num + } else if (type === 'string') { + return String(value) + } else if (type === 'boolean') { + return Boolean(value) + } else { + throw new Error(`into: unsupported target type ${type}`) + } + }, } export const colors = {