Compare commits

...

6 commits

Author SHA1 Message Date
TSR Berry ad20ddea21
Update nix flake 2024-03-08 23:23:52 +01:00
TSR Berry 7f2d7bab00
Update no-unused-vars rule 2024-03-08 23:23:31 +01:00
TSR Berry 169a0a3bdc
Update scripts and dependencies 2024-03-08 23:22:19 +01:00
Mary Guillemard 8c3d5783c0 Switch to nix flakes
Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-01-01 15:42:36 +00:00
dependabot[bot] 56cfe2c055
Bump actions/setup-node from 3 to 4 (#44)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-01 16:37:44 +01:00
Mary Guillemard 0337d6eeee
Switch to NPM lock files and rewrite nixpkg (#53)
This prepare for flake rewrite

Signed-off-by: Mary Guillemard <mary@mary.zone>
2024-01-01 16:35:29 +01:00
14 changed files with 3340 additions and 2002 deletions

View file

@ -4,4 +4,18 @@ module.exports = {
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
root: true,
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "all",
"argsIgnorePattern": "^_",
"caughtErrors": "all",
"caughtErrorsIgnorePattern": "^_",
"destructuredArrayIgnorePattern": "^_",
"varsIgnorePattern": "^_",
"ignoreRestSiblings": true
}
]
}
};

View file

@ -15,17 +15,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
cache: "npm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
- name: Run ESLint
run: node_modules/.bin/eslint .
@ -35,17 +31,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
cache: "npm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
- name: Run Prettier
run: node_modules/.bin/prettier -c .
@ -55,17 +47,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
cache: "npm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
- name: Build package
run: pnpm build
run: npm run build

View file

@ -19,14 +19,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
cache: "npm"
- name: Configure git
run: |
@ -34,7 +30,7 @@ jobs:
git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
- name: Run ESLint
run: node_modules/.bin/eslint --fix .
@ -58,14 +54,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: latest
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "pnpm"
cache: "npm"
- name: Configure git
run: |
@ -73,7 +65,7 @@ jobs:
git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com
- name: Install dependencies
run: pnpm install --frozen-lockfile
run: npm ci
- name: Run Prettier
run: node_modules/.bin/prettier -w .

View file

@ -2,5 +2,5 @@ dist/
public/
*.js
.github/
pnpm-lock.yaml
package-lock.json
nodemon.json

View file

@ -3,7 +3,6 @@ FROM node:lts-hydrogen as common
ENV NPM_CONFIG_PREFIX=/home/node/.npm-global
ENV PATH=$PATH:/home/node/.npm-global/bin
RUN npm i -g pnpm
WORKDIR /home/node/app
@ -11,14 +10,14 @@ FROM common as build
COPY . /home/node/app
RUN pnpm install --frozen-lockfile
RUN pnpm build
RUN npm ci
RUN npm run build
FROM common as app
COPY --from=build --chown=node:node /home/node/app/dist /home/node/app/dist
COPY --from=build --chown=node:node /home/node/app/public /home/node/app/public
COPY --from=build --chown=node:node /home/node/app/package.json /home/node/app/pnpm-lock.yaml /home/node/app/
COPY --from=build --chown=node:node /home/node/app/package.json /home/node/app/package-lock.json /home/node/app/
COPY --from=build --chown=node:node /home/node/app/node_modules /home/node/app/node_modules
RUN mkdir /home/node/app/data

View file

