-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(pkglist): add page containing the current package list
- Loading branch information
1 parent
f84d0b7
commit 51703f2
Showing
18 changed files
with
9,013 additions
and
7,768 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import { PkgListRetObject } from "@./shared-lib" | ||
import { CacheInterceptor } from "@nestjs/cache-manager" | ||
import { Controller, Get, UseInterceptors } from "@nestjs/common" | ||
import { MiscService } from "./misc.service" | ||
|
||
@Controller("misc") | ||
@UseInterceptors(CacheInterceptor) | ||
export class MiscController { | ||
constructor(private miscService: MiscService) {} | ||
|
||
@Get("pkglist") | ||
getPkgList(): Promise<PkgListRetObject> { | ||
return this.miscService.getPkgList() | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import { Module } from "@nestjs/common" | ||
import { MiscController } from "./misc.controller" | ||
import { MiscService } from "./misc.service" | ||
|
||
@Module({ | ||
controllers: [MiscController], | ||
providers: [MiscService], | ||
}) | ||
export class MiscModule { | ||
constructor() {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { CAUR_PKG_LIST_URL, PkgListRetObject } from "@./shared-lib" | ||
import { Injectable } from "@nestjs/common" | ||
import { Axios } from "axios" | ||
|
||
@Injectable() | ||
export class MiscService { | ||
/** | ||
* Return the list of packages from Chaotic-AUR, mainly just for CORS proxying and caching. | ||
*/ | ||
async getPkgList(): Promise<PkgListRetObject> { | ||
const axios = new Axios({ | ||
baseURL: "", | ||
timeout: 1000, | ||
}) | ||
return axios.get(CAUR_PKG_LIST_URL).then((response): PkgListRetObject => { | ||
return { pkglist: response.data } | ||
}) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import { MiscModule } from "./misc.module" | ||
|
||
describe("Metrics", () => { | ||
it("should be defined", () => { | ||
expect(new MiscModule()).toBeDefined() | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<div class="chaotic-container-regular"> | ||
<div class="chaotic-container-regular"> | ||
<h1 class="text-center text-4xl font-extrabold text-maroon">Package List</h1> | ||
<p class="my-4 px-10 text-center text-lg text-text"> | ||
This package shows all packages currently deployed in Chaotic-AUR and their corresponding package names. | ||
</p> | ||
<p class="my-4 px-10 text-center text-lg text-text"> | ||
Total packages: <a class="text-red">{{ packageList.length }}</a> | ||
</p> | ||
|
||
<ol class="relative pt-2.5"> | ||
<li class="mb-10"> | ||
@for (deployment of packageList; track deployment) { | ||
<li> | ||
<div | ||
class="items-center justify-between rounded-lg border border-mauve bg-surface0 p-4 shadow-sm sm:flex" | ||
> | ||
<div class="lex text-sm font-bold text-maroon"> | ||
<a>{{ deployment.name }}</a> | ||
</div> | ||
<a class="mb-1 text-xs font-normal text-text sm:order-last sm:mb-0"> | ||
{{ deployment.fullString }} | ||
</a> | ||
</div> | ||
</li> | ||
} | ||
</li> | ||
</ol> | ||
</div> | ||
</div> |
21 changes: 21 additions & 0 deletions
21
frontend/src/app/package-list/package-list.component.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import { ComponentFixture, TestBed } from "@angular/core/testing" | ||
import { PackageListComponent } from "./package-list.component" | ||
|
||
describe("PackageListComponent", () => { | ||
let component: PackageListComponent | ||
let fixture: ComponentFixture<PackageListComponent> | ||
|
||
beforeEach(async () => { | ||
await TestBed.configureTestingModule({ | ||
imports: [PackageListComponent], | ||
}).compileComponents() | ||
|
||
fixture = TestBed.createComponent(PackageListComponent) | ||
component = fixture.componentInstance | ||
fixture.detectChanges() | ||
}) | ||
|
||
it("should create", () => { | ||
expect(component).toBeTruthy() | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import { CAUR_BACKEND_URL, PkgList } from "@./shared-lib" | ||
import { CommonModule } from "@angular/common" | ||
import { HttpClient } from "@angular/common/http" | ||
import { Component } from "@angular/core" | ||
import { ReactiveFormsModule } from "@angular/forms" | ||
|
||
@Component({ | ||
selector: "app-package-list", | ||
standalone: true, | ||
imports: [CommonModule, ReactiveFormsModule], | ||
templateUrl: "./package-list.component.html", | ||
styleUrl: "./package-list.component.css", | ||
}) | ||
export class PackageListComponent { | ||
packageList: any[] = [] | ||
|
||
constructor(private httpClient: HttpClient) { | ||
this.getPkgList() | ||
} | ||
|
||
/** | ||
* Parse the package list from the CAUR_PKG_LIST_URL. The file parsed is dumped with | ||
* each database add event by the builder and is always up-to-date therefore. | ||
* We could probably make this an API call to the backend to get the list, but since we | ||
* already have the list, we can just do it like that. | ||
* I Might change this in the future if we want to show more / different information. | ||
* @param pkgList | ||
*/ | ||
parsePkgList = (pkgList: string): PkgList => { | ||
const pkgArray: PkgList = [] | ||
|
||
pkgList.split(/\n/g).forEach((pkg: string): void => { | ||
if (pkg === "" || pkg.includes("pkg.tar.zst.sig")) return | ||
|
||
// At the time of writing this, the following regex reliably caught the package name | ||
// this *might* change in the future depending on whether out of norm packages are added. | ||
const pkgname = pkg.split(/(-|-r|.r|-v)[0-9]/, 1)[0] | ||
|
||
pkgArray.push({ | ||
name: pkgname, | ||
fullString: pkg, | ||
}) | ||
}) | ||
|
||
return pkgArray | ||
} | ||
|
||
getPkgList = (): void => { | ||
this.httpClient.get(`${CAUR_BACKEND_URL}/misc/pkglist`).subscribe((res): void => { | ||
// @ts-ignore | ||
this.packageList = this.parsePkgList(res.pkglist) | ||
}) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.