@applicaster/zapp-react-native-bridge
Version:
Applicaster Zapp React Native modules
72 lines (59 loc) • 1.93 kB
text/typescript
import { logError } from "./logger";
const bridgeNotFountMessage = (storage: string) =>
`${storage} native module not found`;
class BridgeNotFound extends Error {
constructor(storage: string) {
super(bridgeNotFountMessage(storage));
logError(storage, this);
}
}
export function throwBridgeNotFoundError(storage: string) {
// @ts-ignore
if (process.env.NODE_ENV === "test") return;
throw new BridgeNotFound(storage);
}
class UndefinedKeyError extends Error {
constructor(message, storage: string) {
super(message);
logError(storage, this);
}
}
export function throwUndefinedKeyError(storage: string, message: string) {
throw new UndefinedKeyError(message, storage);
}
class UndefinedValueError extends Error {
constructor(message, _storage: string, key) {
super(message);
logError(message, this, { key });
}
}
export function throwUndefinedValueError(storage, message, key) {
throw new UndefinedValueError(message, storage, key);
}
class NativeStorageError extends Error {
constructor(message, storage: string, data: Record<string, any>) {
super(message);
logError(storage, this, data);
}
}
export function throwNativeStorageError(
storage: string,
message: string,
key: string,
namespace: string = "Applicaster.v2",
value?: any
) {
throw new NativeStorageError(message, storage, { key, namespace, value });
}
export const getItemError = ({ message }: Error, secure = false) =>
`An error occured while getting an item from native${
secure ? " secure" : ""
} storage: ${message}`;
export const setItemError = ({ message }: Error, secure = false) =>
`An error occured while setting an item in native${
secure ? " secure" : ""
} storage: ${message}`;
export const removeItemError = ({ message }: Error, secure = false) =>
`An error occured while removing an item from native${
secure ? " secure" : ""
} storage: ${message}`;