refactor providers again

This commit is contained in:
cswimr 2025-02-08 09:04:41 -06:00
parent 109155631d
commit a74bafd3a1
Signed by: cswimr
GPG key ID: 0EC431A8DA8F8087
2 changed files with 9 additions and 11 deletions

View file

@ -56,7 +56,7 @@ export class IndexFileEntry {
return new ModrinthProvider( return new ModrinthProvider(
parsed.download.hash, parsed.download.hash,
parsed.download["hash-format"], parsed.download["hash-format"],
parsed.download.url, new Resource(parsed.download.url),
parsed.update.modrinth["mod-id"], parsed.update.modrinth["mod-id"],
parsed.update.modrinth["version"], parsed.update.modrinth["version"],
); );
@ -72,7 +72,7 @@ export class IndexFileEntry {
return new GitHubProvider( return new GitHubProvider(
parsed.download.hash, parsed.download.hash,
parsed.download["hash-format"], parsed.download["hash-format"],
parsed.download.url, new Resource(parsed.download.url),
parsed.update.github.branch, parsed.update.github.branch,
parsed.update.github.regex, parsed.update.github.regex,
parsed.update.github.slug, parsed.update.github.slug,
@ -82,7 +82,7 @@ export class IndexFileEntry {
return new UrlProvider( return new UrlProvider(
parsed.download.hash, parsed.download.hash,
parsed.download["hash-format"], parsed.download["hash-format"],
parsed.download.url, new Resource(parsed.download.url),
); );
} else { } else {
throw new Error("Unknown provider in TOML."); throw new Error("Unknown provider in TOML.");

View file

@ -4,19 +4,15 @@ export class UrlProvider {
constructor( constructor(
public hash: string, public hash: string,
public hashFormat: string, public hashFormat: string,
private url: string, public url: Resource,
) {} ) {}
get downloadUrl(): Resource {
return new Resource(this.url);
}
} }
export class ModrinthProvider extends UrlProvider { export class ModrinthProvider extends UrlProvider {
constructor( constructor(
hash: string, hash: string,
hashFormat: string, hashFormat: string,
url: string, url: Resource,
public modId: string, public modId: string,
public versionId: string, public versionId: string,
) { ) {
@ -28,7 +24,7 @@ export class GitHubProvider extends UrlProvider {
constructor( constructor(
hash: string, hash: string,
hashFormat: string, hashFormat: string,
url: string, url: Resource,
public branch: string, public branch: string,
public regex: string, public regex: string,
public slug: string, public slug: string,
@ -49,7 +45,9 @@ export class CurseForgeProvider extends UrlProvider {
super( super(
hash, hash,
hashFormat, 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`,
),
); );
} }
} }