INNER CODE UNIT · Python
_patch_openapi_additional_properties
skygazer42/MimirQ · app/main.py:477
def _patch_openapi_additional_properties(spec: dict) -> None: # noqa: ANN401
"""
Ensure dict-like/Any-object schemas remain useful in generated TS types.
FastAPI/Pydantic often emit `{ "type": "object" }` for `dict[str, Any]`-ish
payloads. `openapi-typescript` interprets that shape as `Record<string, never>`,
which is effectively unusable and causes spurious type drift in the web app.
We treat "object with no declared properties and no explicit additionalProperties"
as "arbitrary object" and set `additionalProperties: true`.
"""
def walk(node: object) -> None:
if isinstance(node, dict):
if node.get("type") == "object":
props = node.get("properties")
if (not props) and ("additionalProperties" not in node):
node["additionalProperties"] = True