zibri 1.4.2 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,2 +1,67 @@
1
- # Zibri
2
- An express based backend framework.
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/Service-Soft/zibri/release/logo.jpg" alt="Zibri" height=100>
3
+ </p>
4
+ <h1 align="center">Zibri</h1>
5
+
6
+ ![NPM Version](https://img.shields.io/npm/v/zibri)
7
+ ![NPM Last Update](https://img.shields.io/npm/last-update/zibri)
8
+ ![NPM License](https://img.shields.io/npm/l/zibri)
9
+
10
+ Zibri is an opiniated typescript backend framework based on express. It's heavily inspired by frameworks like [LoopBack](https://loopback.io/doc/en/lb4/index.html) and [Nest](https://docs.nestjs.com/).
11
+
12
+ What differentiates it from such frameworks can be found in our [goals section](#goals).
13
+
14
+ # 📑 Documentation
15
+ The official documentation of Zibri can be found under [https://service-soft.github.io/zibri](https://service-soft.github.io/zibri)
16
+
17
+ # 🏆 Goals
18
+ ## 🔋 Batteries included
19
+ Zibri aims to be an ***actual*** batteries included framework.
20
+
21
+ Meaning if you need something like an email service it's already there.
22
+
23
+ And, in contrast to most other node backend frameworks:<br>
24
+ Such a service is not just the most basic implementation, but one with built in templating, queuing support for thousands of mails, the option to save mails in the database, priority handling etc.
25
+
26
+ Due to it's dependency injection system you can always swap things out if they are not required or you need even more configuration options. But there will most likely always be a reasonable default you can rely on.
27
+
28
+ ### 🧩 Features
29
+ - default jwt auth strategy with advanced features like automatic reuse detection
30
+ - builtin ORM with transaction and migration support
31
+ - controller based route definition
32
+ - automatic open api generation
33
+ - body parsers for json and form-data
34
+ - automatic model based validation
35
+ - cron job service out of the box
36
+ - email service out of the box, with templating, mail queue, persistence and priority handling
37
+
38
+ ## ✨ Ease of use
39
+ Zibri aims to be as easy to use as possible, with reasonable defaults and by the use of decorators and dependency injection.
40
+
41
+ All developer facing classes/functions try to provide the strongest type safety possible.
42
+
43
+ At the same time we try to reduce boiler plate as much as possible. An example of this would be the way we handle entity properties.
44
+ Instead of having multiple decorators for open-api, ORM and validation (like Nest does it for example), we bundled those into one decorator used for everything instead.
45
+
46
+ ## 🛡️ Robustness
47
+ ### 🧱 Strong foundation
48
+ With Zibri you can rely on a strong foundation of battle tested libraries that have all been configured to be as fast and robust as possible:
49
+ - express as the server
50
+ - typeorm for handling everything database related
51
+ - nodemailer for sending emails
52
+ - handlebars for templating
53
+ - multer for file uploads
54
+
55
+ ### 🪖 Making "shooting your foot" as hard as possible
56
+ All the public facing classes, interfaces and functions are as strictly typed as possible. Zibri even includes a custom parser for handlebar files, that automtically infer the type of the data that is needed to render the template.
57
+
58
+ In addition to that, you will get warnings whenever there is something off, like an endpoint that is marked to skip auth, although that is not required.
59
+
60
+ Fixing these warnings will keep your code base cleaner and less prone to errors in the future.
61
+
62
+ ### 🛟 Making "shooting your foot" the most pleasant experience
63
+ Zibri gives you useful errors, stack traces and debug logs.
64
+
65
+ It includes source maps and handles even complex cases like giving you the specifics on why a dependency injection failed.
66
+
67
+ In a lot of cases it also directly gives you a possible fix.