Fixed circular reference #2

This commit is contained in:
Sebastian Seedorf
2020-11-19 23:04:36 +01:00
parent 91ba224f79
commit 8dc481b551
3 changed files with 15 additions and 5 deletions

View File

@@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultConfig = void 0; exports.DefaultConfig = void 0;
const env = require("env-var"); 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 NODE_ENV = env.get('NODE_ENV').default('development').asString();
const isProduction = NODE_ENV === 'production'; const isProduction = NODE_ENV === 'production';
const envs = { const envs = {
@@ -34,7 +34,7 @@ function requireEnv(name, onlyInProduction = false) {
env.get(name).required(!onlyInProduction || isProduction).asString(); env.get(name).required(!onlyInProduction || isProduction).asString();
} }
exports.DefaultConfig = Object.assign(Object.assign({}, envs), { EXTERNAL_BASE_URL: envs.EXTERNAL_BASE_URL || 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 || 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 && urlJoin_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, 'init-logout') });

View File

@@ -11,6 +11,7 @@ declare class FetchOnce<T, U extends Array<unknown>> {
protected state: ResolvableState; protected state: ResolvableState;
protected pendings: [(res: Promise<T> | T) => void, (reason: unknown) => void][]; protected pendings: [(res: Promise<T> | T) => void, (reason: unknown) => void][];
constructor(fetchMethod?: ((...args: U) => Promise<T>) | undefined); constructor(fetchMethod?: ((...args: U) => Promise<T>) | undefined);
reset(): void;
resolve(...args: U): Promise<T>; resolve(...args: U): Promise<T>;
protected isFinished(): boolean; protected isFinished(): boolean;
protected parsePromise(promise: Promise<T>): void; protected parsePromise(promise: Promise<T>): void;
@@ -23,5 +24,6 @@ export declare class WaitForSync<T> extends FetchOnce<T, never> {
constructor(); constructor();
setData(data: T): void; setData(data: T): void;
setError(error: unknown): void; setError(error: unknown): void;
reset(): void;
} }
export {}; export {};

View File

@@ -23,8 +23,12 @@ class FetchOnce {
this.state = ResolvableState.WAITING; this.state = ResolvableState.WAITING;
this.pendings = []; this.pendings = [];
} }
reset() {
this.data = undefined;
this.error = undefined;
this.state = ResolvableState.WAITING;
}
resolve(...args) { resolve(...args) {
// eslint-disable-next-line promise/avoid-new
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
switch (this.state) { switch (this.state) {
case ResolvableState.WAITING: case ResolvableState.WAITING:
@@ -81,5 +85,9 @@ class WaitForSync extends FetchOnce {
this.parsePromise((() => __awaiter(this, void 0, void 0, function* () { throw error; }))()); this.parsePromise((() => __awaiter(this, void 0, void 0, function* () { throw error; }))());
} }
} }
reset() {
super.reset();
this.state = ResolvableState.PENDING;
}
} }
exports.WaitForSync = WaitForSync; exports.WaitForSync = WaitForSync;