@ -1,46 +1,4 @@
{ pkgs ? (import <nixpkgs> {})}:
with pkgs;
with (import (fetchFromGitHub {
owner = "TSRBerry";
repo = "pnpm2nix";
rev = "8df6e2a8bd0174f4e9fa858d37c08ff3e91019bc";
sha256 = "YhWzfuqNCZmKMbcoDoAT52KodjpuNj/7MklwKD0ojrg=";
}) { inherit pkgs; });
let
buildPackage = mkPnpmPackage {
src = nix-gitignore.gitignoreSource [] ./.;
linkDevDependencies = true;
postBuild = ''
cp -R "node_modules/$pname"/* ./
export PATH="node_modules/.bin:$PATH"
mkdir -p "$out/dist"
npm run build -- --outDir "$out/dist"
mv public package.json pnpm-lock.yaml "$out/"
'';
postInstall = ''
rm -rf "$out/bin" "$lib/node_modules/$pname"
'';
};
package = mkPnpmPackage {
src = buildPackage;
postInstall = ''
mv "$lib/node_modules/$pname/dist" "$lib/node_modules/$pname/public" "$lib/node_modules/$pname/package.json" "$out/"
rm -rf "$lib/node_modules/$pname"
ln -s "$lib/node_modules" "$out/node_modules"
ln -s "$npm_config_nodedir/bin/node" "$out/bin/node"
'';
};
in package
(import (fetchTarball
"https://github.com/edolstra/flake-compat/archive/master.tar.gz") {
src = builtins.fetchGit ./.;
}).defaultNix

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1709677081,
"narHash": "sha256-tix36Y7u0rkn6mTm0lA45b45oab2cFLqAzDbJxeXS+c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "880992dcc006a5e00dd0591446fdf723e6a51a64",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

45
flake.nix Normal file
View file

@ -0,0 +1,45 @@
{
inputs = {
flake-utils.url = "github:numtide/flake-utils";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
};
outputs = { self, nixpkgs, flake-utils }:
let
wesbite_overlay = final: prev: {
ryujinx-ldn-website = with final;
buildNpmPackage {
pname = "ryujinx-ldn-website";
version = "1.0.0";
src = ./.;
installPhase = ''
runHook preInstall
cp -r dist $out/
cp -r public package.json package-lock.json node_modules $out/
makeWrapper '${nodejs}/bin/node' "$out/bin/ryujinx-ldn-website" --add-flags "$out/index.js"
runHook postInstall
'';
npmDepsHash = "sha256-fqvUE5/M2VyIL5CyDEuUGye27e9fJJImMYL1wwZNFPg=";
};
};
in flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ self.overlays."${system}" ];
};
in {
packages = {
default = self.packages.${system}.ryujinx-ldn-website;
ryujinx-ldn-website = pkgs.ryujinx-ldn-website;
};
overlays = wesbite_overlay;
formatter = pkgs.nixfmt;
});
}

View file

@ -9,5 +9,5 @@
"views"
],
"ext": "ts,js,html,css,ejs,png",
"exec": "pnpm run dev"
"exec": "npm run dev"
}

3175
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -13,30 +13,30 @@
"format": "prettier -w .",
"lint": "eslint --fix .",
"build": "tsc",
"prestart": "pnpm build",
"prestart": "npm run build",
"start": "node .",
"dev": "pnpm build && pnpm start",
"dev": "npm run build && npm run start",
"serve": "nodemon",
"prepack": "pnpm build"
"prepack": "npm run build"
},
"dependencies": {
"ejs": "^3.1.9",
"express": "~4.18.2",
"express-actuator": "^1.8.4",
"redis": "^4.6.9",
"winston": "^3.10.0"
"redis": "^4.6.13",
"winston": "^3.12.0"
},
"devDependencies": {
"@tsconfig/recommended": "^1.0.3",
"@types/express": "^4.17.17",
"@types/express-actuator": "^1.8.0",
"@types/node": "^18.16.1",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"eslint": "^8.49.0",
"eslint-config-prettier": "^9.0.0",
"nodemon": "^3.0.1",
"prettier": "3.0.3",
"typescript": "^5.2.2"
"@typescript-eslint/eslint-plugin": "^7.1.0",
"@typescript-eslint/parser": "^7.1.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"nodemon": "^3.1.0",
"prettier": "3.2.5",
"typescript": "^5.4.0"
}
}

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@ import { redisClient } from "./app";
const router = Router();
router.get("/", async (req, res, next) => {
router.get("/", async (_req, res, _next) => {
if (!redisClient.isOpen) {
await redisClient.connect();
}
@ -17,7 +17,7 @@ router.get("/", async (req, res, next) => {
return res.send(result);
});
router.get("/public_games", async (req, res, next) => {
router.get("/public_games", async (req, res, _next) => {
let gameFilter = "";
if (req.query.titleid != null && (req.query.titleid as string)?.length > 0) {

View file

@ -2,7 +2,11 @@ import { Request, Response, NextFunction } from "express";
import { logger } from "./app";
import { loggerDefaultMetadata } from "./utils";
export function requestLogger(req: Request, res: Response, next: NextFunction) {
export function requestLogger(
req: Request,
_res: Response,
next: NextFunction
) {
logger.debug("Incoming request.", loggerDefaultMetadata(req));
next();
}
@ -10,7 +14,7 @@ export function requestLogger(req: Request, res: Response, next: NextFunction) {
export function errorLogger(
err: Error,
req: Request,
res: Response,
_res: Response,
next: NextFunction
) {
logger.error(err.message, {