UNPKG

@sports-sdk/ruwt

Version:

A package for interacting with the Are You Watching This?! API

342 lines (335 loc) 11.7 kB
'use strict'; var core = require('@sports-sdk/core'); var axios = require('axios'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var axios__default = /*#__PURE__*/_interopDefault(axios); // src/client.ts var RUWTClient = class extends core.SportsSdkClient { apiKey; /** * Creates an Are You Watching This?! (RUWT) client. * @param siteId - Your unique RUWT site id. If not provided, it will look for `RUWT_SITE_ID` in the environment variables. * @param apiKey - The API token for authenticating API requests. If not provided, it will look for `RUWT_API_KEY` in the environment variables. * @throws Will throw an error if the API key is not provided or found in the environment variables. */ constructor(siteId, apiKey) { const site = siteId || process.env.RUWT_SITE_ID; const token = apiKey || process.env.RUWT_API_KEY; if (!token) { throw new Error( "RUWT API key is required. Provide it as a parameter or set the environment variable RUWT_API_KEY." ); } const endpoint = `https://${site ? `${site}.api.` : ""}areyouwatchingthis.com/api`; const session = axios__default.default.create({ baseURL: endpoint, headers: { "Content-Type": "application/json" }, validateStatus: function(status) { return status < 500; } }); super(endpoint, session); this.apiKey = token; } /** * Sends a GET request to the specified URL with the provided parameters. * @param apiPath - The path to append to the URL when sending the request. * @param additionalParams - Additional query parameters for the request. * @param parser - Optional ZodObject to parse the response data before returning it as T * @returns The response data from the API. */ async request({ apiPath, additionalParams = {}, parser }) { const params = Object.entries(additionalParams).reduce( (acc, [key, value]) => { if (Array.isArray(value)) { value.forEach((val) => { acc.append(key, val); }); } else { acc.append(key, value); } return acc; }, new URLSearchParams({ apiKey: this.apiKey }) ); const response = await this.session.get(apiPath, { params }); const result = parser?.parse(response.data) ?? response.data; return result; } async getGames(parameters) { const additionalParams = parameters ? { ...parameters, ...parameters.dateRange && { startDate: parameters.dateRange[0], endDate: parameters.dateRange[1] }, ...parameters.providerCoordinates && { providerLatitude: parameters.providerCoordinates[0], providerLongitude: parameters.providerCoordinates[1] } } : {}; return await this.request({ apiPath: "/games.json", additionalParams }); } async getGameOdds(parameters) { return await this.request({ apiPath: "/odds.json", additionalParams: parameters }); } async getOddsSplits(parameters) { return await this.request({ apiPath: "/odds-splits.json", additionalParams: parameters }); } async getSideOdds(parameters) { return await this.request({ apiPath: "/sideodds.json", additionalParams: parameters }); } async getPlayers(parameters) { return await this.request({ apiPath: "/players.json", additionalParams: parameters }); } async getPlayerStatistics(parameters) { return await this.request({ apiPath: "/statistics.json", additionalParams: parameters }); } async getSports() { return await this.request({ apiPath: "/sports.json" }); } async getStandings(parameters) { return await this.request({ apiPath: "/standings.json", additionalParams: parameters }); } async getTeams(parameters) { return await this.request({ apiPath: "/teams.json", additionalParams: parameters }); } async getInjuries(parameters) { return await this.request({ apiPath: "/injuries.json", additionalParams: parameters }); } }; // src/enums.ts var RUWTSport = /* @__PURE__ */ ((RUWTSport2) => { RUWTSport2["af2"] = "af2"; RUWTSport2["afl"] = "afl"; RUWTSport2["ahl"] = "ahl"; RUWTSport2["aussiefootball"] = "aussiefootball"; RUWTSport2["bowling"] = "bowling"; RUWTSport2["boxing"] = "boxing"; RUWTSport2["cba"] = "cba"; RUWTSport2["cfl"] = "cfl"; RUWTSport2["chl"] = "chl"; RUWTSport2["commgames"] = "commgames"; RUWTSport2["cricket"] = "cricket"; RUWTSport2["cycling"] = "cycling"; RUWTSport2["echl"] = "echl"; RUWTSport2["esports"] = "esports"; RUWTSport2["general"] = "general"; RUWTSport2["golf"] = "golf"; RUWTSport2["horse"] = "horse"; RUWTSport2["kbo"] = "kbo"; RUWTSport2["lacrosse"] = "lacrosse"; RUWTSport2["llws"] = "llws"; RUWTSport2["mlb"] = "mlb"; RUWTSport2["mma"] = "mma"; RUWTSport2["nba"] = "nba"; RUWTSport2["nbdl"] = "nbdl"; RUWTSport2["nbl"] = "nbl"; RUWTSport2["ncaab"] = "ncaab"; RUWTSport2["ncaabaseball"] = "ncaabaseball"; RUWTSport2["ncaabw"] = "ncaabw"; RUWTSport2["ncaaf"] = "ncaaf"; RUWTSport2["ncaah"] = "ncaah"; RUWTSport2["netball"] = "netball"; RUWTSport2["nfl"] = "nfl"; RUWTSport2["nfleuropa"] = "nfleuropa"; RUWTSport2["nhl"] = "nhl"; RUWTSport2["olympics"] = "olympics"; RUWTSport2["poker"] = "poker"; RUWTSport2["racing"] = "racing"; RUWTSport2["rodeo"] = "rodeo"; RUWTSport2["rugbyleague"] = "rugbyleague"; RUWTSport2["rugbyunion"] = "rugbyunion"; RUWTSport2["soccer"] = "soccer"; RUWTSport2["tennis"] = "tennis"; RUWTSport2["trackandfield"] = "trackandfield"; RUWTSport2["ufl"] = "ufl"; RUWTSport2["wbc"] = "wbc"; RUWTSport2["wnba"] = "wnba"; return RUWTSport2; })(RUWTSport || {}); var RUWTLeagueCode = /* @__PURE__ */ ((RUWTLeagueCode2) => { RUWTLeagueCode2["AUF"] = "AUF"; RUWTLeagueCode2["AUFN"] = "AUFN"; RUWTLeagueCode2["AUGA"] = "AUGA"; RUWTLeagueCode2["BBA"] = "BBA"; RUWTLeagueCode2["BBC"] = "BBC"; RUWTLeagueCode2["BBD"] = "BBD"; RUWTLeagueCode2["BBG"] = "BBG"; RUWTLeagueCode2["BBKR"] = "BBKR"; RUWTLeagueCode2["BBM"] = "BBM"; RUWTLeagueCode2["BBN"] = "BBN"; RUWTLeagueCode2["BBY"] = "BBY"; RUWTLeagueCode2["BGA"] = "BGA"; RUWTLeagueCode2["BKA"] = "BKA"; RUWTLeagueCode2["BKAU"] = "BKAU"; RUWTLeagueCode2["BKC"] = "BKC"; RUWTLeagueCode2["BKD"] = "BKD"; RUWTLeagueCode2["BKN"] = "BKN"; RUWTLeagueCode2["BKP"] = "BKP"; RUWTLeagueCode2["BKW"] = "BKW"; RUWTLeagueCode2["BOX"] = "BOX"; RUWTLeagueCode2["CMWG"] = "CMWG"; RUWTLeagueCode2["CRINT"] = "CRINT"; RUWTLeagueCode2["CROWC"] = "CROWC"; RUWTLeagueCode2["CRTAU"] = "CRTAU"; RUWTLeagueCode2["CRTIN"] = "CRTIN"; RUWTLeagueCode2["CRTWC"] = "CRTWC"; RUWTLeagueCode2["CYC"] = "CYC"; RUWTLeagueCode2["DGA"] = "DGA"; RUWTLeagueCode2["EGA"] = "EGA"; RUWTLeagueCode2["ESOWL"] = "ESOWL"; RUWTLeagueCode2["FBA"] = "FBA"; RUWTLeagueCode2["FBB"] = "FBB"; RUWTLeagueCode2["FBC"] = "FBC"; RUWTLeagueCode2["FBD"] = "FBD"; RUWTLeagueCode2["FBP"] = "FBP"; RUWTLeagueCode2["FBU"] = "FBU"; RUWTLeagueCode2["FBW"] = "FBW"; RUWTLeagueCode2["GEN"] = "GEN"; RUWTLeagueCode2["HKA"] = "HKA"; RUWTLeagueCode2["HKC"] = "HKC"; RUWTLeagueCode2["HKE"] = "HKE"; RUWTLeagueCode2["HKH"] = "HKH"; RUWTLeagueCode2["HKN"] = "HKN"; RUWTLeagueCode2["LCN"] = "LCN"; RUWTLeagueCode2["LGA"] = "LGA"; RUWTLeagueCode2["LLB"] = "LLB"; RUWTLeagueCode2["MMA"] = "MMA"; RUWTLeagueCode2["NTINT"] = "NTINT"; RUWTLeagueCode2["NTTT"] = "NTTT"; RUWTLeagueCode2["NTWC"] = "NTWC"; RUWTLeagueCode2["OLY"] = "OLY"; RUWTLeagueCode2["OLYSM"] = "OLYSM"; RUWTLeagueCode2["OLYSW"] = "OLYSW"; RUWTLeagueCode2["PBA"] = "PBA"; RUWTLeagueCode2["PGA"] = "PGA"; RUWTLeagueCode2["POK"] = "POK"; RUWTLeagueCode2["RACF1"] = "RACF1"; RUWTLeagueCode2["RACGP"] = "RACGP"; RUWTLeagueCode2["RACIN"] = "RACIN"; RUWTLeagueCode2["RACNS"] = "RACNS"; RUWTLeagueCode2["RACV8"] = "RACV8"; RUWTLeagueCode2["RAH"] = "RAH"; RUWTLeagueCode2["RAT"] = "RAT"; RUWTLeagueCode2["RLAU9"] = "RLAU9"; RUWTLeagueCode2["RLEU"] = "RLEU"; RUWTLeagueCode2["RLINT"] = "RLINT"; RUWTLeagueCode2["RLNRL"] = "RLNRL"; RUWTLeagueCode2["RLWC"] = "RLWC"; RUWTLeagueCode2["ROD"] = "ROD"; RUWTLeagueCode2["RU6N"] = "RU6N"; RUWTLeagueCode2["RU7"] = "RU7"; RUWTLeagueCode2["RUINT"] = "RUINT"; RUWTLeagueCode2["RUSR"] = "RUSR"; RUWTLeagueCode2["RUTRC"] = "RUTRC"; RUWTLeagueCode2["RUWC"] = "RUWC"; RUWTLeagueCode2["SCAFC"] = "SCAFC"; RUWTLeagueCode2["SCB"] = "SCB"; RUWTLeagueCode2["SCC"] = "SCC"; RUWTLeagueCode2["SCNA"] = "SCNA"; RUWTLeagueCode2["SCU"] = "SCU"; RUWTLeagueCode2["SGA"] = "SGA"; RUWTLeagueCode2["SOA"] = "SOA"; RUWTLeagueCode2["SOAQ"] = "SOAQ"; RUWTLeagueCode2["SOASI"] = "SOASI"; RUWTLeagueCode2["SOAUA"] = "SOAUA"; RUWTLeagueCode2["SOAUW"] = "SOAUW"; RUWTLeagueCode2["SOC"] = "SOC"; RUWTLeagueCode2["SOE"] = "SOE"; RUWTLeagueCode2["SOEFA"] = "SOEFA"; RUWTLeagueCode2["SOEFL"] = "SOEFL"; RUWTLeagueCode2["SOEL1"] = "SOEL1"; RUWTLeagueCode2["SOELC"] = "SOELC"; RUWTLeagueCode2["SOF"] = "SOF"; RUWTLeagueCode2["SOF2"] = "SOF2"; RUWTLeagueCode2["SOG"] = "SOG"; RUWTLeagueCode2["SOG2"] = "SOG2"; RUWTLeagueCode2["SOI"] = "SOI"; RUWTLeagueCode2["SOI2"] = "SOI2"; RUWTLeagueCode2["SOINT"] = "SOINT"; RUWTLeagueCode2["SOINW"] = "SOINW"; RUWTLeagueCode2["SOM"] = "SOM"; RUWTLeagueCode2["SOMW"] = "SOMW"; RUWTLeagueCode2["SONCC"] = "SONCC"; RUWTLeagueCode2["SONLC"] = "SONLC"; RUWTLeagueCode2["SOR"] = "SOR"; RUWTLeagueCode2["SOS"] = "SOS"; RUWTLeagueCode2["SOS2"] = "SOS2"; RUWTLeagueCode2["SOSC"] = "SOSC"; RUWTLeagueCode2["SOW"] = "SOW"; RUWTLeagueCode2["SOWW"] = "SOWW"; RUWTLeagueCode2["SOX"] = "SOX"; RUWTLeagueCode2["TEN"] = "TEN"; return RUWTLeagueCode2; })(RUWTLeagueCode || {}); var RUWTOddsProvider = /* @__PURE__ */ ((RUWTOddsProvider2) => { RUWTOddsProvider2["BETWAY"] = "BETWAY"; RUWTOddsProvider2["BET_365"] = "BET_365"; RUWTOddsProvider2["BET_RIVERS_AZ"] = "BET_RIVERS_AZ"; RUWTOddsProvider2["BET_RIVERS_CA_ON"] = "BET_RIVERS_CA_ON"; RUWTOddsProvider2["BET_RIVERS_CO"] = "BET_RIVERS_CO"; RUWTOddsProvider2["BET_RIVERS_IA"] = "BET_RIVERS_IA"; RUWTOddsProvider2["BET_RIVERS_IL"] = "BET_RIVERS_IL"; RUWTOddsProvider2["BET_RIVERS_IN"] = "BET_RIVERS_IN"; RUWTOddsProvider2["BET_RIVERS_LA"] = "BET_RIVERS_LA"; RUWTOddsProvider2["BET_RIVERS_MD"] = "BET_RIVERS_MD"; RUWTOddsProvider2["BET_RIVERS_MI"] = "BET_RIVERS_MI"; RUWTOddsProvider2["BET_RIVERS_NY"] = "BET_RIVERS_NY"; RUWTOddsProvider2["BET_RIVERS_OH"] = "BET_RIVERS_OH"; RUWTOddsProvider2["BET_RIVERS_PA"] = "BET_RIVERS_PA"; RUWTOddsProvider2["BET_RIVERS_VA"] = "BET_RIVERS_VA"; RUWTOddsProvider2["BET_RIVERS_WV"] = "BET_RIVERS_WV"; RUWTOddsProvider2["CONSENSUS"] = "CONSENSUS"; RUWTOddsProvider2["DESERT_DIAMOND_AZ"] = "DESERT_DIAMOND_AZ"; RUWTOddsProvider2["DRAFTKINGS"] = "DRAFTKINGS"; RUWTOddsProvider2["ESPNBET"] = "ESPNBET"; RUWTOddsProvider2["FANDUEL"] = "FANDUEL"; RUWTOddsProvider2["MGM"] = "MGM"; RUWTOddsProvider2["SPORTS_INTERACTION"] = "SPORTS_INTERACTION"; RUWTOddsProvider2["SPORT_888"] = "SPORT_888"; RUWTOddsProvider2["SUGAR_HOUSE_NJ"] = "SUGAR_HOUSE_NJ"; RUWTOddsProvider2["TIPICO"] = "TIPICO"; RUWTOddsProvider2["UNIBET"] = "UNIBET"; RUWTOddsProvider2["WILLIAM_HILL"] = "WILLIAM_HILL"; return RUWTOddsProvider2; })(RUWTOddsProvider || {}); exports.RUWTClient = RUWTClient; exports.RUWTLeagueCode = RUWTLeagueCode; exports.RUWTOddsProvider = RUWTOddsProvider; exports.RUWTSport = RUWTSport;