Skip to content
Merged
3 changes: 3 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,9 @@
// a response resolver's request context: wraps the live fetch Request; no readonly form
{ "from": "package", "name": "ResponseResolverInfo", "package": "msw" },
{ "from": "package", "name": "Collection", "package": "@msw/data" },
// a live actor handle: subscription and mailbox state xstate mutates internally, no
// readonly form
{ "from": "package", "name": "AnyActorRef", "package": "xstate" },
{
"from": "package",
"name": ["CryptoKey", "Request", "Response", "AbortSignal"],
Expand Down
5 changes: 4 additions & 1 deletion bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion libs/game/idle-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
"@vers/styled-system": "workspace:*",
"@vers/trace": "workspace:*",
"idb": "catalog:",
"p-retry": "catalog:",
"react": "catalog:",
"tiny-invariant": "catalog:",
"xstate": "catalog:",
"zod": "catalog:",
"zustand": "catalog:"
},
Expand Down
10 changes: 10 additions & 0 deletions libs/game/idle-client/src/submission/build-machine-types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* xstate's `setup()` consumes its `types` property at the type level only — the runtime value is
* never read — so an empty object can stand in for any machine's context/events/input shape. This
* owns the one assertion that requires, keeping machine definitions free of `{} as` casts.
*/
// oxlint-disable-next-line typescript/no-unnecessary-type-parameters -- T exists purely so callers can name the phantom shape
export function buildMachineTypes<T>(): T {
// oxlint-disable-next-line typescript/no-unsafe-type-assertion -- compile-time phantom; xstate never reads the value
return {} as T;
}
Loading