cleaners
Version:
Cleans & validates untrusted data, with TypeScript & Flow support
20 lines (17 loc) • 535 B
JavaScript
import { showValue } from '../showValue.js'
export function asValue(...values) {
return function asValue(raw) {
for (let i = 0; i < values.length; ++i) {
if (raw === values[i]) return raw
}
// Create a fancy error message:
let message = 'Expected '
if (values.length !== 1) message += 'one of: '
for (let i = 0; i < values.length; ++i) {
if (i > 0) message += ' | '
message += JSON.stringify(values[i])
}
message += ', got ' + showValue(raw)
throw new TypeError(message)
}
}