@snap/camera-kit
Version:
Camera Kit Web
83 lines • 3.81 kB
JavaScript
import { LaunchData } from "../generated-proto/pb_schema/lenses/launchdata";
import { isArrayOfType, isDateOrUndefined, isValidNumberOrUndefined, isRecord, isString, isStringOrUndefined, isUndefined, isValidNumber, predicateRecordValues, } from "../common/typeguards";
import { UserData_Zodiac } from "../generated-proto/pb_schema/lenses/user_data";
const zodiacMap = {
aquarius: UserData_Zodiac.Aquarius,
aries: UserData_Zodiac.Aries,
cancer: UserData_Zodiac.Cancer,
capricorn: UserData_Zodiac.Capricorn,
gemini: UserData_Zodiac.Gemini,
leo: UserData_Zodiac.Leo,
libra: UserData_Zodiac.Libra,
pisces: UserData_Zodiac.Pisces,
sagittarius: UserData_Zodiac.Sagittarius,
scorpio: UserData_Zodiac.Scorpio,
taurus: UserData_Zodiac.Taurus,
virgo: UserData_Zodiac.Virgo,
};
const zodiacValueSet = new Set(Object.keys(zodiacMap));
export function isZodiac(value) {
return zodiacValueSet.has(value);
}
export function isLensLaunchDataOrUndefined(value) {
return isUndefined(value) || isLensLaunchData(value);
}
function isLensLaunchData(value) {
return (isRecord(value) &&
isStringOrUndefined(value.userId) &&
isLensUserDataOrUndefined(value.userData) &&
isLensLaunchParamsOrUndefined(value.launchParams));
}
function isLensUserDataOrUndefined(value) {
return isUndefined(value) || isLensUserData(value);
}
function isLensUserData(value) {
return (isRecord(value) &&
isStringOrUndefined(value.userId) &&
isStringOrUndefined(value.username) &&
isStringOrUndefined(value.birthdate) &&
isStringOrUndefined(value.displayName) &&
isStringOrUndefined(value.countrycode) &&
isStringOrUndefined(value.score) &&
isBitmojiUserInfoOrUndefined(value.bitmojiInfo) &&
isFriendUserInfoOrUndefined(value.friendInfo) &&
isZodiacOrUndefined(value.zodiac));
}
function isBitmojiUserInfoOrUndefined(value) {
return isUndefined(value) || isBitmojiUserInfo(value);
}
function isBitmojiUserInfo(value) {
return isRecord(value) && isStringOrUndefined(value.avatarId) && isStringOrUndefined(value.selfieId);
}
function isFriendUserInfoOrUndefined(value) {
return isUndefined(value) || isFriendUserInfo(value);
}
function isFriendUserInfo(value) {
return (isRecord(value) &&
isDateOrUndefined(value.friendshipStart) &&
isDateOrUndefined(value.lastInteraction) &&
isValidNumberOrUndefined(value.streak));
}
function isZodiacOrUndefined(value) {
return isUndefined(value) || isZodiac(value);
}
function isLensLaunchParamsOrUndefined(value) {
return isUndefined(value) || isLensLaunchParams(value);
}
function isLensLaunchParams(value) {
return isRecord(value) && predicateRecordValues(isStringOrNumberOrArrayOfStringsOrNumbers)(value);
}
function isStringOrNumberOrArrayOfStringsOrNumbers(value) {
return (isString(value) || isValidNumber(value) || isArrayOfType(isString, value) || isArrayOfType(isValidNumber, value));
}
export const encodeLensLaunchData = (launchData, persistentStore) => {
var _a;
return LaunchData.encode(LaunchData.fromPartial(Object.assign(Object.assign({}, launchData), { userData: launchData.userData
? Object.assign(Object.assign({}, launchData.userData), { zodiac: ((_a = launchData.userData) === null || _a === void 0 ? void 0 : _a.zodiac) ? zodiacMap[launchData.userData.zodiac] : undefined }) : undefined, launchParams: launchData.launchParams ? encodeLensLaunchParams(launchData.launchParams) : undefined, persistentStore: { store: new Uint8Array(persistentStore) } })))
.finish()
.slice();
};
function encodeLensLaunchParams(launchParams) {
return { data: new TextEncoder().encode(JSON.stringify(launchParams)) };
}
//# sourceMappingURL=LensLaunchData.js.map