Skip to content

Commit ec038b1

Browse files
committed
refactor: Move clientDb to context c.get('db')
1 parent 4695bdc commit ec038b1

File tree

32 files changed

+224
-141
lines changed

32 files changed

+224
-141
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ jobs:
5959
- name: Install dependencies
6060
run: pnpm install --frozen-lockfile
6161

62+
- name: Build scripts
63+
run: pnpm run build:scripts
64+
6265
- name: Run script to bump version & copy files
6366
run: pnpm run release
6467
id: version-bump

apps/web/drizzle.config.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
import { POSTGRES_ENVS } from '@/database/client';
21
import { defineConfig } from 'drizzle-kit';
32

4-
const { url, ...rest } = POSTGRES_ENVS;
3+
import { POSTGRES_URL } from './src/vitnode.api.config';
54

65
export default defineConfig({
76
out: './src/database/migrations/',
87
// schema: ['./src/plugins/**/database/schema/*'],
98
schema: ['./src/database/schema/*'],
109
dialect: 'postgresql',
11-
dbCredentials: process.env.POSTGRES_URL
12-
? {
13-
url,
14-
}
15-
: rest,
10+
dbCredentials: {
11+
url: POSTGRES_URL,
12+
},
1613
});

apps/web/src/app/[locale]/(main)/(plugins)/(vitnode-blog)/blog/page.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import { Link } from '@vitnode/core/lib/navigation';
2+
13
import { Test } from '@vitnode/blog/views/test';
24
import { TestClient } from '@vitnode/blog/views/test/client';
3-
import { Link } from '@vitnode/core/lib/navigation';
45

56
export default function Page() {
67
return (

apps/web/src/app/[locale]/(main)/(plugins)/(vitnode-core)/login/page.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import type { Metadata } from 'next/dist/types';
22

3-
import { SignInView } from '@vitnode/core/views/auth/sign-in/sign-in-view';
43
import { getTranslations } from 'next-intl/server';
54

5+
import { SignInView } from '@vitnode/core/views/auth/sign-in/sign-in-view';
6+
67
export const generateMetadata = async ({
78
locale,
89
}: {

apps/web/src/app/[locale]/(main)/(plugins)/(vitnode-core)/register/page.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import type { Metadata } from 'next/dist/types';
22

3-
import { SignUpView } from '@vitnode/core/views/auth/sign-up/sign-up-view';
43
import { getTranslations } from 'next-intl/server';
54

5+
import { SignUpView } from '@vitnode/core/views/auth/sign-up/sign-up-view';
6+
67
export const generateMetadata = async ({
78
locale,
89
}: {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { DashboardAdminView } from '@vitnode/core/views/admin/views/core/dashboard/dashboard-admin-view';
2+
3+
export default function Page() {
4+
return <DashboardAdminView />;
5+
}

apps/web/src/database/client.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.

apps/web/src/vitnode.api.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,25 @@ import { DiscordSSOApiPlugin } from '@vitnode/core/api/plugins/sso/discord';
44
import { FacebookSSOApiPlugin } from '@vitnode/core/api/plugins/sso/facebook';
55
import { GoogleSSOApiPlugin } from '@vitnode/core/api/plugins/sso/google';
66
import { buildApiConfig } from '@vitnode/core/vitnode.config';
7+
import { drizzle } from 'drizzle-orm/postgres-js';
8+
9+
// import * as dotenv from 'dotenv';
10+
// import { drizzle } from 'drizzle-orm/postgres-js';
11+
// import { join } from 'path';
12+
13+
// dotenv.config({
14+
// path: join(process.cwd(), '..', '..', '.env'),
15+
// });
16+
17+
export const POSTGRES_URL =
18+
process.env.POSTGRES_URL ?? 'postgresql://root:root@localhost:5432/vitnode';
719

820
export const vitNodeApiConfig = buildApiConfig({
921
plugins: [blogApiPlugin()],
22+
dbProvider: drizzle({
23+
connection: POSTGRES_URL,
24+
casing: 'camelCase',
25+
}),
1026
emailProvider: NodemailerEmailPlugin({
1127
from: process.env.NODE_MAILER_FROM,
1228
host: process.env.NODE_MAILER_HOST,
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# (VitNode) Create App
2+
3+
This package is a CLI tool to create a new VitNode app quickly.
4+
5+
Script based on [Create Next App](https://nextjs.org/).
6+
7+
<p align="center">
8+
<br>
9+
<a href="https://vitnode.com/" target="_blank">
10+
<picture>
11+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/VitNode/vitnode/canary/assets/logo/vitnode_logo_dark.svg">
12+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/VitNode/vitnode/canary/assets/logo/vitnode_logo_light.svg">
13+
<img alt="VitNode Logo" src="https://raw.githubusercontent.com/VitNode/vitnode/canary/assets/logo/vitnode_logo_light.svg" width="400">
14+
</picture>
15+
</a>
16+
<br>
17+
<br>
18+
</p>
19+
20+
## Usage
21+
22+
```bash
23+
npx create-vitnode-app@latest
24+
```
25+
26+
or
27+
28+
```bash
29+
pnpm create vitnode-app@latest
30+
```
31+
32+
## Options
33+
34+
| Option | Description |
35+
| ------------------- | ---------------------------------------------------------- |
36+
| `--package-manager` | Specify the package manager to use. Support `npm`, `pnpm`. |
37+
| `--eslint` | Initialize with eslint config. |
38+
| `--skip-install` | Skip installing packages after initializing the project. |

packages/vitnode/scripts/prepare-database.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
11
/* eslint-disable no-console */
22

3-
import { dbClient } from '@/database/client.js';
43
import { core_admin_permissions } from '@/database/schema/admins.js';
54
import {
65
core_languages,
76
core_languages_words,
87
} from '@/database/schema/languages.js';
98
import { core_moderators_permissions } from '@/database/schema/moderators.js';
109
import { core_roles } from '@/database/schema/roles.js';
10+
import * as dotenv from 'dotenv';
1111
import { count } from 'drizzle-orm';
12+
import { drizzle } from 'drizzle-orm/postgres-js';
13+
import { join } from 'path';
1214

1315
import { runInteractiveShellCommand } from './run-interactive-shell-command.js';
1416

17+
dotenv.config({
18+
path: join(process.cwd(), '..', '..', '.env'),
19+
});
20+
21+
console.log(join(process.cwd(), '..', '..', '.env'));
22+
23+
const dbClient = drizzle({
24+
connection:
25+
process.env.POSTGRES_URL ?? 'postgresql://root:root@localhost:5432/vitnode',
26+
casing: 'camelCase',
27+
});
28+
1529
export const generateDatabaseMigrations = async () => {
1630
try {
1731
await runInteractiveShellCommand('npm', ['run', 'drizzle-kit', 'up']);

0 commit comments

Comments
 (0)