diff --git a/package.json b/package.json index bcb4deba..e3995ed6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "twisted", - "version": "1.80.0", + "version": "1.80.1", "description": "Fetching riot games api data", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -56,9 +56,7 @@ "typescript": "^5.3.2" }, "dependencies": { - "http-status-codes": "^2.3.0", - "promise-queue": "^2.2.5", - "uuid": "^14.0.0" + "promise-queue": "^2.2.5" }, "standard": { "env": [ diff --git a/src/apis/lol/match/match-v5.ts b/src/apis/lol/match/match-v5.ts index a95246c2..aa2f6279 100644 --- a/src/apis/lol/match/match-v5.ts +++ b/src/apis/lol/match/match-v5.ts @@ -1,4 +1,4 @@ -import { NOT_FOUND } from 'http-status-codes' +import { NOT_FOUND } from '../../../constants/http-status' import { RegionGroups } from '../../../constants' import { endpointsV5 } from '../../../endpoints/endpoints' import { GenericError } from '../../../errors' diff --git a/src/apis/lol/match/match.ts b/src/apis/lol/match/match.ts index fe1aaf3c..5a259530 100644 --- a/src/apis/lol/match/match.ts +++ b/src/apis/lol/match/match.ts @@ -4,7 +4,7 @@ import { endpointsV4 } from '../../../endpoints/endpoints' import { MatchDto } from '../../../models-dto/matches/match/match.dto' import { MatchTimelineDto } from '../../../models-dto/matches/match-timeline/match-timeline.dto' import { MatchQueryDTO } from '../../../models-dto/matches/query/match-query.dto' -import { NOT_FOUND } from 'http-status-codes' +import { NOT_FOUND } from '../../../constants/http-status' import { GenericError } from '../../../errors' import { ApiResponseDTO, MatchTeamsDto } from '../../../models-dto' import { BaseApiLol } from '../base/base.api.lol' diff --git a/src/apis/lol/spectator/spectator-v5.ts b/src/apis/lol/spectator/spectator-v5.ts index a520af4f..aed3a638 100644 --- a/src/apis/lol/spectator/spectator-v5.ts +++ b/src/apis/lol/spectator/spectator-v5.ts @@ -1,4 +1,4 @@ -import { StatusCodes } from 'http-status-codes' +import { StatusCodes } from '../../../constants/http-status' import { Regions } from '../../../constants' import { FeaturedGamesDTO } from '../../../models-dto/spectator/featured-games.dto' import { endpointsV5 } from '../../../endpoints/endpoints' diff --git a/src/apis/lol/spectator/spectator.ts b/src/apis/lol/spectator/spectator.ts index 73bc72d2..b5b8a0d5 100644 --- a/src/apis/lol/spectator/spectator.ts +++ b/src/apis/lol/spectator/spectator.ts @@ -1,4 +1,4 @@ -import { NOT_FOUND } from 'http-status-codes' +import { NOT_FOUND } from '../../../constants/http-status' import { Regions } from '../../../constants' import { FeaturedGamesDTO } from '../../../models-dto/spectator/featured-games.dto' import { endpointsV5 } from '../../../endpoints/endpoints' diff --git a/src/apis/lol/thirdPartyCode/thirdPartyCode.ts b/src/apis/lol/thirdPartyCode/thirdPartyCode.ts index 1defa829..2733393b 100644 --- a/src/apis/lol/thirdPartyCode/thirdPartyCode.ts +++ b/src/apis/lol/thirdPartyCode/thirdPartyCode.ts @@ -1,4 +1,4 @@ -import { INTERNAL_SERVER_ERROR, NOT_FOUND } from 'http-status-codes' +import { INTERNAL_SERVER_ERROR, NOT_FOUND } from '../../../constants/http-status' import { Regions } from '../../../constants' import { endpointsV4 } from '../../../endpoints/endpoints' import { ThirdPartyCodeDTO } from '../../../models-dto/third-party-code/third-party-code.dto' diff --git a/src/base/base.ts b/src/base/base.ts index 10a1003c..c2e95c73 100644 --- a/src/base/base.ts +++ b/src/base/base.ts @@ -1,6 +1,6 @@ import { ApiKeyNotFound } from '../errors' import { IEndpoint } from '../endpoints' -import { TOO_MANY_REQUESTS, SERVICE_UNAVAILABLE } from 'http-status-codes' +import { TOO_MANY_REQUESTS, SERVICE_UNAVAILABLE } from '../constants/http-status' import { ApiResponseDTO } from '../models-dto/api-response/api-response' import { RateLimitDto } from '../models-dto/rate-limit/rate-limit.dto' import { GenericError } from '../errors/Generic.error' diff --git a/src/constants/http-status.ts b/src/constants/http-status.ts new file mode 100644 index 00000000..ac02198a --- /dev/null +++ b/src/constants/http-status.ts @@ -0,0 +1,23 @@ +/** + * Minimal set of HTTP status codes used by the library. + * + * Node has no built-in HTTP status enum, so instead of pulling in the + * `http-status-codes` package we keep the handful of codes the wrapper + * actually relies on. Both the {@link StatusCodes} enum and individual named + * constants are exported so call sites can use whichever reads best. + */ +export enum StatusCodes { + FORBIDDEN = 403, + NOT_FOUND = 404, + TOO_MANY_REQUESTS = 429, + INTERNAL_SERVER_ERROR = 500, + NOT_IMPLEMENTED = 501, + SERVICE_UNAVAILABLE = 503 +} + +export const FORBIDDEN = StatusCodes.FORBIDDEN +export const NOT_FOUND = StatusCodes.NOT_FOUND +export const TOO_MANY_REQUESTS = StatusCodes.TOO_MANY_REQUESTS +export const INTERNAL_SERVER_ERROR = StatusCodes.INTERNAL_SERVER_ERROR +export const NOT_IMPLEMENTED = StatusCodes.NOT_IMPLEMENTED +export const SERVICE_UNAVAILABLE = StatusCodes.SERVICE_UNAVAILABLE diff --git a/src/errors/Generic.error.ts b/src/errors/Generic.error.ts index 9104a021..78eaf506 100644 --- a/src/errors/Generic.error.ts +++ b/src/errors/Generic.error.ts @@ -1,6 +1,6 @@ import { IErrors } from '.' import { RateLimitDto } from '../models-dto/rate-limit/rate-limit.dto' -import HttpStatusCodes from 'http-status-codes' +import { INTERNAL_SERVER_ERROR } from '../constants/http-status' const message = 'Generic error' @@ -23,7 +23,7 @@ export class GenericError extends Error implements IErrors { constructor (rateLimits: RateLimitDto, error: HttpErrorLike) { super(error.message || message) - this.status = error.response?.status || HttpStatusCodes.INTERNAL_SERVER_ERROR + this.status = error.response?.status || INTERNAL_SERVER_ERROR this.body = error.response?.data this.rateLimits = rateLimits this.error = error diff --git a/src/errors/api-key-not-found.error.ts b/src/errors/api-key-not-found.error.ts index 6e9dd568..a2935011 100644 --- a/src/errors/api-key-not-found.error.ts +++ b/src/errors/api-key-not-found.error.ts @@ -1,4 +1,4 @@ -import * as HttpCodes from 'http-status-codes' +import { NOT_IMPLEMENTED } from '../constants/http-status' import { IErrors } from '.' const message = 'Api key not found' @@ -7,7 +7,7 @@ const message = 'Api key not found' * Not api key found */ export class ApiKeyNotFound extends Error implements IErrors { - readonly status = HttpCodes.NOT_IMPLEMENTED + readonly status = NOT_IMPLEMENTED readonly name = 'ApiKeyNotFound' // This isn't a useless constructor because this error doesn't need a message parameter diff --git a/src/errors/rate-limit.error.ts b/src/errors/rate-limit.error.ts index 4dac71df..6867b596 100644 --- a/src/errors/rate-limit.error.ts +++ b/src/errors/rate-limit.error.ts @@ -1,5 +1,5 @@ import { IErrors } from '.' -import { TOO_MANY_REQUESTS } from 'http-status-codes' +import { TOO_MANY_REQUESTS } from '../constants/http-status' import { RateLimitDto } from '../models-dto/rate-limit/rate-limit.dto' const message = 'Rate limit error' diff --git a/src/errors/service-unavailable.error.ts b/src/errors/service-unavailable.error.ts index 7aa08393..3d0b2f3e 100644 --- a/src/errors/service-unavailable.error.ts +++ b/src/errors/service-unavailable.error.ts @@ -1,5 +1,5 @@ import { IErrors } from '.' -import { SERVICE_UNAVAILABLE } from 'http-status-codes' +import { SERVICE_UNAVAILABLE } from '../constants/http-status' import { RateLimitDto } from '../models-dto/rate-limit/rate-limit.dto' const message = 'Riot games api unavailable check: https://developer.riotgames.com/api-status/' diff --git a/test/apis/leagueOfLegends/spectator.test.ts b/test/apis/leagueOfLegends/spectator.test.ts index 6b41f9a7..2ef70ca3 100644 --- a/test/apis/leagueOfLegends/spectator.test.ts +++ b/test/apis/leagueOfLegends/spectator.test.ts @@ -1,4 +1,4 @@ -import httpStatus from 'http-status-codes' +import * as httpStatus from '../../../src/constants/http-status' import { SpectatorApi } from '../../../src/apis/lol/spectator/spectator' import { Regions } from '../../../src/constants' diff --git a/test/apis/leagueOfLegends/thirdPartyCode.test.ts b/test/apis/leagueOfLegends/thirdPartyCode.test.ts index ad05008b..63bcb4b7 100644 --- a/test/apis/leagueOfLegends/thirdPartyCode.test.ts +++ b/test/apis/leagueOfLegends/thirdPartyCode.test.ts @@ -1,4 +1,4 @@ -import * as httpStatusCode from 'http-status-codes' +import * as httpStatusCode from '../../../src/constants/http-status' import { ThirdPartyCode } from '../../../src/apis/lol/thirdPartyCode/thirdPartyCode' import { Regions } from '../../../src/constants' diff --git a/yarn.lock b/yarn.lock index 023c96bd..7f32a4aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1973,11 +1973,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-status-codes@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.3.0.tgz#987fefb28c69f92a43aecc77feec2866349a8bfc" - integrity sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -3503,11 +3498,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -uuid@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.0.tgz#0af883220163d264ffe0c084f6b8a89b9666966d" - integrity sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"