Implementation of the ODK XForms specification's data model and computation logic. This package does not handle presentation or user interaction. Those aspects of forms are meant to be handled by a client. Presently, those clients are:
Install with npm (or the equivalent command for your preferred package manager):
npm install @getodk/xforms-engineNote
All commands should be run from the root of the monorepo, not this package's subdirectory.
Test commands:
# Single run
npm run test-node:jsdom -w=packages/xforms-engine
npm run test-browser:chromium -w=packages/xforms-engine
npm run test-browser:firefox -w=packages/xforms-engine
npm run test-browser:webkit -w=packages/xforms-engine
# Watch mode (convenient during development)
npm run test-watch:jsdom -w=packages/xforms-engine
npm run test-watch:chromium -w=packages/xforms-engine
npm run test-watch:firefox -w=packages/xforms-engine
npm run test-watch:webkit -w=packages/xforms-engine- Browsers (latest versions):
- Chrome/Chromium-based browsers (tested only in Chromium)
- Firefox
- Safari/WebKit (tested in WebKit directly)
- Non-browser runtimes with a DOM compatibility environement:
- Node (current/LTS; tested with jsdom). Server-side rendering of forms is not presently supported or targeted beyond testing, though it may be considered in the future. Inclusion of Node in the automated test suites helps us to keep this option open.