refactor providers
This commit is contained in:
parent
7e1f186d62
commit
109155631d
2 changed files with 10 additions and 24 deletions
|
@ -1,10 +1,9 @@
|
|||
import * as toml from "toml";
|
||||
import Resource from "./resource";
|
||||
import {
|
||||
Provider,
|
||||
UrlProvider,
|
||||
ModrinthProvider,
|
||||
CurseForgeProvider,
|
||||
UrlProvider,
|
||||
GitHubProvider,
|
||||
} from "./provider";
|
||||
|
||||
|
@ -12,7 +11,7 @@ export interface Metafile {
|
|||
name: string;
|
||||
filename: string;
|
||||
side: "server" | "client" | "both";
|
||||
provider: Provider;
|
||||
provider: UrlProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -52,7 +51,7 @@ export class IndexFileEntry {
|
|||
return metafile;
|
||||
}
|
||||
|
||||
private parseProvider(parsed: any): Provider {
|
||||
private parseProvider(parsed: any): UrlProvider {
|
||||
if (parsed.update?.modrinth) {
|
||||
return new ModrinthProvider(
|
||||
parsed.download.hash,
|
||||
|
|
|
@ -1,22 +1,11 @@
|
|||
import Resource from "./resource";
|
||||
|
||||
export abstract class Provider {
|
||||
constructor(
|
||||
public hash: string,
|
||||
public hashFormat: string,
|
||||
) {}
|
||||
|
||||
abstract get downloadUrl(): Resource;
|
||||
}
|
||||
|
||||
export class UrlProvider extends Provider {
|
||||
export class UrlProvider {
|
||||
constructor(
|
||||
public hash: string,
|
||||
public hashFormat: string,
|
||||
private url: string,
|
||||
) {
|
||||
super(hash, hashFormat);
|
||||
}
|
||||
) {}
|
||||
|
||||
get downloadUrl(): Resource {
|
||||
return new Resource(this.url);
|
||||
|
@ -49,7 +38,7 @@ export class GitHubProvider extends UrlProvider {
|
|||
}
|
||||
}
|
||||
|
||||
export class CurseForgeProvider extends Provider {
|
||||
export class CurseForgeProvider extends UrlProvider {
|
||||
constructor(
|
||||
hash: string,
|
||||
hashFormat: string,
|
||||
|
@ -57,12 +46,10 @@ export class CurseForgeProvider extends Provider {
|
|||
public fileId: number,
|
||||
public projectId: number,
|
||||
) {
|
||||
super(hash, hashFormat);
|
||||
}
|
||||
|
||||
get downloadUrl(): Resource {
|
||||
return new Resource(
|
||||
`https://www.curseforge.com/api/v1/mods/${this.projectId}/files/${this.fileId}/download`,
|
||||
super(
|
||||
hash,
|
||||
hashFormat,
|
||||
`https://www.curseforge.com/api/v1/mods/${projectId}/files/${fileId}/download`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue