Skip to content

Declaration content differs using watch vs build #1003

@phippg

Description

@phippg

In one of my experimentation projects I am using Zod to validate data requested from a 3rd party API. In particular there is one part where I am using z.discriminatedUnion with a type field and want to be able to narrow down a second field (say data) at the call site in the consumers of my library. This works locally in that project.

Running microbundle watch the object in the generated declaration file (which the other projects rely on) includes the type field but is missing the other field. Running a regular microbundle the declaration file includes both type and the data field and I can narrow the data type based on the type property.

Running microbundle watch --target node leads to a correctly generated declaration file, running microbundle --target <anything> has no effect on the declaration output. Additionally, it seems the change is limited to the declaration since the Zod schema for validating the API responses are not stripped from the runtime code.

EDIT: Just tested running tsc --emitDeclarationOnly directly and that generates okay as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions