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");
 | |
|     });
 | |
|   },
 | |
| };
 |