From a9416968ed1823eccbaf919e8ca75bab86f4d151 Mon Sep 17 00:00:00 2001 From: jaybuidl Date: Wed, 18 Sep 2024 13:36:33 +0100 Subject: [PATCH] fix: env file management for parcel --- .env.dist | 6 ------ veascan-web/.env.devnet.example | 6 ++++++ veascan-web/codegen.ts | 4 ++-- veascan-web/package.json | 18 +++++++++++----- veascan-web/scripts/runEnv.sh | 37 +++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 13 deletions(-) delete mode 100644 .env.dist create mode 100644 veascan-web/.env.devnet.example create mode 100755 veascan-web/scripts/runEnv.sh diff --git a/.env.dist b/.env.dist deleted file mode 100644 index 843636d5..00000000 --- a/.env.dist +++ /dev/null @@ -1,6 +0,0 @@ -# Subgraph endpoints for veascan, Example: "85918/vea-inbox-arb-sepolia-devnet/version/latest" -VEASCAN_INBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH=11111/your-subgraph/version/your-version -VEASCAN_OUTBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH=11111/your-subgraph/version/your-version - -VEASCAN_INBOX_ARBSEPOLIA_TO_CHIADO_SUBGRAPH=11111/your-subgraph/version/your-version -VEASCAN_OUTBOX_ARBSEPOLIA_TO_CHIADO_SUBGRAPH=11111/your-subgraph/version/your-version \ No newline at end of file diff --git a/veascan-web/.env.devnet.example b/veascan-web/.env.devnet.example new file mode 100644 index 00000000..17568f15 --- /dev/null +++ b/veascan-web/.env.devnet.example @@ -0,0 +1,6 @@ +# Subgraph endpoints for veascan, Example: "85918/vea-inbox-arb-sepolia-devnet/version/latest" +export VEASCAN_INBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH=11111/your-subgraph/version/your-version +export VEASCAN_OUTBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH=11111/your-subgraph/version/your-version + +export VEASCAN_INBOX_ARBSEPOLIA_TO_CHIADO_SUBGRAPH=11111/your-subgraph/version/your-version +export VEASCAN_OUTBOX_ARBSEPOLIA_TO_CHIADO_SUBGRAPH=11111/your-subgraph/version/your-version \ No newline at end of file diff --git a/veascan-web/codegen.ts b/veascan-web/codegen.ts index 0a48417a..3add9f74 100644 --- a/veascan-web/codegen.ts +++ b/veascan-web/codegen.ts @@ -3,8 +3,8 @@ import type { CodegenConfig } from "@graphql-codegen/cli"; const config: CodegenConfig = { overwrite: true, schema: [ - "https://api.studio.thegraph.com/query/67213/veascan-inbox-arb-sep-devnet/version/latest", - "https://api.studio.thegraph.com/query/67213/veascan-outbox-arb-sep-devnet/version/latest", + `https://api.studio.thegraph.com/query/${process.env.VEASCAN_INBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH}`, + `https://api.studio.thegraph.com/query/${process.env.VEASCAN_OUTBOX_ARBSEPOLIA_TO_SEPOLIA_SUBGRAPH}`, ], documents: "src/hooks/queries/*.ts", generates: { diff --git a/veascan-web/package.json b/veascan-web/package.json index 410e2d1d..260c1fe3 100644 --- a/veascan-web/package.json +++ b/veascan-web/package.json @@ -31,13 +31,21 @@ "queries": "./src/hooks/queries" }, "scripts": { - "clear": "rm -r .parcel-cache", - "clean": "rm dist/bundle.js", - "start": "parcel", - "build": "parcel build", + "clean": "rm -rf dist/bundle.js .parcel-cache", + "start": "yarn start-devnet", + "start-devnet": "scripts/runEnv.sh devnet 'yarn parcel'", + "start-testnet": "scripts/runEnv.sh testnet 'yarn parcel'", + "start-mainnet": "scripts/runEnv.sh mainnet 'yarn parcel'", + "build": "yarn build-devnet", + "build-devnet": "scripts/runEnv.sh devnet 'yarn parcel build'", + "build-testnet": "scripts/runEnv.sh testnet 'yarn parcel build'", + "build-mainnet": "scripts/runEnv.sh mainnet 'yarn parcel build'", "check-style": "eslint 'src/**/*.{js,jsx,ts,tsx}'", "check-types": "tsc --noEmit", - "generate": "graphql-codegen --config codegen.ts", + "generate": "yarn generate-devnet", + "generate-devnet": "scripts/runEnv.sh devnet 'yarn codegen'", + "generate-testnet": "scripts/runEnv.sh testnet 'yarn codegen'", + "generate-mainnet": "scripts/runEnv.sh mainnet 'yarn codegen'", "codegen": "graphql-codegen --config codegen.ts" }, "devDependencies": { diff --git a/veascan-web/scripts/runEnv.sh b/veascan-web/scripts/runEnv.sh new file mode 100755 index 00000000..0e88f13d --- /dev/null +++ b/veascan-web/scripts/runEnv.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +RED='\033[0;31m' +GREEN='\033[0;32m' +NC='\033[0m' + +deployment="$1" +shift +commands="$@" + +if [[ -z "$deployment" ]]; then + echo "usage: $(basename $0) " + exit 1 +fi + +valid_deployments=("local" "devnet" "testnet" "mainnet") +if [[ ! " ${valid_deployments[@]} " =~ " ${deployment} " ]]; then + echo "Invalid deployment option. Please choose either: ${valid_deployments[@]}." + exit 1 +fi + +function sourceEnvFile() { #envFile + envFile="$1" + if [ -f "$envFile" ]; then + echo -e "${GREEN}✔${NC} $(basename $envFile)" + . $envFile + else + echo -e "${RED}✖${NC} $(basename $envFile)" + fi +} + +envFile="$SCRIPT_DIR/../.env.${deployment}" +sourceEnvFile "$envFile" +sourceEnvFile "$envFile.public" + +(set -e; $commands)