This commit is contained in:
Michael Dodge
2018-05-17 16:08:03 -06:00
parent 7da816db47
commit 40432b2175
2 changed files with 25 additions and 26 deletions

View File

@@ -1,9 +1,9 @@
import tokenProvider from 'axios-token-interceptor';
import tokenProvider = require('axios-token-interceptor');
tokenProvider(); // $ExpectError
const validOptions = {
getToken: () => Promise.resolve('qwerty'),
getToken: () => Promise.resolve('qwerty'),
};
tokenProvider(validOptions); // $ExpectType TokenProvider
@@ -11,7 +11,7 @@ tokenCache(); // $ExpectError
const getToken = Promise.resolve('qwerty');
const validCacheOptions = {
maxAge: 3600,
maxAge: 3600,
};
const cache = tokenProvider.tokenCache(getToken, validCacheOptions); // $Expect TokenCache

View File

@@ -6,28 +6,27 @@
import { AxiosRequestConfig } from 'axios';
// Module
export function AxiosTokenProvider(Options: InterceptorOptions): TokenProvider;
export namespace AxiosTokenProvider {
declare function AxiosTokenProvider(Options: AxiosTokenProvider.InterceptorOptions): AxiosTokenProvider.TokenProvider;
declare namespace AxiosTokenProvider {
function tokenCache(getToken: Promise<string>, options: TokenCacheOptions): TokenCache;
// Interfaces
interface InterceptorOptions {
token?: string;
getToken?: () => string | Promise<string>;
header?: string;
headerFormatter?: (token: string) => string;
}
type TokenProvider = (config: AxiosRequestConfig) => Promise<AxiosRequestConfig>;
interface TokenCacheOptions {
getMaxAge?: () => number;
maxAge?: number;
}
interface TokenCache {
reset(): void;
}
}
export default AxiosTokenProvider;
// Interfaces
export interface InterceptorOptions {
token?: string;
getToken?: () => string | Promise<string>;
header?: string;
headerFormatter?: (token: string) => string;
}
export type TokenProvider = (config: AxiosRequestConfig) => Promise<AxiosRequestConfig>;
export interface TokenCacheOptions {
getMaxAge?: () => number;
maxAge?: number;
}
export interface TokenCache {
reset(): void;
}
export = AxiosTokenProvider;