Component based MVC web framework for nodejs targeting good code structures & modularity.

Overview

Component based MVC web framework for nodejs targeting good code structures & modularity.

GitHub version Build Status npm version Docs

Why fortjs

  • Based on Fort architecture.
  • MVC Framework and follows OOPS approach so everything is class and object.
  • Provides components - Wall, Shield and Guard. Components help modularize the application.
  • No callback, Uses ES6 async/await or promise for executing asychronous code.
  • Everything is configurable - you can configure your session store, view engine, websocket etc.
  • Dependency Injection.
  • Everything can be unit tested, so you can use a TDD approach.
  • TypeScript Support - Fully supported for typescript users.

How to use

Controller

import {Controller, DefaultWorker, textResult } from "fortjs" 
export class UserController extends Controller{

    @DefaultWorker()
    async getUsers(){
        return textResult("Hey, I am get users method");
    }
}

Bootstrap

import { Fort } from "fortjs";
import { UserController } from "./controllers";

// add routes
Fort.routes = [{
    controller: UserController,
    path: "/user"
}]

// initiate app
Fort.create().then(()=>{
    Fort.logger.info(`App is started at location : http://localhost:${Fort.port}`);
})

Examples

Check out repo - https://github.com/ujjwalguptaofficial/fortjs-examples

Website

http://fortjs.info/

Contributors

You are very welcome to contribute, please see contributing guidelines - [Contribute].

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. For sponsoring, contact author of this project.

TODO

  • Absolute route
  • Retrieve dependency injection value from anywhere like in service
