$ nvm use # uses node version in .nvmrc
$ yarn install
Build a production distributable DHIS2 zip file:
$ yarn build
Copy .env to .env.local and configure DHIS2 instance to use. Then start the development server:
$ yarn start
Now in your browser, go to http://localhost:8081.
$ yarn test
src/domain: Domain layer of the app (entities, use cases, repository definitions)src/data: Data of the app (repository implementations)src/webapp/pages: Main React components.src/webapp/components: React components.src/utils: Misc utilities.i18n/: Contains literal translations (gettext format)public/: General non-React webapp resources.
Future.ts: Async values, similar to promises, but cancellables and with type-safe errors.Collection.ts: Similar to Lodash, provides a wrapper over JS arrays.Obj.ts: Similar to Lodash, provides a wrapper over JS objects.HashMap.ts: Similar to ES6 map, but immutable.Struct.ts: Base class for typical classes with attributes. Features: create, update.Either.ts: Either a success value or an error.
We use TypeDoc:
$ yarn generate-docs
Update i18n .po files from i18n.t(...) calls in the source code:
$ yarn localize
Check the example script, entry "script-example"in package.json->scripts and src/scripts/example.ts.
-
Requests to DHIS2 will be transparently proxied (see
vite.config.ts->server.proxy) fromhttp://localhost:8081/dhis2/xyzto${VITE_DHIS2_BASE_URL}/xyz. This prevents CORS and cross-domain problems. -
You can use
.envvariables within the React app:const value = import.meta.env.NAME;