mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-07 16:09:27 +02:00
[Dev] Add support for manually rolling polyfills. Add polyfill for promise.withResolvers
(#6103)
* Add polyfill for Promise.withResolvers * Import polyfills in main * Apply kev's suggestions from code review Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Address comments from code review --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
This commit is contained in:
parent
556721127c
commit
2388372cca
@ -1,3 +1,6 @@
|
||||
import "#app/polyfills";
|
||||
// All polyfills MUST be loaded first for side effects
|
||||
|
||||
import { InvertPostFX } from "#app/pipelines/invert";
|
||||
import { initI18n } from "#app/plugins/i18n";
|
||||
import { version } from "#package.json";
|
||||
|
21
src/polyfills.ts
Normal file
21
src/polyfills.ts
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
Manual rolling of polyfills desired by the project.
|
||||
|
||||
IMPORTANT: When adding / removing polyfills, ensure that typescript becomes
|
||||
aware of their existence, either by creating `src/typings/polyfills.d.ts`
|
||||
and defining them there, or or by adding the appropriate field polyfill to the
|
||||
`lib` property in `tsconfig.json`.
|
||||
*/
|
||||
|
||||
if (typeof Promise.withResolvers === "undefined") {
|
||||
Promise.withResolvers = <T>() => {
|
||||
// Bangs are OK here; they are guaranteed to be defined when the promise is invoked.
|
||||
let resolve!: (value: T | PromiseLike<T>) => void;
|
||||
let reject!: (reason?: unknown) => void;
|
||||
const promise = new Promise<T>((res, rej) => {
|
||||
resolve = res;
|
||||
reject = rej;
|
||||
});
|
||||
return { promise, resolve, reject };
|
||||
};
|
||||
}
|
@ -2,6 +2,17 @@
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"module": "ES2020",
|
||||
// Modifying this option requires all values to be set manually because the defaults get overridden
|
||||
// Values other than "ES2024.Promise" taken from https://github.com/microsoft/TypeScript/blob/main/src/lib/es2020.full.d.ts
|
||||
"lib": [
|
||||
"ES2020",
|
||||
"ES2024.Promise",
|
||||
"DOM",
|
||||
"DOM.AsyncIterable",
|
||||
"DOM.Iterable",
|
||||
"ScriptHost",
|
||||
"WebWorker.ImportScripts"
|
||||
],
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"esModuleInterop": true,
|
||||
|
Loading…
Reference in New Issue
Block a user