Closes #1405 - Properly uses `typescript-eslint`: we were missing the preset from it, so some of the default `eslint` rules (that don't properly work with typescript) were being applied and causing false positives - I also moved the `eslint` config into its own file, and enabled `typescript-eslint`'s type-awareness, so that we can enable more type-aware rules in the future if we like - Adds `ts-lit-plugin` to the typescript config, which _hopefully_ will allow us to catch issues during build (in CI) - It looks like `ts-lit-plugin` is sort of abandonware at the moment, and unfortunately _doesn't_ actually work for this purpose right now, but the lit team is working on a replacement here: https://www.npmjs.com/package/@lit-labs/analyzer - Adds `fork-ts-checker-webpack-plugin`, which allows the typescript checking process to be run on a separate forked thread in Webpack, which can help speed up builds & checking - Enables incremental type checking for better speed - Fixes a whole bunch of `eslint`-auto-fixable issues (unused imports and variables, some type issues, etc) - Fixes a bunch of `lit-analyzer` issues (mostly attribute naming, some type issues as well) - Fixes various other type issues: - Improves type safety in a bunch of places, notably anywhere `apiFetch` and `APIPaginatedList` are used - Removes some `any`s
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
const path = require("path");
|
|
require(path.resolve(process.cwd(), "./webpack.config.js"));
|
|
|
|
// for testing: for prod, using the version specified in Helm values.yaml
|
|
const RWP_BASE_URL =
|
|
process.env.RWP_BASE_URL || "https://cdn.jsdelivr.net/npm/replaywebpage/";
|
|
|
|
if (!process.env.API_BASE_URL) {
|
|
throw new Error(
|
|
"To run a dev frontend server, please set the API_BASE_URL pointing to your backend api server in '.env.local'"
|
|
);
|
|
}
|
|
|
|
const devBackendUrl = new URL(process.env.API_BASE_URL);
|
|
|
|
module.exports = {
|
|
proxy: {
|
|
"/api": {
|
|
target: devBackendUrl.href,
|
|
headers: {
|
|
Host: devBackendUrl.host,
|
|
},
|
|
ws: true,
|
|
},
|
|
|
|
"/data": {
|
|
target: devBackendUrl.href,
|
|
headers: {
|
|
Host: devBackendUrl.host,
|
|
},
|
|
},
|
|
},
|
|
// Serve replay service worker file
|
|
onBeforeSetupMiddleware: (server) => {
|
|
server.app.get("/replay/sw.js", (req, res) => {
|
|
res.set("Content-Type", "application/javascript");
|
|
res.send(`importScripts("${RWP_BASE_URL}sw.js")`);
|
|
});
|
|
|
|
server.app.get("/replay/ui.js", (req, res) => {
|
|
res.set("Content-Type", "application/javascript");
|
|
res.redirect(307, RWP_BASE_URL + "ui.js");
|
|
});
|
|
},
|
|
};
|