feat(data): add schema types and bind command for code generation#21
Merged
feat(data): add schema types and bind command for code generation#21
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FieldType,FieldSchema, andModelSchematypes to the SDK for describing Workday Extend business object modelseverywhere bind [APP_DIR]CLI command that reads.businessobjectfiles and generates:models.ts)schema.ts)useQuery/useMutationhook wrappers per modelindex.ts)<plugin>/everywhere/data/; Extend app path is saved toeverywhere/.config.jsonfor subsequent runsThis is Phase 1 of the data bindings feature. Phase 2 (React hooks & provider) and Phase 3 (local data service) will follow.
Test plan
just checkpasses (typecheck + lint)everywhere bindagainst real WFAA Extend app — generates correct types and hookseverywhere bind .works with models in plugin's ownmodel/directoryeverywhere bind(no args) reads from saved config🤖 Generated with Claude Code