chefhai/.idx/dev.nix
2025-05-07 17:54:18 +00:00

48 lines
1.5 KiB
Nix

# To learn more about how to use Nix to configure your environment
# see: https://developers.google.com/idx/guides/customize-idx-env
{ pkgs, ... }: {
# Which nixpkgs channel to use.
channel = "stable-23.11"; # or "unstable"
# Use https://search.nixos.org/packages to find packages
packages = [ pkgs.nodejs_20 ];
# Sets environment variables in the workspace
env = { EXPO_USE_FAST_RESOLVER = 1; };
idx = {
# Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
extensions = [
"msjsdiag.vscode-react-native"
];
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
install =
"npm ci --prefer-offline --no-audit --no-progress --timing && npm i @expo/ngrok@^4.1.0";
};
# Runs when a workspace restarted
onStart = {
android = ''
echo -e "\033[1;33mWaiting for Android emulator to be ready...\033[0m"
# Wait for the device connection command to finish
adb -s emulator-5554 wait-for-device && \
npm run android -- --tunnel
'';
};
};
# Enable previews and customize configuration
previews = {
enable = true;
previews = {
web = {
command = [ "npm" "run" "web" "--" "--port" "$PORT" ];
manager = "web";
};
android = {
# noop
command = [ "tail" "-f" "/dev/null" ];
manager = "web";
};
};
};
};
}