Skip to content

Instantly share code, notes, and snippets.

@sergueyarellano
Created May 26, 2021 14:19
Show Gist options
  • Save sergueyarellano/02e0331607019cb0221d38edb46e0e32 to your computer and use it in GitHub Desktop.
Save sergueyarellano/02e0331607019cb0221d38edb46e0e32 to your computer and use it in GitHub Desktop.
function isValidInterface (input, model) {
return Array.isArray(input)
? input.every(element => isObjectValidInterface(element, model))
: isObjectValidInterface(input, model)
}
function isObjectValidInterface (input, model) {
return Object.keys(input).every(checkTypeWith(input, model))
}
function checkTypeWith (input, model) {
return key => {
const expectedType = model[key]
return /^array$/.test(expectedType)
? Array.isArray(input[key])
: typeof input[key] === model[key]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment