Skip to main content
src/tappify.d.ts is generated from your manifest and the JSON Schemas it points at. It is what makes tap.storage.preferences, tap.server.getSummary and TapSettingsProps know their own shapes. Commit it.
add, remove and dev run it for you, and dev rewrites it every time the manifest changes.

What it declares

The file declares one named type per schema, then augments the SDK’s module with maps that point at them:
The event names themselves come with the SDK, so tap.data.subscribe rejects a name that does not exist whether or not you have generated. What generating adds is the payload. Query results are not generated: the seven query kinds are fixed, so useTapQuery already knows what each returns.

When it goes stale

tappify extension doctor compares the file with what the generator would write now and fails the types.stale check when they differ. tappify extension doctor --fix rewrites it. Names fall back to string while a map is empty, so useTapStorage("preferences") and useTapServer("getSummary", input) compile before you have generated anything. A document and a procedure output fall back to unknown, so reading a field off one is a compile error until the file exists. Generate once the manifest declares the contribution, and write the component against real fields.