Skip to content

feat(data): add schema types and bind command for code generation#21

Merged
jheddings merged 1 commit intomainfrom
feat/data-bindings
Mar 30, 2026
Merged

feat(data): add schema types and bind command for code generation#21
jheddings merged 1 commit intomainfrom
feat/data-bindings

Conversation

@jheddings
Copy link
Copy Markdown
Collaborator

Summary

  • Adds FieldType, FieldSchema, and ModelSchema types to the SDK for describing Workday Extend business object models
  • Adds everywhere bind [APP_DIR] CLI command that reads .businessobject files and generates:
    • TypeScript interfaces (models.ts)
    • Runtime schema metadata (schema.ts)
    • Typed useQuery/useMutation hook wrappers per model
    • Barrel re-export (index.ts)
  • Generated output goes to <plugin>/everywhere/data/; Extend app path is saved to everywhere/.config.json for subsequent runs
  • Parser and generator are fully decoupled from the SDK runtime (no cross-boundary imports)

This is Phase 1 of the data bindings feature. Phase 2 (React hooks & provider) and Phase 3 (local data service) will follow.

Test plan

  • 77 tests pass across 12 test files
  • just check passes (typecheck + lint)
  • Smoke tested everywhere bind against real WFAA Extend app — generates correct types and hooks
  • Verify everywhere bind . works with models in plugin's own model/ directory
  • Verify re-running everywhere bind (no args) reads from saved config

🤖 Generated with Claude Code

Introduces `everywhere bind` CLI command that reads Workday Extend
.businessobject model files and generates TypeScript interfaces, runtime
schema metadata, and typed CRUD hook wrappers. Generated output goes to
the plugin's `everywhere/data/` directory. The Extend app path is saved
to `everywhere/.config.json` for subsequent runs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jheddings jheddings merged commit ba97812 into main Mar 30, 2026
2 checks passed
@jheddings jheddings deleted the feat/data-bindings branch March 30, 2026 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant