diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2019-12-24 13:53:16 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2019-12-24 13:53:16 +0100 |
commit | 3c51a1994f41b625823c4f15e92396b5498ce23c (patch) | |
tree | 7a96310ec32df82ac87039ea555300bcab510a5e /src/renderer/util.ts | |
parent | 33926af829848050c54c698ed22da9fe2b912aea (diff) | |
download | rpgedit-3c51a1994f41b625823c4f15e92396b5498ce23c.tar rpgedit-3c51a1994f41b625823c4f15e92396b5498ce23c.zip |
Move renderer into "runtime" subdirectory
Diffstat (limited to 'src/renderer/util.ts')
-rw-r--r-- | src/renderer/util.ts | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/renderer/util.ts b/src/renderer/util.ts deleted file mode 100644 index 5ea0c88..0000000 --- a/src/renderer/util.ts +++ /dev/null @@ -1,59 +0,0 @@ -export function recordToMap<T>(r: Record<string, T>): Map<string, T> { - const ret = new Map(); - - for (const k of Object.keys(r)) - ret.set(k, r[k]); - - return ret; -} - -export function mapValues<K, V1, V2>(f: (v: V1) => V2, map: Map<K, V1>): Map<K, V2> { - const ret: Map<K, V2> = new Map(); - - for (const [k, v] of map) - ret.set(k, f(v)); - - return ret; -} - -export async function mapValuesAsync<K, V1, V2>(f: (v: V1) => Promise<V2>, map: Map<K, V1>): Promise<Map<K, V2>> { - const ret: Map<K, V2> = new Map(); - - for (const [k, v] of mapValues(f, map)) - ret.set(k, await v); - - return ret; -} - -export function nextPowerOf2(n: number): number { - let i = 1; - - while (i < n) - i *= 2; - - return i; -} - -export class Listenable<T extends any[]> { - private readonly listeners: Array<(...args: T) => void> = []; - - public addListener(listener: (...args: T) => void): void { - this.listeners.push(listener); - } - - protected runListeners(...args: T): void { - this.listeners.forEach((l) => l(...args)); - } -} - -export async function getJSON(url: string): Promise<any> { - const res = await window.fetch(url); - if (res.status < 200 || res.status >= 300) - throw new Error(res.statusText); - - return await res.json(); -} - -export function nextAnimationFrame(): Promise<DOMHighResTimeStamp> { - return new Promise((resolve) => window.requestAnimationFrame(resolve)); -} |