TSArchi is a TypeScript-based utility for parsing .archimate
files and manipulating the contained ArchiMate models. The project enables reading, editing, and saving enterprise architecture models compliant with the ArchiMate standard.
TSArchi provides a TypeScript-based tool for parsing, modifying, and saving .archimate
files. ArchiMate is an open, independent modeling language for enterprise architecture, and TSArchi allows you to work with these models programmatically.
- Parsing: Reads
.archimate
files and converts them into a TypeScript object model. - Model Manipulation: Add, modify, and remove elements and relationships in the parsed model.
- Model Serialization: Save the modified model back into an
.archimate
file. - Type Safety: Enforces strong TypeScript types for all operations on the model.
Ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/localgod/tsarchi.git cd tsarchi
-
Install the dependencies:
npm install
Before running the project, you need to compile the TypeScript files:
npm run build
This will compile the TypeScript source files into the dist/
folder.
You can run the program via the command line using node ./dist/tsarchi.mjs
with the following required arguments:
--input <path>
: The path to the input.archimate
file you wish to parse and manipulate.--output <path>
: The path where the modified model will be saved as a.archimate
file.
node ./dist/tsarchi.mjs --input ./models/example.archimate --output ./models/output.archimate
This command will:
- Parse the model in
./models/example.archimate
. - Save the modified model to
./models/output.archimate
.
You can extend the commands to do manipulations of the object model
This functionality is coming
We welcome contributions! Please follow these steps to contribute to the project:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/my-feature
). - Commit your changes (
git commit -am 'Add my feature'
). - Push to the branch (
git push origin feature/my-feature
). - Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.