Merge develop

This commit is contained in:
Pieter Vander Vennet 2024-09-17 02:55:01 +02:00
commit fec3608ca4
57 changed files with 1160 additions and 594 deletions

View file

@ -401,6 +401,19 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
return newArr
}
public static DedupT<T>(arr: T[]): T[]{
if(!arr){
return arr
}
const items = []
for (const item of arr) {
if(items.indexOf(item) < 0){
items.push(item)
}
}
return items
}
/**
* Finds all duplicates in a list of strings
*
@ -1064,19 +1077,22 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
public static async downloadJsonCached<T = object | []>(
url: string,
maxCacheTimeMs: number,
headers?: Record<string, string>
headers?: Record<string, string>,
dontCacheErrors: boolean = false
): Promise<T> {
const result = await Utils.downloadJsonCachedAdvanced(url, maxCacheTimeMs, headers)
const result = await Utils.downloadJsonCachedAdvanced(url, maxCacheTimeMs, headers, dontCacheErrors)
if (result["content"]) {
return result["content"]
}
throw result["error"]
}
public static async downloadJsonCachedAdvanced<T = object | []>(
url: string,
maxCacheTimeMs: number,
headers?: Record<string, string>
headers?: Record<string, string>,
dontCacheErrors = false
): Promise<{ content: T } | { error: string; url: string; statuscode?: number }> {
const cached = Utils._download_cache.get(url)
if (cached !== undefined) {
@ -1090,7 +1106,15 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
headers
)
Utils._download_cache.set(url, { promise, timestamp: new Date().getTime() })
try {
return await promise
}catch (e) {
if(dontCacheErrors){
Utils._download_cache.delete(url)
}
throw e
}
}
public static async downloadJson<T = object | []>(