Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4

with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Install bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: bun install

- name: Install dependencies # (assuming your project has dependencies)
run: bun install # You can use npm/yarn/pnpm instead if you prefer
- name: Run linter
run: bun run lint

- name: Check for changes
id: verify-changed-files
Expand All @@ -45,4 +47,4 @@ jobs:
git config --local user.name "GitHub Action"
git add .
git commit -m "🔧 Auto-fix: ESLint formatting and fixes"
git push
git push
12 changes: 7 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,18 @@ on:
jobs:
test:
runs-on: ubuntu-latest
env:
THUMBNAIL_URL: ${{ vars.THUMBNAIL_URL }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies # (assuming your project has dependencies)
run: bun install # You can use npm/yarn/pnpm instead if you prefer

- name: Install dependencies
run: bun install

- name: Run tests
run: bun run test
run: bun test
2 changes: 1 addition & 1 deletion apps/backend/src/lib/initializeSwagger.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe('initializeSwagger', () => {
);

expect(SwaggerModule.setup).toHaveBeenCalledWith(
'api/doc',
'docs',
app,
expect.any(Object),
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
'use client';

import {
FeaturedSongsDtoType,
SongPreviewDtoType,
TimespanType,
} from '@nbw/database';
import { TIMESPANS } from '@nbw/config';
import { type FeaturedSongsDto, type SongPreviewDto } from '@nbw/database';
import { createContext, useContext, useEffect, useState } from 'react';
type TimespanType = (typeof TIMESPANS)[number];

type FeaturedSongsContextType = {
featuredSongsPage: SongPreviewDtoType[];
featuredSongsPage: SongPreviewDto[];
timespan: TimespanType;
setTimespan: (timespan: TimespanType) => void;
timespanEmpty: Record<string, boolean>;
Expand All @@ -23,14 +21,14 @@ export function FeaturedSongsProvider({
initialFeaturedSongs,
}: {
children: React.ReactNode;
initialFeaturedSongs: FeaturedSongsDtoType;
initialFeaturedSongs: FeaturedSongsDto;
}) {
// Featured songs
const [featuredSongs] = useState<FeaturedSongsDtoType>(initialFeaturedSongs);
const [featuredSongs] = useState<FeaturedSongsDto>(initialFeaturedSongs);

const [featuredSongsPage, setFeaturedSongsPage] = useState<
SongPreviewDtoType[]
>(initialFeaturedSongs.week);
const [featuredSongsPage, setFeaturedSongsPage] = useState<SongPreviewDto[]>(
initialFeaturedSongs.week,
);

const [timespan, setTimespan] = useState<TimespanType>('week');

Expand All @@ -43,7 +41,6 @@ export function FeaturedSongsProvider({
);

useEffect(() => {
// eslint-disable-next-line react-hooks/exhaustive-deps
setFeaturedSongsPage(featuredSongs[timespan]);
}, [featuredSongs, timespan]);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
const DetectAdBlock = () => {
return (
<>
{/* eslint-disable-next-line @next/next/no-sync-scripts */}
<script src='/adasync.js' />
<script
id='detect-ad-block'
Expand Down
23 changes: 17 additions & 6 deletions bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
"@encode42/nbs.js": "^5.0.2",
"@nbw/database": "workspace:*",
"@timohausmann/quadtree-ts": "^2.2.2",
"jszip": "^3.10.1",
"unidecode": "^1.1.0",
},
"devDependencies": {
Expand Down Expand Up @@ -1758,6 +1759,8 @@

"ignore": ["[email protected]", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],

"immediate": ["[email protected]", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="],

"import-fresh": ["[email protected]", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],

"import-local": ["[email protected]", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="],
Expand Down Expand Up @@ -1982,6 +1985,8 @@

"jsx-ast-utils": ["[email protected]", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="],

"jszip": ["[email protected]", "", { "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "setimmediate": "^1.0.5" } }, "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g=="],

"juice": ["[email protected]", "", { "dependencies": { "cheerio": "1.0.0-rc.12", "commander": "^6.1.0", "mensch": "^0.3.4", "slick": "^1.12.2", "web-resource-inliner": "^6.0.1" }, "bin": { "juice": "bin/juice" } }, "sha512-ZhJT1soxJCkOiO55/mz8yeBKTAJhRzX9WBO+16ZTqNTONnnVlUPyVBIzQ7lDRjaBdTbid+bAnyIon/GM3yp4cA=="],

"jwa": ["[email protected]", "", { "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="],
Expand Down Expand Up @@ -2014,6 +2019,8 @@

"libqp": ["[email protected]", "", {}, "sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow=="],

"lie": ["[email protected]", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ=="],

"lilconfig": ["[email protected]", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="],

"lines-and-columns": ["[email protected]", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="],
Expand Down Expand Up @@ -2376,6 +2383,8 @@

"package-json-from-dist": ["[email protected]", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],

"pako": ["[email protected]", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="],

"param-case": ["[email protected]", "", { "dependencies": { "no-case": "^2.2.0" } }, "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w=="],

"parent-module": ["[email protected]", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
Expand Down Expand Up @@ -2656,6 +2665,8 @@

"set-proto": ["[email protected]", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="],

"setimmediate": ["[email protected]", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="],

"setprototypeof": ["[email protected]", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],

"sharp": ["[email protected]", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="],
Expand Down Expand Up @@ -3122,13 +3133,13 @@

"@nbw/backend/@types/bun": ["@types/[email protected]", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="],

"@nbw/config/@types/bun": ["@types/[email protected].20", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="],
"@nbw/config/@types/bun": ["@types/[email protected].22", "", { "dependencies": { "bun-types": "1.2.22" } }, "sha512-5A/KrKos2ZcN0c6ljRSOa1fYIyCKhZfIVYeuyb4snnvomnpFqC0tTsEkdqNxbAgExV384OETQ//WAjl3XbYqQA=="],

"@nbw/database/@types/bun": ["@types/[email protected].20", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="],
"@nbw/database/@types/bun": ["@types/[email protected].22", "", { "dependencies": { "bun-types": "1.2.22" } }, "sha512-5A/KrKos2ZcN0c6ljRSOa1fYIyCKhZfIVYeuyb4snnvomnpFqC0tTsEkdqNxbAgExV384OETQ//WAjl3XbYqQA=="],

"@nbw/frontend/eslint-plugin-mdx": ["[email protected]", "", { "dependencies": { "eslint-mdx": "^3.1.5", "eslint-plugin-markdown": "^3.0.1", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "tslib": "^2.6.2", "unified": "^11.0.4", "vfile": "^6.0.1" }, "peerDependencies": { "eslint": ">=8.0.0" } }, "sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg=="],

"@nbw/song/@types/bun": ["@types/[email protected].20", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="],
"@nbw/song/@types/bun": ["@types/[email protected].22", "", { "dependencies": { "bun-types": "1.2.22" } }, "sha512-5A/KrKos2ZcN0c6ljRSOa1fYIyCKhZfIVYeuyb4snnvomnpFqC0tTsEkdqNxbAgExV384OETQ//WAjl3XbYqQA=="],

"@nbw/sounds/@types/bun": ["@types/[email protected]", "", { "dependencies": { "bun-types": "1.2.20" } }, "sha512-dX3RGzQ8+KgmMw7CsW4xT5ITBSCrSbfHc36SNT31EOUg/LA9JWq0VDdEXDRSe1InVWpd2yLUM1FUF/kEOyTzYA=="],

Expand Down Expand Up @@ -3976,13 +3987,13 @@

"@nbw/backend/@types/bun/bun-types": ["[email protected]", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="],

"@nbw/config/@types/bun/bun-types": ["[email protected].20", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="],
"@nbw/config/@types/bun/bun-types": ["[email protected].22", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-hwaAu8tct/Zn6Zft4U9BsZcXkYomzpHJX28ofvx7k0Zz2HNz54n1n+tDgxoWFGB4PcFvJXJQloPhaV2eP3Q6EA=="],

"@nbw/database/@types/bun/bun-types": ["[email protected].20", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="],
"@nbw/database/@types/bun/bun-types": ["[email protected].22", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-hwaAu8tct/Zn6Zft4U9BsZcXkYomzpHJX28ofvx7k0Zz2HNz54n1n+tDgxoWFGB4PcFvJXJQloPhaV2eP3Q6EA=="],

"@nbw/frontend/eslint-plugin-mdx/eslint-mdx": ["[email protected]", "", { "dependencies": { "acorn": "^8.11.3", "acorn-jsx": "^5.3.2", "espree": "^9.6.1", "estree-util-visit": "^2.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "synckit": "^0.9.0", "tslib": "^2.6.2", "unified": "^11.0.4", "unified-engine": "^11.2.0", "unist-util-visit": "^5.0.0", "uvu": "^0.5.6", "vfile": "^6.0.1" }, "peerDependencies": { "eslint": ">=8.0.0" } }, "sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q=="],

"@nbw/song/@types/bun/bun-types": ["[email protected].20", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="],
"@nbw/song/@types/bun/bun-types": ["[email protected].22", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-hwaAu8tct/Zn6Zft4U9BsZcXkYomzpHJX28ofvx7k0Zz2HNz54n1n+tDgxoWFGB4PcFvJXJQloPhaV2eP3Q6EA=="],

"@nbw/sounds/@types/bun/bun-types": ["[email protected]", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="],

Expand Down
35 changes: 16 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
"import": "./apps/frontend/dist/index.js",
"types": "./apps/frontend/dist/index.d.ts"
},
"./configs": {
"import": "./packages/configs/dist/index.js",
"types": "./packages/configs/dist/index.d.ts"
},
"./database": {
"import": "./packages/database/dist/index.js",
"types": "./packages/database/dist/index.d.ts"
Expand All @@ -36,27 +40,20 @@
}
},
"scripts": {
"postinstall": "bun run build:packages",
"build:packages": "bun run ./scripts/build.ts",
"dev:docker": "docker-compose -f docker-compose-dev.yml up -d && bun run dev && docker-compose down",
"build:server": "bun run build:data && cd apps/backend && bun run build",
"build:web": "cd ./apps/frontend && bun run build",
"start:server": "cd ./apps/backend && bun run start",
"start:server:prod": "cd ./apps/backend && bun run start",
"start:web:prod": "cd ./apps/frontend && bun run start",
"dev": "concurrently --success first -n \"server,web\" --prefix-colors \"cyan,magenta\" --prefix \"{name} {time}\" \"cd ./apps/backend && bun run start:dev\" \"cd ./apps/frontend && bun run start\"",
"dev:server": "cd ./apps/backend && bun run start:dev",
"dev:web": "cd ./apps/frontend && bun run start",
"lint": "eslint \"**/*.{ts,tsx}\" --fix --max-warnings 20",
"lint:server": "cd ./apps/backend && eslint \"src/**/*.ts\" --ignore-pattern \"**/*.spec.ts\" --ignore-pattern \"**/*.test.ts\" --fix --max-warnings 10",
"lint:web": "cd ./apps/frontend && eslint \"src/**/*.{ts,tsx}\" --fix --max-warnings 10",
"lint:packages": "cd ./packages/configs && eslint \"src/**/*.ts\" --fix && cd ../database && eslint \"src/**/*.ts\" --fix && cd ../song && eslint \"src/**/*.ts\" --fix && cd ../sounds && eslint \"src/**/*.ts\" --fix && cd ../thumbnail && eslint \"src/**/*.ts\" --fix",
"lint:database": "cd ./packages/database && bun run lint",
"lint:song": "cd ./packages/song && bun run lint",
"lint:sounds": "cd ./packages/sounds && bun run lint",
"lint:thumbnail": "cd ./packages/thumbnail && bun run lint",
"lint:components": "cd ./packages/components && bun run lint",
"test": "cd ./apps/backend && bun test",
"build:server": "bun run build:data && bun run --filter '@nbw/backend' build",
"build:web": "bun run --filter '@nbw/frontend' build",
"start:server": "bun run --filter '@nbw/backend' start",
"start:server:prod": "bun run --filter '@nbw/backend' start",
"start:web:prod": "bun run --filter '@nbw/frontend' start",
"dev": "concurrently --success first -n \"server,web\" --prefix-colors \"cyan,magenta\" --prefix \"{name} {time}\" \"bun run --filter '@nbw/backend' start:dev\" \"bun run --filter '@nbw/frontend' start\"",
"dev:server": "bun run --filter '@nbw/backend' start:dev",
"dev:web": "bun run --filter '@nbw/frontend' start",
"lint": "eslint \"**/*.{ts,tsx}\" --fix",
"cy:open": "bun run test:cy",
"test:cy": "cd ./tests && bun run cy:open",
"test:cy": "bun run --filter 'tests' cy:open",
"prettier": "prettier --write ."
},
"keywords": [],
Expand Down
29 changes: 0 additions & 29 deletions packages/database/bun.lock

This file was deleted.

29 changes: 0 additions & 29 deletions packages/song/bun.lock

This file was deleted.

5 changes: 3 additions & 2 deletions packages/song/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@
},
"dependencies": {
"@encode42/nbs.js": "^5.0.2",
"unidecode": "^1.1.0",
"@nbw/database": "workspace:*",
"@timohausmann/quadtree-ts": "^2.2.2",
"@nbw/database": "workspace:*"
"jszip": "^3.10.1",
"unidecode": "^1.1.0"
},
"peerDependencies": {
"typescript": "^5"
Expand Down
Loading