From e5ccbfe4341b0ed34aff9655dd1d80a234c7e311 Mon Sep 17 00:00:00 2001 From: DarkCat09 Date: Wed, 20 Sep 2023 12:03:44 +0400 Subject: [PATCH] Store parsed DOM in InputHandler --- src/handlers/handler-input.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/handlers/handler-input.ts b/src/handlers/handler-input.ts index 1f2d260..7c7693e 100644 --- a/src/handlers/handler-input.ts +++ b/src/handlers/handler-input.ts @@ -7,6 +7,7 @@ export class HandlerInput { private requestUrl: URL; private engine?: string; private redirectPath: string; + private dom?: JSDOM; constructor( data: string, @@ -23,9 +24,13 @@ export class HandlerInput { } parseDom(): JSDOM { - const dom = new JSDOM(this.data, { url: this.url }); + if (this.dom) { + return this.dom; + } - const links = dom.window.document.getElementsByTagName("a"); + this.dom = new JSDOM(this.data, { url: this.url }); + + const links = this.dom.window.document.getElementsByTagName("a"); for (const link of links) { try { link.href = generateProxyUrl( @@ -39,7 +44,7 @@ export class HandlerInput { } } - return dom; + return this.dom; } getUrl(): string {