@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
29 lines (20 loc) • 781 B
text/typescript
import { last, head, isNil, includes, pathOr } from "ramda";
const stripBrackets = (path) => {
const withoutPrepened = last(path.split("{{"));
return head(withoutPrepened.split("}}"));
};
const hasValue = (context) => (path) => {
const pathWithoutBrackets = stripBrackets(path).split(".");
const value = pathOr(undefined, pathWithoutBrackets, context);
return !isNil(value);
};
export const getMissingValues = (context, string): string[] => {
if (!includes("{{", string)) {
return [];
}
const SEARCH_REGEX = new RegExp(/{{.*?}}/g);
const paths = string.toString().match(SEARCH_REGEX);
return paths.filter((path) => !hasValue(context)(path));
};
export const isNonInflatedUrl = (url: string): boolean =>
includes("{{", url) && includes("}}", url);