Compare commits

..

2 Commits

Author SHA1 Message Date
Olivier 'reivilibre
92b00934a2 Replace config: use Valibot and allow multiple forges of one type
Signed-off-by: Olivier 'reivilibre <git.contact@librepush.net>
2025-09-30 22:44:57 +01:00
Olivier 'reivilibre
bff741c7df Disable 'noNonNullAssertion' lint
Signed-off-by: Olivier 'reivilibre <git.contact@librepush.net>
2025-09-30 22:44:57 +01:00
6 changed files with 10 additions and 7 deletions

View File

@ -16,7 +16,10 @@
"enabled": true,
"includes": ["src/**", "!src/types/openapi.d.ts"],
"rules": {
"recommended": true
"recommended": true,
"style": {
"noNonNullAssertion": "off"
}
}
},
"javascript": {

View File

@ -1,6 +1,6 @@
import { ConfigSchema, CONFIG_SCHEMA_KEYS, type Config } from "./schema";
import { transformEnvToConfig } from "./transformer";
import * as v from "valibot";
import { CONFIG_SCHEMA_KEYS, type Config, ConfigSchema } from "./schema";
import { transformEnvToConfig } from "./transformer";
function createConfig(): Config {
const rawConfig = transformEnvToConfig(

View File

@ -26,7 +26,7 @@ export function transformEnvToConfig<Keys extends string[]>(
// descend into the deeper layers
// (following keyPath)
let current: Record<string, unknown> = config;
for (let part of keyPathParts.slice(0, -1)) {
for (const part of keyPathParts.slice(0, -1)) {
if (!(part in current)) {
current[part] = {};
}

View File

@ -18,7 +18,7 @@ authRouter.get("/login/:forgeId", (req: Request, res: Response) => {
}
const forgeId = parseInt(forgeIdParam, 10);
if (isNaN(forgeId)) {
if (Number.isNaN(forgeId)) {
res.status(400).json({ error: "Invalid forgeId" });
return;
}

View File

@ -1,8 +1,8 @@
import express from "express";
import session from "express-session";
import { createOpenAPIBackend, createOpenAPIMiddleware } from "./api/openapi";
import { connectDB } from "./config/db";
import { config } from "./config";
import { connectDB } from "./config/db";
import authRouter from "./routes/auth";
import { seedForges } from "./util/seedforges";

View File

@ -1,9 +1,9 @@
import * as arctic from "arctic";
import type { ForgeInstanceConfig } from "../../config/schema";
import type { Forge } from "../../types/forge";
import type { ForgeUser } from "../../types/forgeuser";
import type { GiteaRepo } from "../../types/gitearepo";
import type { Repository } from "../../types/openapi";
import { ForgeInstanceConfig } from "../../config/schema";
export class GiteaForge implements Forge {
private gitea: arctic.Gitea;
private forgeId: number;