react-gapi
Version:
Google API per React hook
53 lines (52 loc) • 1.44 kB
TypeScript
/// <reference types="gapi.auth2" />
import { gapiObject } from './gapi';
export interface userProps {
id?: string;
email?: string;
name?: string;
givenName?: string;
familyName?: string;
imageUrl?: string;
}
export interface user {
isSignedIn: (scopes: string[], userProps: userProps) => void;
isNotSignedIn: (scopes: string[], userProps: userProps) => void;
nextInteraction: () => Promise<void>;
grantsScopes?: (scopes?: string[] | true, userProps?: userProps) => void;
deniesAccess?: () => void;
closesPopup?: () => void;
}
export interface userInternal {
isSignedIn: boolean;
scopes: string[];
props: userProps;
resolveNextInteraction: () => void;
promise?: Promise<gapi.auth2.GoogleUser>;
}
export interface registry<T> {
[k: string]: T;
}
export interface discoveryDocsMock {
(gapi: gapiObject): void;
}
export interface moduleMock {
(a: {
gapi: gapiObject;
user: user;
_user: userInternal;
_discoveryDocs: registry<discoveryDocsMock>;
}): void;
}
interface registerDiscoveryDocs {
(o: registry<discoveryDocsMock>): void;
}
interface registerModuleMocks {
(o: registry<moduleMock>): void;
}
export declare function createGapiMock(setWindowProp?: string | null): {
gapi: gapiObject;
user: user;
registerModuleMocks: registerModuleMocks;
registerDiscoveryDocs: registerDiscoveryDocs;
};
export {};