Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.

Commit db6aa28

Browse files
authored
Use factory pattern to determine which scanner to use (#129)
1 parent a182ef6 commit db6aa28

File tree

11 files changed

+241
-339
lines changed

11 files changed

+241
-339
lines changed

src/common/messages/message-handler.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ const notifyHandler: MessageHandler<'notify'> = async (payload, _context) => {
3434
const pageInfoHandler: MessageHandler<'pageInfo'> = (payload, context) => {
3535
return new Promise((resolve, reject) => {
3636
console.log('Page Info Received, triggering page load handler:', payload);
37-
context.main.onPageLoaded(payload.domain, payload.url).then(resolve).catch(reject);
37+
try {
38+
context.main.onPageLoaded(payload.domain, payload.url);
39+
resolve();
40+
} catch (e) {
41+
reject(e as Error);
42+
}
3843
});
3944
};
4045

src/common/services/content-scanner.ts

Lines changed: 0 additions & 89 deletions
This file was deleted.

src/common/services/scanner.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { IScanParameters } from '@/common/services/content-scanner.types';
2+
import { UrlScanner } from '@/scanners/url-scanner';
3+
import AmazonScanner from '@/scanners/amazon/amazon-scanner';
4+
5+
const amazonProductPageRegex = /^https?:\/\/(www\.)?amazon\.[a-z.]+\/.+\/dp\/[A-Z0-9]{10}(?:[/?].*)?$/i;
6+
7+
export class ScannerFactory {
8+
getScanner(parameters: IScanParameters) {
9+
if (amazonProductPageRegex.test(parameters.url)) {
10+
return new AmazonScanner(parameters);
11+
}
12+
13+
return new UrlScanner({
14+
url: new URL(parameters.url),
15+
pagesDb: parameters.pagesDb,
16+
});
17+
}
18+
}

src/content-scanners/base-domain-scanner.ts

Lines changed: 0 additions & 123 deletions
This file was deleted.

src/content-scanners/default-scanner.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/content-scanners/test.ts

Lines changed: 0 additions & 80 deletions
This file was deleted.

0 commit comments

Comments
 (0)