import { isPromise } from '../type'
export const noop = () => {}
export const callInterceptor = (interceptor, { args = [], done, canceled, error }) => {
if (interceptor) {
const returnVal = interceptor(...args)
if (isPromise(returnVal)) {
returnVal
.then((value) => {
if (value) {
done()
} else if (canceled) {
canceled()
}
})
.catch(error || noop)
} else if (returnVal) {
done()
} else if (canceled) {
canceled()
}
} else {
done()
}
}