Files
create-glstack/template/devenv.nix
Gregor Lohaus 7923514c5c
All checks were successful
Publish npm package / publish (push) Successful in 19s
no js dev process for web frontend none
2026-05-24 16:26:36 +02:00

61 lines
1.4 KiB
Nix

{ pkgs, lib, config, inputs, ... }:
{
packages = [
pkgs.bun
pkgs.nodejs_24
pkgs.watchexec
pkgs.sqlc
pkgs.dbmate
pkgs.air
pkgs.buf
pkgs.protoc-gen-go
pkgs.protoc-gen-connect-go
pkgs.protoc-gen-es
pkgs.cobra-cli
];
languages.go.enable = true;
languages.typescript.enable = true;
services.postgres = {
enable = true;
listen_addresses = "127.0.0.1";
initialDatabases = [
{
name = "<@var(context.project.name)>";
user = "pp";
pass = "<@var(context.project.name)>";
}
];
};
processes = {
air = {
exec = "air";
cwd = "./services/api";
after = ["devenv:processes:postgres"];
};
protowatcher = {
exec = "watchexec -r -e proto buf generate";
cwd = "./packages/proto";
after= ["devenv:processes:air@started"];
};
protojswatcher = {
exec = "watchexec -e js,ts -w ./packages/rpc/src -r bun run ./scripts/gen-rpc-index.ts";
cwd = "./";
after= ["devenv:processes:protowatcher@started"];
};
sqlwatcher = {
exec = "watchexec -w ./db/migrations -w ./db/query -r -e sql sqlc generate";
cwd = "./services/api";
after= ["devenv:processes:air@started"];
};
<@if(neq(context.project.frontend,"none"))>
bundev = {
exec = "bun dev";
cwd = "./apps/web";
after= ["devenv:processes:air@started"];
};
<@endif>
};
}