Comments
  • Dependency injection stops working when using more than 2 singletons in a controller

    Dependency injection stops working when using more than 2 singletons in a controller

    I have 3 services right now that I need to inject into my controller. Problem is when I use a third one it'll just stop injecting all together. Example:

    getOrderService: GetOrderService
    updateOrderService: UpdateOrderService
    createOrderService: CreateOrderService
    
    constructor(
        @Singleton(CreateOrderService) createOrderService: CreateOrderService,
        @Singleton(GetOrderService) getOrderService: GetOrderService,
        @Singleton(UpdateOrderService) updateOrderService: UpdateOrderService) {
              super();
              this.getOrderService = getOrderService;
              this.createOrderService = createOrderService;
              this.updateOrderService = updateOrderService;
    }
    

    returns on every request: internal server error message : this.getOrderService.<<whatever.function.is.called>> is not a function stacktrace: TypeError: this.getOrderService.<<whatever.function.is.called>> is not a function at OrderController. (C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:285:60) at step (C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:221:23) at Object.next (C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:202:53) at C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:196:71 at new Promise () at ./controllers/order_controller.ts.__awaiter (C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:192:12) at OrderController../controllers/order_controller.ts.OrderController.<<whatever.function.is.called>>(C:\Users\weltert\Desktop\pba-api-test\pba-api\bin\app.js:281:16) at RequestHandler.module.exports.RequestHandler.runController_ (C:\Users\weltert\Desktop\pba-api-test\pba-api\node_modules\fortjs\dist\fort.js:2162:67) at RequestHandler. (C:\Users\weltert\Desktop\pba-api-test\pba-api\node_modules\fortjs\dist\fort.js:2322:34) at step (C:\Users\weltert\Desktop\pba-api-test\pba-api\node_modules\fortjs\dist\fort.js:2069:23) at Object.next (C:\Users\weltert\Desktop\pba-api-test\pba-api\node_modules\fortjs\dist\fort.js:2050:53) at fulfilled (C:\Users\weltert\Desktop\pba-api-test\pba-api\node_modules\fortjs\dist\fort.js:2041:58)

    But if I remove 1 singleton (doesn't matter which):

    getOrderService: GetOrderService
    updateOrderService: UpdateOrderService
    
    constructor(
        @Singleton(CreateOrderService) createOrderService: CreateOrderService,
        @Singleton(GetOrderService) getOrderService: GetOrderService) {
           super();
              this.getOrderService = getOrderService;
              this.createOrderService = createOrderService;
    }
    

    It'll work just fine.

    bug 
    opened by TimWelter 12
  • Feature Request: Adding type to HttpResult

    Feature Request: Adding type to HttpResult

    Currently the HttpResult has a property "responseData" which is of type any, This feature request is to add type support in HttpResult so that the user of the library could pass the DTO class type for the "responseData" object.

    opened by faiztherocker 3
  • Initializing of controller with body in tests doesn't actually initialize the body

    Initializing of controller with body in tests doesn't actually initialize the body

    it("Registers a new user", async (done) => {
            controller.initialize({ data: { creds: { email: "[email protected]", firstName: "register", lastName: "test", password: "test", role: "GUEST" } } })
    
            await controller.registerUser()
            const result = await User.find()
    
            expect(result.length).toBe(1)
            const result = await User.find({email: "[email protected]"})
    
            done()
        })
    

    value of body in worker: { }

    opened by TimWelter 3
  • Async Promise antipattern is used

    Async Promise antipattern is used

    On this line https://github.com/ujjwalguptaofficial/fortjs/blob/master/src/handlers/request_handler.ts#L185

        async handlePostData() {
            if (this.request.method === HTTP_METHOD.Get) {
                this.body = {};
            }
            else if (Global.shouldParsePost === true) {
                try {
                    this.body = await this.parsePostData();
                }
                catch (ex) {
                    return Promise.reject(ex);
                }
            }
        }
    

    Things to know about Promises:

    1. Promises are flattened by default. (Think flat map). So: Promise.reject(Promise.reject("error")) is the same as Promise.reject("error") and Promise.resolve(Promise.resolve("value")) is the same as Promise.resolve("value") Promise.resolve(Promise.reject("error")) is the same as Promise.reject("error")
    2. Async function will wrap any returned value in a Promise.resolve and any thrown value in a Promise.reject

    So inside the else if it could be rewritten

                try {
                    this.body = await this.parsePostData();
                }
                catch (ex) {
                    throw ex;
                }
    
    1. Also, any function that throws will propagate the error down the stack trace until a catch is found. It means it is useless to have catch (x) { throw x;}

    So even simpler

    `this.body = await this.parsePostData();            
    

    The code will execute the same. Next steps fix other places that use this antipattern

    opened by GrosSacASac 3
  • Consider targeting more specific areas that could throw

    Consider targeting more specific areas that could throw

    https://github.com/ujjwalguptaofficial/fortjs/blob/master/src/handlers/request_handler.ts#L111

    I consider putting a huge chunk of lines of code inside a try catch an anti-pattern.

    suggestion 
    opened by GrosSacASac 2
  • Not working with many checkbox radio ?

    Not working with many checkbox radio ?

    Hello i need help, I would like use many checkbox but when i click to checkbox one and checkbox two is not working.

    I have a form with a lot of radio buttons they are all in classes The problem is that when I click on the first radio button it works but when I click on the second one and well the Progress bar doesn't advance. and I can have forms with 10 checkboxes as 6 is random how to make it automatic?

    []( check -->https://jsfiddle.net/alex447/m6juh0dx/19/ )

    ` function flash(){ function cback(e) { var t = []; for (var n = inputs.length; n--;) { if (!inputs[n].value.length) t.push(inputs[n]); } var r = t.length; var i = inputs.length; var s = document.querySelectorAll(".top"); for (var o = s.length; o--;) { s[o].style.width = 100 - r / i * 100 + "%"; s[o].style.background = cols[i-r-1]; } } var forms = document.querySelectorAll(".form"), inputs = []; for (var i = forms.length; i--;) { var els = forms[i].querySelectorAll("input, textarea, select"); for (var j = els.length; j--;) { if (els[j].type != "button" && els[j].type != "submit") { inputs.push(els[j]); els[j].addEventListener("input", cback, false); } } }

    var cols = ["#1ABC9C","#EC7063","#3498DB"]; }

    function gradient(){ function cback(e) { var t = []; for (var n = inputs.length; n--;) { if (!inputs[n].value.length) t.push(inputs[n]); } var r = t.length; var i = inputs.length; var s = document.querySelectorAll(".top"); for (var o = s.length; o--;) { s[o].style.width = 100 - r / i * 100 + "%"; } } var forms = document.querySelectorAll(".form"), inputs = []; for (var i = forms.length; i--;) { var els = forms[i].querySelectorAll("input, textarea, select"); for (var j = els.length; j--;) { if (els[j].type != "button" && els[j].type != "submit") { inputs.push(els[j]); els[j].addEventListener("input", cback, false); } } } } function sections(){ function cback(e) { var t = []; for (var n = inputs.length; n--;) { if (!inputs[n].value.length) t.push(inputs[n]); } var r = t.length; var i = inputs.length; var s = document.querySelectorAll(".top"); for (var o = s.length; o--;) { s[o].style.width = 100 - r / i * 100 + "%"; } } var forms = document.querySelectorAll(".form"), inputs = []; for (var i = forms.length; i--;) { var els = forms[i].querySelectorAll("input, radio, select"); for (var j = els.length; j--;) { if (els[j].type != "button" && els[j].type != "submit") { inputs.push(els[j]); els[j].addEventListener("input", cback, false); } } }

    function generateCSSGradient(colours) { var l = colours.length, i; for( i=0; i<l; i++) colours[i] = colours[i].join(" "); return "linear-gradient( to right, "+colours.join(", ")+")"; }

    var cols = [ ["#1ABC9C","0%"], ["#1ABC9C","33.3%"], ["#EC7063","33.3%"], // note same percentage - this gives a crisp change ["#EC7063","66.6%"], ["#3498DB","66.6%"], ["#3498DB","100%"] ]; document.getElementsByClassName('.top').innerHTML = '

    '; document.querySelector(".colors").style.background = generateCSSGradient(cols);

    var window_width = window.innerWidth + "px"; document.querySelector(".colors").style.width = window_width;

    };`

    Thanks

    opened by alexandre-solymos 1
  • Bump elliptic from 6.4.1 to 6.5.3

    Bump elliptic from 6.4.1 to 6.5.3

    Bumps elliptic from 6.4.1 to 6.5.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Feature Request: Allow ErrorHandler methods to return Promise<HttpResult>

    Feature Request: Allow ErrorHandler methods to return Promise

    Allow the methods of ErrorHandler class to return Promise<HttpResult> rather than Promise<string>. This gives the flexibility to the users to either return a jsonResult or a textResult.

    opened by faiztherocker 1
  • Feature Request : The status code of the response should be available in the Wall

    Feature Request : The status code of the response should be available in the Wall

    Wall's Outgoing function is the right place to create to create a generic 500 caught exception handler in fortjs, however the as per the current implementation the status code of the response is not available in response object available in the Wall.

    Request you to add status code to the response object.

    opened by faiztherocker 1
  • Bump eslint-utils from 1.3.1 to 1.4.3 in /example/ejs/javascript

    Bump eslint-utils from 1.3.1 to 1.4.3 in /example/ejs/javascript

    Bumps eslint-utils from 1.3.1 to 1.4.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump mixin-deep from 1.3.1 to 1.3.2 in /tests/filetest

    Bump mixin-deep from 1.3.1 to 1.3.2 in /tests/filetest

    Bumps mixin-deep from 1.3.1 to 1.3.2.

    Commits
    Maintainer changes

    This version was pushed to npm by doowb, a new releaser for mixin-deep since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump elliptic from 6.4.1 to 6.5.3 in /tests/javascript

    Bump elliptic from 6.4.1 to 6.5.3 in /tests/javascript

    Bumps elliptic from 6.4.1 to 6.5.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump elliptic from 6.4.1 to 6.5.3 in /tests/general

    Bump elliptic from 6.4.1 to 6.5.3 in /tests/general

    Bumps elliptic from 6.4.1 to 6.5.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump elliptic from 6.4.1 to 6.5.3 in /tests/filetest

    Bump elliptic from 6.4.1 to 6.5.3 in /tests/filetest

    Bumps elliptic from 6.4.1 to 6.5.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.15 to 4.17.19 in /tests/javascript

    Bump lodash from 4.17.15 to 4.17.19 in /tests/javascript

    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.15 to 4.17.19 in /tests/general

    Bump lodash from 4.17.15 to 4.17.19 in /tests/general

    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.11 to 4.17.19 in /tests/filetest

    Bump lodash from 4.17.11 to 4.17.19 in /tests/filetest

    Bumps lodash from 4.17.11 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(2.0.0)
Owner
Ujjwal Gupta
Creator of JsStore, FortJs | Full Stack Developer | Javascript, nodejs, crystal lang | Polyglot | Tech Enthusiastic
Ujjwal Gupta
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers

Derby The Derby MVC framework makes it easy to write realtime, collaborative applications that run in both Node.js and browsers. Derby includes a powe

DerbyJS 4.7k Dec 23, 2022
Framework for setting up RESTful JSON APIs with NodeJS.

Restberry works with both Express and Restify! Framework for setting up RESTful JSON APIs with NodeJS. Define your models and setup CRUD API calls wit

Restberry 117 Jul 5, 2021
Realtime.js - a fast frontend framework based on Web-Components.

Realtime.js is a fast frontend framework based on Web-Components and Proxies. It has a lot of features to simplify your way of live as a vanillajs developer. The framework is programmed in such a way, that you can edit it yourself if you need additional features.

Kilian Hertel 7 Nov 1, 2022
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS. Ecosystem Name Description @marblejs/core F

Marble.js 2.1k Dec 16, 2022
Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks

Actionhero The reusable, scalable, and quick node.js API server for stateless and stateful applications NPM | Web Site | Latest Docs | GitHub | Slack

Actionhero 2.3k Jan 4, 2023
Zeronode - minimal building block for NodeJS microservices

Zeronode - minimal building block for NodeJS microservices Why Zeronode? Installation Basics Benchmark API Examples Basic Examples Basic Examples [Adv

Steadfast 120 Oct 21, 2022
AWS Lambda router for NodeJS

AWS Lambda Router for NodeJS A collection of tools to handle ApiGateway requests and direct function invocation calls on AWS Lambda. Use it as a stand

Dumitru Glavan 11 Apr 22, 2019
Fast, unopinionated, minimalist web framework for node.

Fast, unopinionated, minimalist web framework for node. const express = require('express') const app = express() app.get('/', function (req, res) {

null 59.5k Jan 5, 2023
Fast and low overhead web framework, for Node.js

An efficient server implies a lower cost of the infrastructure, a better responsiveness under load and happy users. How can you efficiently handle the

Fastify 26k Jan 2, 2023
:evergreen_tree: Modern Web Application Framework for Node.js.

Trails is a modern, community-driven web application framework for Node.js. It builds on the pedigree of Rails and Grails to accelerate development by

Trails 1.7k Dec 19, 2022
🦄 0-legacy, tiny & fast web framework as a replacement of Express

tinyhttp ⚡ Tiny web framework as a replacement of Express ?? tinyhttp now has a Deno port (work in progress) tinyhttp is a modern Express-like web fra

v 1 r t l 2.4k Jan 3, 2023
A serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gateway, Lambda)

---- Sorry, this project is not maintained anymore. ---- dawson is a serverless web framework for Node.js on AWS (CloudFormation, CloudFront, API Gate

dawson 717 Dec 30, 2022
Proof of concept for the Quark.js web framework

Quark.js Proof of Concept Proof of concept for the Quark.js web framework. Examples Express.js Implimentation using express.js as a web server: im

Quark.js 3 Feb 18, 2022
The React Framework

Next.js Getting Started Visit https://nextjs.org/learn to get started with Next.js. Documentation Visit https://nextjs.org/docs to view the full docum

Vercel 98.6k Jan 5, 2023
The Intuitive Vue Framework

Build your next Vue.js application with confidence using Nuxt: a framework making web development simple and powerful. Links ?? Documentation: https:/

Nuxt 41.8k Jan 9, 2023
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest is a framework for building efficient,

nestjs 53.2k Dec 31, 2022
The Simple, Secure Framework Developers Trust

@hapi/hapi The Simple, Secure Framework Developers Trust Build powerful, scalable applications, with minimal overhead and full out-of-the-box function

hapi.js 14.1k Dec 31, 2022
A framework for real-time applications and REST APIs with JavaScript and TypeScript

A framework for real-time applications and REST APIs with JavaScript and TypeScript Feathers is a lightweight web-framework for creating real-time app

Feathers 14.3k Jan 1, 2023
🚀 The Node.js Framework highly focused on developer ergonomics, stability and confidence

Sponsored by FOSS United is a non-profit foundation that aims at promoting and strengthening the Free and Open Source Software (FOSS) ecosystem in Ind

AdonisJS Framework 13.4k Dec 31, 2022