Skip to content

Technologies

Jiří Cihelka edited this page Dec 29, 2023 · 2 revisions

A short overview of the technologies used by the library for development and deployment.

Languages

The entire source code of the library is written in TypeScript, a superset of JavaScript. TypeScript is a statically typed language that compiles to plain JavaScript. It is developed by Microsoft and is used by many large companies, including Google, Facebook, and Airbnb.
Pure JavaScript is used only for build configuration files, such as jest.config.js.
Typescript was chosen over JavaScript because it allows for better code organization and provides a lot of useful features, such as static typing, interfaces, generics, and more. It also enables the use of modern JavaScript features, such as classes, modules, and arrow functions, which are not yet supported by all browsers.
Library can be used in both TypeScript and JavaScript projects. Deployed version of the library is compiled JavaScript together with TypeScript type definitions and source maps.

Mardown is used for documentation. It is a lightweight markup language that is easy to read and write. It is also supported by GitHub, which makes it easy to create and maintain documentation. It is also possible to use HTML in Markdown files, which allows for more complex formatting. It is also possible to use LaTeX in Markdown files, which allows for the creation of mathematical formulas.

Source control

The library is hosted on GitHub and uses Git for source control. A separate GitHub organization was created for the library, which contains the library itself. This was done so that the library could be easily found and distinguished from other projects and also to allow for the creation of other projects related to the library in the future.
Git is the standard version control system for open source projects. There was no reason to choose another system.

Package manager

The package is built and deployed using npm, the standard package manager for Node.js. The library is published as a npm package. It can also be installed using pnpm. A non-package version for use in the browser is not yet available.

Build system

The library is compiled using the standard TypeScript compiler. The compiler is configured using the tsconfig.json file. The compiler is run using the tsc command (or npm run build).

Testing

The library is tested using Jest, a JavaScript testing framework developed by Facebook. Jest is a complete and easy to set-up testing solution. Test are written in TypeScript and are located in the tests directory. The test configuration is located in the jest.config.js file. Tests are run using the jest command (or npm run test).

Automatic API documentation

The library API is documented using TypeDoc, a documentation generator for TypeScript projects. TypeDoc is a complete and easy to set-up documentation solution. The documentation is generated from the source code and is located in the docs/api directory. The documentation configuration is located in the typedoc.json file. The documentation is generated using the typedoc command (or npm run docs).

Manual documentation

The library is documented using Markdown files. The documentation is located in the docs/wiki directory. The documentation is written in English. It is also available in the Wiki section of the GitHub repository.

Clone this wiki locally