msysXyz
Presentation
msysXyz is the top-monorepo for the system-library sysXyz, which contains the parameters of the system Xyz.
This monorepo contains the following javascript package:
- systemix: the systemix library with its helper functions
- systemui: the helper library for making sysXyz-ui
- systemcli: the helper library for making sysXyz-cli
- sysXyz: a systemix library for managing the system parameters
- sysXyz-cli: the cli of sysXyz
- sysXyz-ui: the web-ui of sysXyz
- sysXyz-uis: the web-server of sysXyz-ui
This repo is a typical systemix-repository using systemix. The systemix-library and its associated UI and CLI are published as npm-packages. The UI is also available on the github-page.
Links
- sysXyz-ui : public instance of the UI
- sources : git-repository
- pkg : sysXyz as npm-package
- pkg-cli : sysXyz-cli as npm-package
- pkg-uis : sysXyz-uis as npm-package
Usage for System-architects
Parametrize and generate your 3D-files with the online-app:
https://charlyoleg2.github.io/msysXyz/
Or use the UI locally:
npx sysXyz-uis Or use the command-line-interface (CLI):
npx sysXyz-cli Getting started for Dev
git clone https://github.com/charlyoleg2/msysXyz
cd msysXyz
npm i
npm run ci
npm run preview Other useful commands:
npm run clean
npm run ls-workspaces
npm -w sysXyz run check
npm -w sysXyz run build
npm -w sysXyz-ui run dev Prerequisite
Singleton issue
The package systemix uses a singleton for storing the file-content to be written. As this singleton is used over 3 packages (systemix, sysXyz and sysXyz-cli), we are facing the issue singleton over several packages.
For solving properly this issue, the API of systemix should be extended with explicit reference to the singleton.
In this PoC, the API of systemix hasn’t been extended. Instead, there is a small workaround in pkg/sysXyz/src/index.ts. But this workaround doesn’t allow importing system from system.
ToDo
- systemix: manage inheritence of positions and orientations
- systemcli: create a real CLI with generic options
- systemui: to be developed
Publish a new release
npm run versions
git commit -am 'increment sub versions'
npm version patch
git push
git push origin v0.5.6