@ammarahmed/notifee-react-native
Version:
Notifee - a feature rich notifications library for React Native.
39 lines (29 loc) • 973 B
text/typescript
import { IOSInput } from '../types/NotificationIOS';
import { objectHasProperty, isBoolean, isObject, isString, isUndefined } from '../utils';
export default function validateIOSInput(input?: IOSInput): IOSInput {
const out: IOSInput = {};
// default value
if (!input) {
return out;
}
// if true, empty object
if (isBoolean(input)) {
return out;
}
if (!isObject(input)) {
throw new Error('expected an object value.');
}
if (objectHasProperty(input, 'buttonText') && !isUndefined(input.buttonText)) {
if (!isString(input.buttonText)) {
throw new Error("'buttonText' expected a string value.");
}
out.buttonText = input.buttonText;
}
if (objectHasProperty(input, 'placeholderText') && !isUndefined(input.placeholderText)) {
if (!isString(input.placeholderText)) {
throw new Error("'placeholderText' expected a string value.");
}
out.placeholderText = input.placeholderText;
}
return out;
}