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

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…