Compare commits
	
		
			No commits in common. '94ab6ee91b000882c46b164008846926f3bbf0aa' and '4d91fc0233a4fa0de3af56da8521d83316ba6c1b' have entirely different histories. 
		
	
	
		
			94ab6ee91b
			...
			4d91fc0233
		
	
		
	| @ -1,7 +1,6 @@ | |||||||
| { | { | ||||||
|   "eslint.workingDirectories": [ |   "eslint.workingDirectories": [ | ||||||
|     "backend", |     "backend", | ||||||
|     "frontend", |     "frontend" | ||||||
|     "shared" |  | ||||||
|   ] |   ] | ||||||
| } | } | ||||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,41 @@ | |||||||
|  | #root { | ||||||
|  |   max-width: 1280px; | ||||||
|  |   margin: 0 auto; | ||||||
|  |   padding: 2rem; | ||||||
|  |   text-align: center; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .logo { | ||||||
|  |   height: 6em; | ||||||
|  |   padding: 1.5em; | ||||||
|  |   will-change: filter; | ||||||
|  | } | ||||||
|  | .logo:hover { | ||||||
|  |   filter: drop-shadow(0 0 2em #646cffaa); | ||||||
|  | } | ||||||
|  | .logo.react:hover { | ||||||
|  |   filter: drop-shadow(0 0 2em #61dafbaa); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @keyframes logo-spin { | ||||||
|  |   from { | ||||||
|  |     transform: rotate(0deg); | ||||||
|  |   } | ||||||
|  |   to { | ||||||
|  |     transform: rotate(360deg); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media (prefers-reduced-motion: no-preference) { | ||||||
|  |   a:nth-of-type(2) .logo { | ||||||
|  |     animation: logo-spin infinite 20s linear; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .card { | ||||||
|  |   padding: 2em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .read-the-docs { | ||||||
|  |   color: #888; | ||||||
|  | } | ||||||
| @ -1,6 +1,70 @@ | |||||||
|  | :root { | ||||||
|  |   font-family: Inter, Avenir, Helvetica, Arial, sans-serif; | ||||||
|  |   font-size: 16px; | ||||||
|  |   line-height: 24px; | ||||||
|  |   font-weight: 400; | ||||||
|  | 
 | ||||||
|  |   color-scheme: light dark; | ||||||
|  |   color: rgba(255, 255, 255, 0.87); | ||||||
|  |   background-color: #242424; | ||||||
|  | 
 | ||||||
|  |   font-synthesis: none; | ||||||
|  |   text-rendering: optimizeLegibility; | ||||||
|  |   -webkit-font-smoothing: antialiased; | ||||||
|  |   -moz-osx-font-smoothing: grayscale; | ||||||
|  |   -webkit-text-size-adjust: 100%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  |   font-weight: 500; | ||||||
|  |   color: #646cff; | ||||||
|  |   text-decoration: inherit; | ||||||
|  | } | ||||||
|  | a:hover { | ||||||
|  |   color: #535bf2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| body { | body { | ||||||
|   margin: 0; |   margin: 0; | ||||||
|   height: 100vh; |   display: flex; | ||||||
|   width: 100vw; |   place-items: center; | ||||||
|   overflow: hidden; |   min-width: 320px; | ||||||
|  |   min-height: 100vh; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | h1 { | ||||||
|  |   font-size: 3.2em; | ||||||
|  |   line-height: 1.1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | button { | ||||||
|  |   border-radius: 8px; | ||||||
|  |   border: 1px solid transparent; | ||||||
|  |   padding: 0.6em 1.2em; | ||||||
|  |   font-size: 1em; | ||||||
|  |   font-weight: 500; | ||||||
|  |   font-family: inherit; | ||||||
|  |   background-color: #1a1a1a; | ||||||
|  |   cursor: pointer; | ||||||
|  |   transition: border-color 0.25s; | ||||||
|  | } | ||||||
|  | button:hover { | ||||||
|  |   border-color: #646cff; | ||||||
|  | } | ||||||
|  | button:focus, | ||||||
|  | button:focus-visible { | ||||||
|  |   outline: 4px auto -webkit-focus-ring-color; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media (prefers-color-scheme: light) { | ||||||
|  |   :root { | ||||||
|  |     color: #213547; | ||||||
|  |     background-color: #ffffff; | ||||||
|  |   } | ||||||
|  |   a:hover { | ||||||
|  |     color: #747bff; | ||||||
|  |   } | ||||||
|  |   button { | ||||||
|  |     background-color: #f9f9f9; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,18 +0,0 @@ | |||||||
| import { WxRegion } from '@shared/types/config.types'; |  | ||||||
| import { WxData } from '@shared/types/wx.types'; |  | ||||||
| import axios from 'axios'; |  | ||||||
| 
 |  | ||||||
| async function getRegions(): Promise<WxRegion[]> { |  | ||||||
|   const response = await axios.get<WxRegion[]>('/api/regions'); |  | ||||||
|   return response.data; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| async function getWxData(region: string): Promise<WxData> { |  | ||||||
|   const response = await axios.get<WxData>(`/api/regions/${region}/wx`); |  | ||||||
|   return response.data; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export default { |  | ||||||
|   getRegions, |  | ||||||
|   getWxData, |  | ||||||
| }; |  | ||||||
| @ -1,21 +1,7 @@ | |||||||
| import { defineConfig } from 'vite'; | import { defineConfig } from 'vite' | ||||||
| import react from '@vitejs/plugin-react'; | import react from '@vitejs/plugin-react' | ||||||
| import * as path from 'path'; |  | ||||||
| 
 | 
 | ||||||
| // https://vitejs.dev/config/
 | // https://vitejs.dev/config/
 | ||||||
| export default defineConfig({ | export default defineConfig({ | ||||||
|   plugins: [react()], |   plugins: [react()], | ||||||
|   resolve: { | }) | ||||||
|     alias: [{ find: '@shared', replacement: path.resolve(__dirname, '..', 'shared', 'src') }], |  | ||||||
|   }, |  | ||||||
|   server: { |  | ||||||
|     proxy: { |  | ||||||
|       '/api': { |  | ||||||
|         target: 'http://localhost:3030', |  | ||||||
|         changeOrigin: true, |  | ||||||
|         // secure: false,
 |  | ||||||
|         // ws: true,
 |  | ||||||
|       }, |  | ||||||
|     }, |  | ||||||
|   }, |  | ||||||
| }); |  | ||||||
|  | |||||||
| @ -1,31 +0,0 @@ | |||||||
| { |  | ||||||
|   "env": { |  | ||||||
|     "es2021": true, |  | ||||||
|     "node": true |  | ||||||
|   }, |  | ||||||
|   "extends": [ |  | ||||||
|     "airbnb-typescript/base", |  | ||||||
|     "eslint:recommended", |  | ||||||
|     "plugin:@typescript-eslint/eslint-recommended", |  | ||||||
|     "plugin:@typescript-eslint/recommended" |  | ||||||
|   ], |  | ||||||
|   "root": true, |  | ||||||
|   "parser": "@typescript-eslint/parser", |  | ||||||
|   "plugins": [ |  | ||||||
|     "@typescript-eslint", |  | ||||||
|     "import", |  | ||||||
|     "promise" |  | ||||||
|   ], |  | ||||||
|   "overrides": [], |  | ||||||
|   "parserOptions": { |  | ||||||
|     "ecmaVersion": "latest", |  | ||||||
|     "sourceType": "module", |  | ||||||
|     "project": "./tsconfig.json" |  | ||||||
|   }, |  | ||||||
|   "rules": { |  | ||||||
|     "eol-last": [ |  | ||||||
|       "error", |  | ||||||
|       "always" |  | ||||||
|     ] |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -1,10 +0,0 @@ | |||||||
| { |  | ||||||
|   "devDependencies": { |  | ||||||
|     "@types/node": "^18.6.2", |  | ||||||
|     "eslint": "^8.23.1", |  | ||||||
|     "eslint-config-airbnb-typescript": "^17.0.0", |  | ||||||
|     "eslint-plugin-import": "^2.26.0", |  | ||||||
|     "eslint-plugin-n": "^15.2.5", |  | ||||||
|     "eslint-plugin-promise": "^6.0.1" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -1,14 +0,0 @@ | |||||||
| export interface WxConfig { |  | ||||||
|   regions: WxRegion[]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface WxRegion { |  | ||||||
|   identifier: string; |  | ||||||
|   fixes: WxFix[]; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface WxFix { |  | ||||||
|   name: string; |  | ||||||
|   lat: number; |  | ||||||
|   lon: number; |  | ||||||
| } |  | ||||||
| @ -1,27 +0,0 @@ | |||||||
| export interface WxLevelData { |  | ||||||
|   'T(K)': string; |  | ||||||
|   windspeed: string; |  | ||||||
|   windhdg: string; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface WxFixData { |  | ||||||
|   coords: { |  | ||||||
|     lat: string; |  | ||||||
|     long: string; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   levels: { |  | ||||||
|     [key: string]: WxLevelData; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface WxData { |  | ||||||
|   info: { |  | ||||||
|     date: string; |  | ||||||
|     datestring: string; |  | ||||||
|     legal: string; |  | ||||||
|   }; |  | ||||||
|   data: { |  | ||||||
|     [key: string]: WxFixData; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -1,16 +0,0 @@ | |||||||
| { |  | ||||||
|   "compileOnSave": false, |  | ||||||
|   "compilerOptions": { |  | ||||||
|     "outDir": "dist", |  | ||||||
|     "baseUrl": "./src", |  | ||||||
|     "module": "ES2022", |  | ||||||
|     "target": "ES2022", |  | ||||||
|     "lib": ["ES2022"], |  | ||||||
|     "sourceMap": true, |  | ||||||
|     "strictNullChecks": true, |  | ||||||
|     "noImplicitAny": false, |  | ||||||
|     "preserveConstEnums": true, |  | ||||||
|     "removeComments": true, |  | ||||||
|     "forceConsistentCasingInFileNames": true |  | ||||||
|   } |  | ||||||
| } |  | ||||||
					Loading…
					
					
				
		Reference in new issue