added env vars types and start scripts
This commit is contained in:
parent
43ff5d416a
commit
b88f5bf2e4
@ -1,3 +1,3 @@
|
||||
# .env.development
|
||||
API_URI="http://192.168.1.28:8000/graphql"
|
||||
DEV_USER_ID=1
|
||||
EXPO_PUBLIC_API_URI="http://192.168.1.28:8000/graphql"
|
||||
EXPO_PUBLIC_DEV_USER_ID=1
|
||||
|
@ -1,2 +1,2 @@
|
||||
# .env.production
|
||||
API_URI=https://api-dev.railbird.ai/graphql
|
||||
EXPO_PUBLIC_API_URI=https://api-dev.railbird.ai/graphql
|
||||
|
11
App.tsx
11
App.tsx
@ -1,15 +1,18 @@
|
||||
import { DEV_USER_ID } from "@env";
|
||||
import React from "react";
|
||||
import { ClientProvider, useAuthHeader } from "./graphql/client";
|
||||
import AppNavigator from "./navigation/app-navigator";
|
||||
|
||||
import { devUserId } from "./config";
|
||||
|
||||
const SetAuthHeaderBasedOnEnv = () => {
|
||||
const { setAuthHeader } = useAuthHeader();
|
||||
|
||||
React.useEffect(() => {
|
||||
if (DEV_USER_ID) {
|
||||
console.log("Setting fake authorization user to: ", DEV_USER_ID);
|
||||
setAuthHeader({ key: "user_id", value: DEV_USER_ID });
|
||||
if (devUserId) {
|
||||
console.log("Setting fake authorization user to: ", devUserId);
|
||||
setAuthHeader({ key: "user_id", value: devUserId });
|
||||
} else {
|
||||
console.log("Production auth.");
|
||||
}
|
||||
}, [setAuthHeader]);
|
||||
|
||||
|
21
config.ts
Normal file
21
config.ts
Normal file
@ -0,0 +1,21 @@
|
||||
const warnEnv = [
|
||||
'EXPO_PUBLIC_API_URI'
|
||||
];
|
||||
|
||||
const errMsg =
|
||||
'does not exist in the environment.';
|
||||
|
||||
const missingEnv: string[] = [];
|
||||
|
||||
for (const key of warnEnv) {
|
||||
if (!process.env[key]) {
|
||||
missingEnv.push(key);
|
||||
}
|
||||
}
|
||||
|
||||
if (missingEnv.length > 0) {
|
||||
throw new Error(`${missingEnv.join(', ')} ${errMsg}`);
|
||||
}
|
||||
|
||||
export const apiUrl = process.env.EXPO_PUBLIC_API_URI;
|
||||
export const devUserId = process.env.EXPO_PUBLIC_DEV_USER_ID ?? false;
|
11
env.d.tsx
11
env.d.tsx
@ -1,4 +1,7 @@
|
||||
declare module "@env" {
|
||||
export const API_URI: string;
|
||||
export const DEV_USER_ID: string;
|
||||
}
|
||||
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
|
||||
declare namespace NodeJS {
|
||||
interface ProcessEnv {
|
||||
EXPO_PUBLIC_API_URI: string;
|
||||
EXPO_PUBLIC_DEV_USER_ID?: string;
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@ import {
|
||||
InMemoryCache,
|
||||
from,
|
||||
} from "@apollo/client";
|
||||
import { API_URI } from "@env";
|
||||
|
||||
import React, {
|
||||
ReactNode,
|
||||
createContext,
|
||||
@ -15,6 +15,8 @@ import React, {
|
||||
useState,
|
||||
} from "react";
|
||||
|
||||
import { apiUrl } from '../config'
|
||||
|
||||
type Props = {
|
||||
children: ReactNode;
|
||||
};
|
||||
@ -40,9 +42,9 @@ export const useAuthHeader = () => {
|
||||
|
||||
export const ClientProvider: React.FC<Props> = ({ children }) => {
|
||||
const [authHeader, setAuthHeader] = useState({ key: "", value: "" });
|
||||
console.log(`The api uri is ${API_URI}`);
|
||||
console.log(`The api uri is ${apiUrl}`);
|
||||
const httpLink = new HttpLink({
|
||||
uri: API_URI,
|
||||
uri: apiUrl,
|
||||
});
|
||||
const cache = new InMemoryCache({});
|
||||
|
||||
|
@ -7,6 +7,8 @@
|
||||
"start:android": "expo start --android",
|
||||
"start:ios": "expo start --ios",
|
||||
"android": "expo run:android",
|
||||
"android:dev": "NODE_ENV=development expo run:android",
|
||||
"android:prod": "NODE_ENV=production expo run:android",
|
||||
"ios": "expo run:ios",
|
||||
"web": "expo start --web",
|
||||
"lint": "eslint . --ext .js,.ts,.tsx",
|
||||
|
@ -9658,9 +9658,9 @@ queue@6.0.2:
|
||||
dependencies:
|
||||
inherits "~2.0.3"
|
||||
|
||||
"railbird-gql@git+https://dev.railbird.ai/railbird/railbird-gql.git#db82f66c5d3600d90f09c813f71287e176dc078b":
|
||||
"railbird-gql@git+https://dev.railbird.ai/railbird/railbird-gql.git#838304efdd49a093bd8f9cea6cd6ef9e306d888a":
|
||||
version "1.0.0"
|
||||
resolved "git+https://dev.railbird.ai/railbird/railbird-gql.git#db82f66c5d3600d90f09c813f71287e176dc078b"
|
||||
resolved "git+https://dev.railbird.ai/railbird/railbird-gql.git#838304efdd49a093bd8f9cea6cd6ef9e306d888a"
|
||||
dependencies:
|
||||
"@apollo/client" "^3.9.2"
|
||||
"@graphql-codegen/cli" "^5.0.0"
|
||||
|
Loading…
Reference in New Issue
Block a user