Functions
interface RecipeInterface {
/*
* Calling during init, this function is supposed to add fetch interceptors that
* add and save session tokens to the request.
*
* @params: originalFetch this is to be used in your interceptor
* config is the config provided by the user when calling the init function of this recipe
*
* @returns: a modified fetch function
*/
addFetchInterceptorsAndReturnModifiedFetch: (originalFetch: any, config: NormalisedInputType) => typeof fetch;
/*
* Called by the user. This is supposed to add interceptor functions to axios that
* add and save session tokens to the request.
*
* @params: axiosInstance is the instance to add the interceptor functions to.
* config is the config provided by the user when calling the init function of this recipe
*
* @returns: void
*/
addAxiosInterceptors: (axiosInstance: any, config: NormalisedInputType) => void;
/*
* If a session exists, return the userId of the user who is logged in, else throw an error
*
* @params: config is the config provided by the user when calling the init function of this recipe
*
* @returns: the userId (string)
*/
getUserId: (config: NormalisedInputType) => Promise<string>;
/*
* If a session exists, return the JWT payload (if applicable), else throw an error
*
* @params: config is the config provided by the user when calling the init function of this recipe
*
* @returns: the JWT payload in a JS object form.
*/
getJWTPayloadSecurely: (config: NormalisedInputType) => Promise<any>;
/*
* Is called to know if a session exists or not
*
* @params: config is the config provided by the user when calling the init function of this recipe
*
* @returns: true if a session exists, else false
*/
doesSessionExist: (config: NormalisedInputType) => Promise<boolean>;
/*
* Called when the user clicks the sign out button. This function should
* clear the session and logout the user. In case of a 401, it should treat
* it as success. The user should not be navigated by this function.
*
* @params: config is the config provided by the user when calling the init function of this recipe
*
* @returns: void
*/
signOut: (config: NormalisedInputType) => Promise<void>;
}