error-flux
Version:
Network request interceptor and logger for web applications
61 lines (54 loc) • 1.42 kB
text/typescript
import { NetworkLog } from "./../dist/types/types.d";
import errorFluxGlobalErrorInterceptor from "./interceptors/global-error";
import errorFluxNetworkInterceptor from "./interceptors/network";
import store from "./state/store";
import {
ErrorFluxState,
ErrorTypes,
NetWorkClient,
StorageTypes,
} from "./types";
import {
downloadConsoleErrors,
downloadNetworkLogs,
downloadUnhandledErrors,
} from "./utils/export";
import { getDbName } from "./utils/store-helpers";
export default function initErrorFlux({
pattern,
allowOnlyNetworkErrors = true,
storeName,
dbName,
storageType,
handleOnError,
handleOnUnhandledRejection,
}: ErrorFluxState) {
store.setState({
dbName: dbName || getDbName(),
storageType: storageType || store.getState().storageType,
storeName: {
...store.getState().storeName,
...(Object.keys(storeName || {}).length > 0 ? storeName : {}),
},
});
const { getLogs: getNetworkLogs } = errorFluxNetworkInterceptor({
pattern,
onlyFailures: allowOnlyNetworkErrors,
});
const { getLogs: getErrorLogs } = errorFluxGlobalErrorInterceptor({
handleOnError,
handleOnUnhandledRejection,
});
return {
getNetworkLogs,
getErrorLogs,
};
}
export { downloadConsoleErrors, downloadNetworkLogs, downloadUnhandledErrors };
export type {
ErrorTypes,
StorageTypes,
NetworkLog,
NetWorkClient,
ErrorFluxState,
};