Colaboratori open source

Salutare!

Recent am inceput un framework open source, care este inspirat din Laravel.
Proiectul este scris Node, fiind wrapper peste express, si este scris in TypeScript.

Un proiect similar este nestjs, dar are un dezavantaj mare, pentru ca impune o arhitectura foarte complexa devilor.
Un alt proiect din care ne putem inspira la capitolul plugins este mono-js, acesta a aparut in promovari destul de recent, si este foarte bine pus la punct:

Acest proiect a fost dezvoltat de core team-ul Nuxt.js.

De ce am reinventa roata?

  • pentru pasionatii de Laravel care vor/trebuie sa faca o tranzitie spre NodeJs, dar au o reticenta in ceea ce priveste knowledge-ul - putem oferi un framework care are out of the box multe features ce le are si Laravel
  • pentru proiecte noi, ofera un base config, care nu impune nici o rigoare in plus, se poate folosi si express out of the box, dar se poate lucra peste framework (cu alte cuvinte entry-ul este tot un server.js si expune un Router si de aici in colo te bucuri doar de hot reload/ts-config/ts-lint/debug config si folder structure sau poti importa clase si utils din Facades, care expune core-ul framework-ului
  • pentru a oferi un [cli](https://github.com/tsejs/tse-cli) care ar putea sa faca scaffolding la structuri de: new routes + controller + model, middlewares, teste, sessions, db configs etc.

Long story short: as vrea sa iasa in final un framework light, dar powerful, iar CLI-ul sa ofere aceste tipuri de install - light version vs full version.

What is in place? Se poate vedea aici

La ce se lucreaza acum?

  • DI (dependency injection) - diferita de ce se stie pana acum in JS

Ce vrem sa dezvoltam?

  • Mail system
  • Auth system
  • Sessions
  • Cron Jobs
  • Plugins
  • SQL integration
  • Sockets
  • maybe an MVC with it’ own template engine? or leave it as an API framework?
  • Develop a custom plugin for testing like over supertest (something similar with mono-test-utils

Multumesc mult!

4 Likes

Felicitari pentru initiativa!

O intrebare pentru tine ar fi de ce simti nevoia de a integra DI in proiect? Din experienta mea aproape toate use case-urile se rezuma la teste. O alternativa care nu implica folosirea DI este folosirea modulelor similare https://github.com/thlorenz/proxyquire.