aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-06-30 01:15:19 -0500
committermat <github@matdoes.dev>2021-06-30 01:15:19 -0500
commit03991ab4890202dcfd5415da66773638245dccf1 (patch)
tree663e8fe2e9f3e4fbf3298970565261baebbe02d6
parent568c74568c1397ea0db329b205e6ff6fd80eabd4 (diff)
downloadskyblock-api-03991ab4890202dcfd5415da66773638245dccf1.tar.gz
skyblock-api-03991ab4890202dcfd5415da66773638245dccf1.tar.bz2
skyblock-api-03991ab4890202dcfd5415da66773638245dccf1.zip
fix error that happens sometimes for nonexistent players
-rw-r--r--build/cleaners/skyblock/profile.js2
-rw-r--r--build/cleaners/skyblock/profiles.js2
-rw-r--r--src/cleaners/skyblock/profile.ts4
-rw-r--r--src/cleaners/skyblock/profiles.ts4
4 files changed, 7 insertions, 5 deletions
diff --git a/build/cleaners/skyblock/profile.js b/build/cleaners/skyblock/profile.js
index da988cc..6460c3b 100644
--- a/build/cleaners/skyblock/profile.js
+++ b/build/cleaners/skyblock/profile.js
@@ -48,6 +48,8 @@ exports.cleanSkyblockProfileResponseLighter = cleanSkyblockProfileResponseLighte
async function cleanSkyblockProfileResponse(data, options) {
// We use Promise.all so it can fetch all the users at once instead of waiting for the previous promise to complete
const promises = [];
+ if (!data)
+ return null;
for (const memberUUID in data.members) {
const memberRaw = data.members[memberUUID];
memberRaw.uuid = memberUUID;
diff --git a/build/cleaners/skyblock/profiles.js b/build/cleaners/skyblock/profiles.js
index ba84303..b916209 100644
--- a/build/cleaners/skyblock/profiles.js
+++ b/build/cleaners/skyblock/profiles.js
@@ -20,7 +20,7 @@ async function cleanSkyblockProfilesResponse(data) {
// let cleanedProfile = await cleanSkyblockProfileResponseLighter(profile)
promises.push(profile_1.cleanSkyblockProfileResponse(profile));
}
- const cleanedProfiles = await Promise.all(promises);
+ const cleanedProfiles = (await Promise.all(promises)).filter(p => p);
return cleanedProfiles;
}
exports.cleanSkyblockProfilesResponse = cleanSkyblockProfilesResponse;
diff --git a/src/cleaners/skyblock/profile.ts b/src/cleaners/skyblock/profile.ts
index 5bcea4b..e4d2a94 100644
--- a/src/cleaners/skyblock/profile.ts
+++ b/src/cleaners/skyblock/profile.ts
@@ -46,10 +46,10 @@ export async function cleanSkyblockProfileResponseLighter(data): Promise<CleanPr
/**
* This function is somewhat costly and shouldn't be called often. Use cleanSkyblockProfileResponseLighter if you don't need all the data
*/
-export async function cleanSkyblockProfileResponse(data: any, options?: ApiOptions): Promise<CleanFullProfile|CleanProfile> {
+export async function cleanSkyblockProfileResponse(data: any, options?: ApiOptions): Promise<CleanFullProfile | CleanProfile | null> {
// We use Promise.all so it can fetch all the users at once instead of waiting for the previous promise to complete
const promises: Promise<CleanMember | null>[] = []
-
+ if (!data) return null
for (const memberUUID in data.members) {
const memberRaw = data.members[memberUUID]
memberRaw.uuid = memberUUID
diff --git a/src/cleaners/skyblock/profiles.ts b/src/cleaners/skyblock/profiles.ts
index a44fe48..a068dae 100644
--- a/src/cleaners/skyblock/profiles.ts
+++ b/src/cleaners/skyblock/profiles.ts
@@ -19,11 +19,11 @@ export function cleanPlayerSkyblockProfiles(rawProfiles: HypixelPlayerStatsSkyBl
/** Convert an array of raw profiles into clean profiles */
export async function cleanSkyblockProfilesResponse(data: any[]): Promise<CleanProfile[]> {
- const promises: Promise<CleanProfile | CleanFullProfile>[] = []
+ const promises: Promise<CleanProfile | CleanFullProfile | null>[] = []
for (const profile of data ?? []) {
// let cleanedProfile = await cleanSkyblockProfileResponseLighter(profile)
promises.push(cleanSkyblockProfileResponse(profile))
}
- const cleanedProfiles: CleanProfile[] = await Promise.all(promises)
+ const cleanedProfiles: CleanProfile[] = (await Promise.all(promises)).filter(p => p) as CleanProfile[]
return cleanedProfiles
}