custom-api-handler
Version:
The package uses axios library to request APIs and uses local-storage for tokens (auth & refresh).
85 lines • 4.54 kB
TypeScript
import { Method } from "axios";
/**
* API-Handler class for custom API requesting methods with axios
*/
declare class APIHandler {
private tokenBearerLabel;
private refreshTokenLabelName;
private accessTokenLabelName;
constructor();
/**
* Method to set token label
* @param tokenBearerLabel | Provide Bearer name to be included for tokens added in header for API request (if any)
*/
setTokenBearerLabel: (tokenBearerLabel: string) => void;
/**
* Method to set refresh-token label name
* @param refreshTokenLabelName | Provide refresh-token label name that is sent from backend-server.
*/
setRefreshTokenLabelName: (refreshTokenLabelName: string) => void;
/**
* Method to get current used refresh-token label name
* @returns | Refresh-Token Label Name
*/
getRefreshTokenLabelName: () => string;
/**
* Method to set access-token label name
* @param accessTokenLabelName | Provide access-token label name that is sent from backend-server.
*/
setAccessTokenLabelName: (accessTokenLabelName: string) => void;
/**
* Method to get current used access-token label name
* @returns | Access-Token Label Name
*/
getAccessTokenLabelName: () => string;
/**
* Method to validate params
* @param obj | Provide params in object for validation
* @returns | custom msg (if error) or false
*/
private validateParams;
/**
* Method for requesting API with options for including auth & refresh tokens in API request header
* @param {String} url | Provide API URL to be requested
* @param {Method} method | Provide request type
* @param {any} data | Provide request-body(if any)
* @param {any} params | Provide request-params(if any)
* @param {String} baseURL | Provide API Base-URL for the request
* @param {Boolean} isAuthTokenRequiredInHeader | Provide true/false for adding auth-token from local-storage in header
* @param {Boolean} isRefTokenRequiredInHeader | Provide true/false for adding refresh-token from local-storage in header
* @returns | Requested API response promise
*/
requestApi: (url?: string, method?: Method, data?: any, params?: any, baseURL?: string, isAuthTokenRequiredInHeader?: boolean, isRefTokenRequiredInHeader?: boolean) => Promise<import("axios").AxiosResponse<any>>;
/**
* Method for requesting API with refresh-token wrapper for requesting new auth & refresh tokens before each API request
* @param {String} url | Provide API URL to be requested
* @param {String} rftURL | Provide refresh-token API URL
* @param {Method} method | Provide request type
* @param {any} data | Provide request-body(if any)
* @param {any} params | Provide request-params(if any)
* @param {String} baseURL | Provide API Base-URL for the request
* @param {String} rftBaseURL | Provide refresh-token API Base-URL for the request
* @returns | Requested API response promise
*/
rftWrapper: (url?: string, rftURL?: string, method?: Method, data?: any, params?: any, baseURL?: string, rftBaseURL?: string) => Promise<import("axios").AxiosResponse<any> | undefined>;
/**
* Method for requesting API with auth & refresh tokens expiry check and requesting new tokens before each API request (if expired)
* @param {String} url | Provide API URL to be requested
* @param {String} rftURL | Provide refresh-token API URL
* @param {Method} method | Provide request type
* @param {any} data | Provide request-body(if any)
* @param {any} params | Provide request-params(if any)
* @param {Boolean} isRFTandATValidationRequired | Provide true/false for including auth-token & refresh-token expiry check
* @param {String} baseURL | Provide API Base-URL for the request
* @param {String} rftBaseURL | Provide refresh-token API Base-URL for the request
* @returns | Requested API response promise
*/
reqAPIwithRFTWrapper: (url?: string, rftURL?: string, method?: Method, data?: any, params?: any, isRFTandATValidationRequired?: boolean, baseURL?: string, rftBaseURL?: string) => Promise<import("axios").AxiosResponse<any> | undefined>;
/**
* Method to remove auth-token & refresh-token from local-storage
*/
private removeLocalStorage;
}
export declare const apiHandler: APIHandler;
export {};
//# sourceMappingURL=index.d.ts.map