From 8dc481b551bb0d73144b111d5e50271b27e8dc64 Mon Sep 17 00:00:00 2001 From: Sebastian Seedorf Date: Thu, 19 Nov 2020 23:04:36 +0100 Subject: [PATCH] Fixed circular reference #2 --- out/config.js | 8 ++++---- out/helpers/resolvable.d.ts | 2 ++ out/helpers/resolvable.js | 10 +++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/out/config.js b/out/config.js index 7fbcde4..f5d4f18 100644 --- a/out/config.js +++ b/out/config.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.DefaultConfig = void 0; const env = require("env-var"); -const _1 = require("."); +const urlJoin_1 = require("./helpers/urlJoin"); const NODE_ENV = env.get('NODE_ENV').default('development').asString(); const isProduction = NODE_ENV === 'production'; const envs = { @@ -34,7 +34,7 @@ function requireEnv(name, onlyInProduction = false) { env.get(name).required(!onlyInProduction || isProduction).asString(); } exports.DefaultConfig = Object.assign(Object.assign({}, envs), { EXTERNAL_BASE_URL: envs.EXTERNAL_BASE_URL || - _1.urlJoin(`http://${envs.HOSTNAME}${envs.PORT !== 80 ? `:${envs.PORT}` : ''}`, envs.BASE_PATH), isProduction, + urlJoin_1.urlJoin(`http://${envs.HOSTNAME}${envs.PORT !== 80 ? `:${envs.PORT}` : ''}`, envs.BASE_PATH), isProduction, requireEnv, AUTH_PROXY_USERINFO_URL: envs.AUTH_PROXY_USERINFO_URL || - envs.AUTH_PROXY_URL && _1.urlJoin(envs.AUTH_PROXY_URL, 'userinfo'), AUTH_PROXY_INIT_LOGOUT_URL: envs.AUTH_PROXY_INIT_LOGOUT_URL || - envs.AUTH_PROXY_URL && _1.urlJoin(envs.AUTH_PROXY_URL, 'init-logout') }); + envs.AUTH_PROXY_URL && urlJoin_1.urlJoin(envs.AUTH_PROXY_URL, 'userinfo'), AUTH_PROXY_INIT_LOGOUT_URL: envs.AUTH_PROXY_INIT_LOGOUT_URL || + envs.AUTH_PROXY_URL && urlJoin_1.urlJoin(envs.AUTH_PROXY_URL, 'init-logout') }); diff --git a/out/helpers/resolvable.d.ts b/out/helpers/resolvable.d.ts index b5bec50..35dcc0b 100644 --- a/out/helpers/resolvable.d.ts +++ b/out/helpers/resolvable.d.ts @@ -11,6 +11,7 @@ declare class FetchOnce> { protected state: ResolvableState; protected pendings: [(res: Promise | T) => void, (reason: unknown) => void][]; constructor(fetchMethod?: ((...args: U) => Promise) | undefined); + reset(): void; resolve(...args: U): Promise; protected isFinished(): boolean; protected parsePromise(promise: Promise): void; @@ -23,5 +24,6 @@ export declare class WaitForSync extends FetchOnce { constructor(); setData(data: T): void; setError(error: unknown): void; + reset(): void; } export {}; diff --git a/out/helpers/resolvable.js b/out/helpers/resolvable.js index c155b3c..e96d613 100644 --- a/out/helpers/resolvable.js +++ b/out/helpers/resolvable.js @@ -23,8 +23,12 @@ class FetchOnce { this.state = ResolvableState.WAITING; this.pendings = []; } + reset() { + this.data = undefined; + this.error = undefined; + this.state = ResolvableState.WAITING; + } resolve(...args) { - // eslint-disable-next-line promise/avoid-new return new Promise((resolve, reject) => { switch (this.state) { case ResolvableState.WAITING: @@ -81,5 +85,9 @@ class WaitForSync extends FetchOnce { this.parsePromise((() => __awaiter(this, void 0, void 0, function* () { throw error; }))()); } } + reset() { + super.reset(); + this.state = ResolvableState.PENDING; + } } exports.WaitForSync = WaitForSync;