2024-09-25 21:01:16 +00:00
2024-09-25 18:40:11 +00:00
2024-09-25 21:01:16 +00:00
2024-09-25 19:40:53 +00:00
2024-03-10 00:25:35 +00:00
2024-03-10 00:25:35 +00:00
2021-10-05 10:18:16 +02:00
2024-03-10 00:25:35 +00:00
2024-09-25 19:40:53 +00:00
2024-09-25 19:40:53 +00:00

linebridge

A multiproposal framework to build fast, scalable, and secure servers.

Currently used on RageStudio's services backends, like Comty

Getting Started

Installation

npm install linebridge

Note: Use of Yarn can cause some issues to install the package.

Example

Create a http server

// index.js
import { Server } from "./linebridge/src"

class MyAPI extends Server {
    // set a id for the server
    static refName = "my-api"
    // define a file based router
    static routesPath = `${__dirname}/routes`
    // define custom listen port
    static listenPort = 3000

    // set manual routes
    routes = {
        // basic route
        "/hi": {
            method: "get",
            fn: async (req, res) => {
                return {
                    message: "Hello world"
                }
            }
        },
        // use custom middleware
        "/middleware-custom": {
            method: "get",
            middlewares: [
                "custom-middleware"
            ],
            fn: async (req, res) => {
                return {
                    message: "The middleware is working!"
                }
            }
        },
        // get from context
        "/db": {
            method: "get",
            useContexts: [
                "db"
            ],
            fn: async (req, res, ctx) => {
                console.log(ctx)
                return ctx.db.data
            }
        },
        // use parameters
        "/sum/:value1/:value2": {
            method: "get",
            fn: async (req, res) => {
                return {
                    result: parseInt(req.params.value1) + parseInt(req.params.value2)
                }
            }
        }
    }

    // define default middlewares to use on every request
    useMiddlewares = [
        async (req, res) => {
            console.log("Im executed every request")
        }
    ]

    // you can also define custom middlewares to use on endpoints
    middlewares = {
        "custom-middleware": async (req, res) => {
            console.log("Im a custom middleware")
        }
    }

    // define custom contexts to use on endpoints
    contexts = {
        db: {
            data: [
                {
                    id: 1,
                    name: "John Doe"
                },
                {
                    id: 2,
                    name: "Jane Doe"
                }
            ]
        }
    }

    async onInitialize() {
        console.log("Server initialized")
    }

    async onClose() {
        console.log("Server closed")
    }
}

Boot(MyAPI)

Run the server

linebridge-boot index.js

Documentation

On the way

Description
A multiproposal framework to build fast, scalable, and secure servers.
Readme 1,021 KiB
Languages
JavaScript 99.9%