1.3 KiB
1.3 KiB
Decisions
Server
Tools
- typescript
- static typing
- stricter than normal javascript
- better visual studio (code) support
- drawio
- lighter than png diagrams
- allows for editing the diagrams later
Conventions
- file naming
- emulate C# namespacing
Libraries
- browserify
- less setup compared to webpack
- node:http
- no additional dependencies
- no overhead from frameworks
- can be modified to the project's specific needs (EFT request have no compression headers, but data is zlib compressed)
- rcedit
- no virus warning after editing the target exe
- ws
- no overhead from frameworks
- no additional dependencies client side
- typescript-eslint
- provides type-specific rules for typescript as well opposed to alternatives
Build
npm run build
is reserved by VS2022 for it's build task- nexe cannot include
node_modules
of it's own, so browserify is used to combine it all into one JS file - browserify doesn't support ES6 modules, so babel is used for transpiling to CommonJS.
- node doesn't include sourcemaps loading support, so we add it in through a babel plugin (
babel-plugin-source-map-support
)
Lint
- marked
any
explicitly valid to allow for prototyping faster