Files
jose/dist/deno/lib/invalid_key_input.ts
2024-03-07 12:48:47 +01:00

31 lines
962 B
TypeScript

function message(msg: string, actual: unknown, ...types: string[]) {
if (types.length > 2) {
const last = types.pop()
msg += `one of type ${types.join(', ')}, or ${last}.`
} else if (types.length === 2) {
msg += `one of type ${types[0]} or ${types[1]}.`
} else {
msg += `of type ${types[0]}.`
}
if (actual == null) {
msg += ` Received ${actual}`
} else if (typeof actual === 'function' && actual.name) {
msg += ` Received function ${actual.name}`
} else if (typeof actual === 'object' && actual != null) {
if (actual.constructor && actual.constructor.name) {
msg += ` Received an instance of ${actual.constructor.name}`
}
}
return msg
}
export default (actual: unknown, ...types: string[]) => {
return message('Key must be ', actual, ...types)
}
export function withAlg(alg: string, actual: unknown, ...types: string[]) {
return message(`Key for the ${alg} algorithm must be `, actual, ...types)
}