-
Notifications
You must be signed in to change notification settings - Fork 0
/
devenv.nix
63 lines (54 loc) · 1.48 KB
/
devenv.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{ config, pkgs, lib, self, ... }:
let
inherit (pkgs.stdenv) system;
inherit (self.packages.${system}.kbf) nodejs pnpm;
in
{
dotenv.disableHint = true;
env = {
# Avoid infinite recursion with `scripts.dev`.
DEVENV_PROFILE = lib.mkForce "${config.env.DEVENV_DOTFILE}/profile";
# Dev database
PGDATABASE = "kbf_dev";
PGMAX = "25";
# Dev sessions
ADMIN_PASSWORD = "ppdemo123";
SESSION_SECRET = "672519e3-6ff7-4afc-bc01-55d80221074a";
};
packages = [
nodejs
pnpm
nodejs.pkgs.typescript-language-server
];
scripts = {
prettier.exec = ''
set -e
"$DEVENV_ROOT/node_modules/.bin/prettier" "$@"
'';
dev.exec = ''
set -e
exec "${config.procfileScript}" "$@"
'';
migrate.exec = ''
set -e
local-esbuild() {
"$DEVENV_ROOT/node_modules/.bin/esbuild" --platform=node --target=node20 "$@"
}
rm -rf .output/scripts
local-esbuild --bundle --outfile=.output/scripts/migrate.cjs src/db/migrate.tsx
local-esbuild --outdir=.output/scripts/migrations src/db/migrations/*
node .output/scripts/migrate.cjs
generate-db-types
'';
generate-db-types.exec = ''
set -e
pnpm exec kysely-codegen --dialect postgres --url "postgres://@/$PGDATABASE"
'';
};
processes.devserver.exec = "pnpm exec vinxi dev";
services.postgres = {
enable = true;
package = pkgs.postgresql_16;
initialDatabases = [{ name = config.env.PGDATABASE; }];
};
}