Máscara de CEP para input em Javascript

Vamos adicionar esse código HTML como exemplo:

<input type="text" maxlength="9" onkeyup="handleZipCode(event)" />

E esse código em CSS:

input {
display: block;
height: 22px;
border: 1px solid #ccc;
border-radius: 4px;
padding: 4px 10px;
}

E a nossa máscara em Javascript:

const handleZipCode = (event) => {
let input = event.target
input.value = zipCodeMask(input.value)
}
const zipCodeMask = (value) => {
if (!value) return ""
value = value.replace(/\D/g,'')
value = value.replace(/(\d{5})(\d)/,'$1-$2')
return value
}

Resultado: