@ammarahmed/notifee-react-native
Version:
Notifee - a feature rich notifications library for React Native.
34 lines (26 loc) • 1.01 kB
text/typescript
import { IOSCommunicationInfoPerson } from '../../types/NotificationIOS';
import { objectHasProperty, isObject, isString, isUndefined } from '../../utils';
export default function validateIOSCommunicationInfoPerson(
person: IOSCommunicationInfoPerson,
): IOSCommunicationInfoPerson {
if (!isObject(person)) {
throw new Error("'person' expected an object.");
}
if (!isString(person.id) || person.id.length === 0) {
throw new Error('"person.id" expected a valid string value.');
}
if (!isString(person.displayName) || person.displayName.length === 0) {
throw new Error('"person.displayName" expected a valid string value.');
}
const out: IOSCommunicationInfoPerson = {
id: person.id,
displayName: person.displayName,
};
if (objectHasProperty(person, 'avatar') && !isUndefined(person.avatar)) {
if (!isString(person.avatar)) {
throw new Error('"person.avatar" expected a valid object value.');
}
out.avatar = person.avatar;
}
return out;
}