From a74bafd3a117c3c629cac789720414a45c5a83f2 Mon Sep 17 00:00:00 2001 From: cswimr Date: Sat, 8 Feb 2025 09:04:41 -0600 Subject: [PATCH] refactor providers again --- src/parser.ts | 6 +++--- src/provider.ts | 14 ++++++-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/parser.ts b/src/parser.ts index 31ef701..8ff9b49 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -56,7 +56,7 @@ export class IndexFileEntry { return new ModrinthProvider( parsed.download.hash, parsed.download["hash-format"], - parsed.download.url, + new Resource(parsed.download.url), parsed.update.modrinth["mod-id"], parsed.update.modrinth["version"], ); @@ -72,7 +72,7 @@ export class IndexFileEntry { return new GitHubProvider( parsed.download.hash, parsed.download["hash-format"], - parsed.download.url, + new Resource(parsed.download.url), parsed.update.github.branch, parsed.update.github.regex, parsed.update.github.slug, @@ -82,7 +82,7 @@ export class IndexFileEntry { return new UrlProvider( parsed.download.hash, parsed.download["hash-format"], - parsed.download.url, + new Resource(parsed.download.url), ); } else { throw new Error("Unknown provider in TOML."); diff --git a/src/provider.ts b/src/provider.ts index 3f51c16..7457bf1 100644 --- a/src/provider.ts +++ b/src/provider.ts @@ -4,19 +4,15 @@ export class UrlProvider { constructor( public hash: string, public hashFormat: string, - private url: string, + public url: Resource, ) {} - - get downloadUrl(): Resource { - return new Resource(this.url); - } } export class ModrinthProvider extends UrlProvider { constructor( hash: string, hashFormat: string, - url: string, + url: Resource, public modId: string, public versionId: string, ) { @@ -28,7 +24,7 @@ export class GitHubProvider extends UrlProvider { constructor( hash: string, hashFormat: string, - url: string, + url: Resource, public branch: string, public regex: string, public slug: string, @@ -49,7 +45,9 @@ export class CurseForgeProvider extends UrlProvider { super( hash, hashFormat, - `https://www.curseforge.com/api/v1/mods/${projectId}/files/${fileId}/download`, + new Resource( + `https://www.curseforge.com/api/v1/mods/${projectId}/files/${fileId}/download`, + ), ); } }