Trading card city builder game?

fix up ci and such

+54 -10
+12 -3
.github/workflows/gleam.yml
··· 24 24 - name: Install dependencies 25 25 run: gleam deps download 26 26 working-directory: ./server 27 - - name: Run tests 27 + - name: Test server 28 28 run: gleam test 29 29 working-directory: ./server 30 + - name: Test API 31 + run: gleam test 32 + working-directory: ./api 30 33 31 34 format: 32 35 runs-on: ubuntu-latest ··· 44 47 path: deps 45 48 key: ${{ runner.os }}-gleam-${{ hashFiles('**/manifest.toml') }} 46 49 restore-keys: ${{ runner.os }}-gleam- 47 - - name: Run format 50 + - name: Format server 48 51 run: gleam format --check 49 52 working-directory: ./server 53 + - name: Format API 54 + run: gleam format --check 55 + working-directory: ./api 50 56 51 57 check: 52 58 runs-on: ubuntu-latest ··· 67 73 - name: Install dependencies 68 74 run: gleam deps download 69 75 working-directory: ./server 70 - - name: Run check 76 + - name: Check server 71 77 run: gleam check 72 78 working-directory: ./server 79 + - name: Check API 80 + run: gleam check 81 + working-directory: ./api
+36
.github/workflows/typescript.yml
··· 26 26 steps: 27 27 - name: Checkout code 28 28 uses: actions/checkout@v4 29 + - name: Set up Gleam 30 + uses: erlef/setup-beam@v1 31 + with: 32 + gleam-version: "1.14.0" 33 + otp-version: "27" 34 + rebar3-version: "3.25.1" 29 35 - name: Install Node.js 30 36 uses: actions/setup-node@v4 31 37 with: 32 38 cache: npm 33 39 node-version-file: .node-version 40 + - name: Build API 41 + run: gleam build --target javascript 42 + working-directory: ./api 34 43 - name: Install node_modules 35 44 run: npm ci 36 45 - name: Run lint ··· 41 50 steps: 42 51 - name: Checkout code 43 52 uses: actions/checkout@v4 53 + - name: Set up Gleam 54 + uses: erlef/setup-beam@v1 55 + with: 56 + gleam-version: "1.14.0" 57 + otp-version: "27" 58 + rebar3-version: "3.25.1" 44 59 - name: Install Node.js 45 60 uses: actions/setup-node@v4 46 61 with: ··· 48 63 node-version-file: .node-version 49 64 - name: Install node_modules 50 65 run: npm ci 66 + - name: Build API 67 + run: gleam build --target javascript 68 + working-directory: ./api 51 69 - name: Run check 52 70 run: | 53 71 set -e ··· 59 77 steps: 60 78 - name: Checkout code 61 79 uses: actions/checkout@v4 80 + - name: Set up Gleam 81 + uses: erlef/setup-beam@v1 82 + with: 83 + gleam-version: "1.14.0" 84 + otp-version: "27" 85 + rebar3-version: "3.25.1" 62 86 - name: Install Node.js 63 87 uses: actions/setup-node@v4 64 88 with: ··· 66 90 node-version-file: .node-version 67 91 - name: Install node_modules 68 92 run: npm ci 93 + - name: Build API 94 + run: gleam build --target javascript 95 + working-directory: ./api 69 96 - name: Run build 70 97 run: npx vite build 71 98 ··· 74 101 steps: 75 102 - name: Checkout code 76 103 uses: actions/checkout@v4 104 + - name: Set up Gleam 105 + uses: erlef/setup-beam@v1 106 + with: 107 + gleam-version: "1.14.0" 108 + otp-version: "27" 109 + rebar3-version: "3.25.1" 77 110 - name: Install Node.js 78 111 uses: actions/setup-node@v4 79 112 with: ··· 81 114 node-version-file: .node-version 82 115 - name: Install node_modules 83 116 run: npm ci 117 + - name: Build API 118 + run: gleam build --target javascript 119 + working-directory: ./api 84 120 - name: Run test 85 121 run: npm test
+2
.prettierignore
··· 22 22 /server/_build 23 23 /server/build 24 24 25 + /api/build 26 + 25 27 /server-ex
+1
api/README.md
··· 6 6 ```sh 7 7 gleam add cartography_api@1 8 8 ``` 9 + 9 10 ```gleam 10 11 import cartography_api 11 12
+1
api/src/response.gleam
··· 1 +
+1 -1
api/tsconfig.json
··· 37 37 "isolatedModules": true, 38 38 "noUncheckedSideEffectImports": true, 39 39 "moduleDetection": "force", 40 - "skipLibCheck": true, 40 + "skipLibCheck": true 41 41 } 42 42 }
+1 -1
eslint.config.js
··· 102 102 ignores: [ 103 103 "**/.DS_Store", 104 104 "**/node_modules", 105 - "build", 105 + "**/build", 106 106 ".svelte-kit", 107 107 "package", 108 108 "server",
-4
src/lib/appserver/socket/Message.ts
··· 5 5 import type { FieldTile } from "../FieldTile"; 6 6 import type { Card } from "../Card"; 7 7 8 - import { type Request$ } from "cartography-api/request"; 9 - 10 - let t: Request$["constructor"]["name"]; 11 - 12 8 export interface MessageReplyMap { 13 9 auth: AccountMessage; 14 10 get_fields: FieldsMessage;
-1
src/lib/appserver/socket/SocketV1.ts
··· 5 5 import type { Message, MessageReplyMap } from "./Message"; 6 6 import { ReactiveEventTarget } from "$lib/ReactiveEventTarget.svelte"; 7 7 import type { FieldId } from "../Field"; 8 - import { type Request$ } from "cartography-api/request"; 9 8 10 9 interface SocketV1EventMap { 11 10 message: MessageEvent;