diff --git a/configs/webpack/common.js b/configs/webpack/common.js index 1184eaa..7d22a4e 100644 --- a/configs/webpack/common.js +++ b/configs/webpack/common.js @@ -3,6 +3,7 @@ const { resolve } = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin"); +var webpack = require("webpack"); module.exports = { entry: "./index.tsx", @@ -49,5 +50,11 @@ module.exports = { new CopyWebpackPlugin({ patterns: [{ from: "public" }], }), + new webpack.DefinePlugin({ + // this way we will always have a fallback value + "process.env.API_MODE": JSON.stringify( + process.env.API_MODE ? process.env.API_MODE : "prod", + ), + }), ], }; diff --git a/package.json b/package.json index 06a0e83..b8c2342 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "build": "pnpm clean-dist && webpack --config=configs/webpack/prod.js", "clean-dist": "rimraf dist/*", "lint": "eslint \"./src/**/*.{js,ts,tsx}\" --quiet", + "lintOnlyChanges": "eslint $(git diff --name-only HEAD | grep -E '\\.(js|ts|tsx)$' | xargs)", "start": "pnpm start-dev", "start-dev": "webpack serve --config=configs/webpack/dev.js --host 0.0.0.0 --port 3000", "start-prod": "pnpm build && node express.js" diff --git a/src/api/JsonApi.ts b/src/api/JsonApi.ts index 605261d..b578120 100644 --- a/src/api/JsonApi.ts +++ b/src/api/JsonApi.ts @@ -6,7 +6,15 @@ const endPoints = { dev: "https://homedev.gametools.network/api/", prod: "https://manager-api.gametools.network/api/", }; -const MODE = "prod"; // todo: use Environment variables to set the value + +const MODE = (() => { + const mode_raw = process.env.API_MODE; + if (mode_raw && mode_raw in endPoints) { + return mode_raw; + } else { + return "prod"; + } +})(); export const endPointName = endPoints[MODE].replace("https://", "").replace( "/api/", @@ -53,7 +61,7 @@ export default class JsonClient { postJsonMethod( method: string, params: { [name: string]: unknown }, - ): Promise { + ): Promise<{ [name: string]: string }> { const options = { method: "POST", body: JSON.stringify(params), @@ -67,7 +75,7 @@ export default class JsonClient { getJsonMethod( method: string, params: { [name: string]: string | number }, - ): Promise { + ): Promise<{ [name: string]: string }> { return this.errorHandler(this.fetchMethod(method, params)); } async errorHandler( @@ -107,18 +115,21 @@ export default class JsonClient { }; } async getUserInfo(): Promise { - const defaultUser = { + const defaultUser: IUserInfo = { discord: { name: "", - discriminator: 0, + discriminator: "", avatar: "", }, + permissions: { + isAdminOf: [], + }, auth: { - inGuild: false, isAdmin: false, isDeveloper: false, isOwner: false, signedIn: false, + isManager: false, }, };