biketag
Version:
The Javascript client API for BikeTag Games
117 lines (116 loc) • 7.3 kB
TypeScript
import { ClientKey, ImgurCredentials, AWSCredentials, SanityCredentials, Credentials, BikeTagCredentials, BikeTagConfiguration, gameLongestTimeBetweenTagsData, PlayerStreakData, StreakData, GameHighestNumberTagsPerNumberDaysData, PlayerHighestNumberTagsPerDayData } from './types';
import { default as TinyCache } from 'tinycache';
import { Tag, Game, Player, Ambassador, Setting, Achievement, Stat } from './schema';
import { ApiAvailability } from './enums';
export declare const putCacheIfExists: (key: string, value: any, cache?: typeof TinyCache) => void;
export declare const getCacheIfExists: (key: string, cache?: typeof TinyCache) => any;
export declare const hasClientToken: (arg: unknown) => arg is ClientKey;
export declare const hasClientKey: (arg: unknown) => arg is ClientKey;
export declare const constructTagNumberSlug: (number: number, game?: string) => string;
export declare const isImgurCredentials: (credentials: ImgurCredentials) => boolean;
export declare const isImgurApiReady: (credentials: ImgurCredentials) => ApiAvailability;
export declare const isSanityCredentials: (credentials: SanityCredentials) => boolean;
export declare const isAWSCredentials: (credentials: AWSCredentials) => boolean;
export declare const isAWSApiReady: (credentials: AWSCredentials) => ApiAvailability;
export declare const isSanityApiReady: (credentials: SanityCredentials) => ApiAvailability;
export declare const isBikeTagCredentials: (credentials: BikeTagCredentials | Credentials) => boolean;
export declare const isBikeTagApiReady: (credentials: BikeTagCredentials | Credentials) => ApiAvailability;
export declare const isBikeTagConfiguration: (credentials: BikeTagConfiguration) => boolean;
export declare const createImgurCredentials: (credentials: Partial<ImgurCredentials>, defaults?: Partial<ImgurCredentials>) => ImgurCredentials;
export declare const assignImgurCredentials: (credentials: ImgurCredentials, defaults?: Partial<ImgurCredentials>) => ImgurCredentials;
export declare const createSanityCredentials: (credentials: Partial<SanityCredentials>, defaults?: Partial<SanityCredentials>) => SanityCredentials;
export declare const assignSanityCredentials: (credentials: SanityCredentials, defaults?: Partial<SanityCredentials>) => SanityCredentials;
export declare const createAWSCredentials: (credentials: Partial<AWSCredentials>, defaults?: Partial<AWSCredentials>) => AWSCredentials;
export declare const assignAWSCredentials: (credentials: AWSCredentials, defaults?: Partial<AWSCredentials>) => AWSCredentials;
export declare const createBikeTagCredentials: (credentials: Partial<BikeTagCredentials>, defaults?: Partial<BikeTagCredentials>) => BikeTagCredentials;
export declare const assignBikeTagCredentials: (credentials: Credentials, defaults?: Partial<Credentials>) => BikeTagCredentials;
export declare const assignBikeTagConfiguration: (config: BikeTagConfiguration, defaults?: Partial<BikeTagConfiguration>) => BikeTagConfiguration;
export declare const isBikeTagData: (biketag: Partial<Tag>) => boolean;
export declare const isGameData: (ambassador: Partial<Game>) => boolean;
export declare const isPlayerData: (player: Partial<Player>) => boolean;
export declare const isAmbassadorData: (ambassador: Partial<Ambassador>) => boolean;
export declare const isSettingData: (setting: Partial<Setting>) => boolean;
export declare const isAchievementData: (achievement: Partial<Achievement>) => boolean;
export declare const sortTags: (tags: Tag[], sort?: string, limit?: number, time?: string) => Tag[];
export declare const sortPlayers: (players: Player[], sort?: string, limit?: number) => Player[];
export declare const sortAmbassadors: (ambassadors: Ambassador[], sort?: string, limit?: number) => Ambassador[];
export declare const sortSettings: (settings: Setting[], sort?: string, limit?: number) => Setting[];
export declare const sortStats: (stats: Stat[], sort?: string, limit?: number) => Stat[];
export declare const sortAchievements: (achievements: Achievement[], sort?: string, limit?: number) => Achievement[];
export declare const getGameAlbumFromCache: (gameAlbumHash: string, cache?: typeof TinyCache, fallback?: any, useCache?: boolean) => Promise<any>;
export declare const getTagDate: (time: number) => Date;
export declare const getTagDateISOPlusOffset: (time: number, offset?: string) => string;
export declare const convertMiliseconds: (miliseconds: number, format: string) => number | {
d: number;
h: number;
m: number;
s: number;
};
/**
* Get the longest time between tags
* @param tags The array of tags
* @returns Time between tags data
*/
export declare const getLongestTimeBetweenTags: (tags: Tag[]) => gameLongestTimeBetweenTagsData;
/**
* Get the players data with the longest daily tag streak
* @param players The array of players
* @returns Array of players data with longest streak of days tagged
*/
export declare const getPlayersWithLongestDailyTagStreakData: (players: Player[]) => PlayerStreakData[];
/**
* Get the longest daily tag streak data
* @param tags Tags to get longest streak of days with a tag data
* @returns StreakData
*/
export declare const getTagLongestDailyStreakData: (tags: Tag[]) => StreakData;
/**
* Get the unique tag dates
* @param tags Tags to get unique tag dates
* @returns Array of unique tag dates
*/
export declare const getUniqueTagDates: (tags: Tag[]) => Date[];
/**
* Check if two date objects are on the same date
* @param d1 Date 1
* @param d2 Date 2
* @returns True if dates are the same
*/
export declare const getIsSameDay: (d1: Date, d2: Date) => boolean;
/**
* Get difference in days between two Dates
* @param d1 Date 1
* @param d2 Date 2
* @returns Number of days betwteen two dates
*/
export declare const getDaysDifference: (d1: Date, d2: Date) => number;
/**
* Check if two Dates are within a range of days
* @param d1 Date 1
* @param d2 Date 2
* @param days Number of days to check for range
* @returns Number of days betwteen two dates
*/
export declare const getIsWithinDaysRange: (d1: Date, d2: Date, days: number) => boolean;
/**
* Get game highest number of tags in specified number of days
* @param tags Tags to get highest number of tags in days data
* @param days Number of days
* @returns Highest number of tags per number of days data
*/
export declare const getGameHighestNumberTagsPerNumberDaysData: (tags: Tag[], days?: number) => GameHighestNumberTagsPerNumberDaysData;
/**
* Get player's highest number of tags in one day data
* @param player Player to get highest number of tags in one day data
* @returns Highest number of tags per day data
*/
export declare const getPlayerHighestNumberTagsPerDayData: (player: Player) => PlayerHighestNumberTagsPerDayData;
/**
* Get the players with the highest number of tags in one day data
* @param players Players to get highest number of tags in one day data
* @returns Count for highest number of tags in one day
*/
export declare const getPlayersWithHighestNumberTagsPerDayData: (players: Player[]) => PlayerHighestNumberTagsPerDayData[];
export declare const getExtensionFromUrl: (url: string) => string | undefined;
export declare const getImageExtension: (contentType: any) => any;
export declare const getContentTypeFromExtension: (ext: string) => string;