{"id":16114727,"url":"https://github.com/solarliner/bayer-js","last_synced_at":"2026-05-08T17:41:42.401Z","repository":{"id":80989020,"uuid":"152662755","full_name":"SolarLiner/bayer-js","owner":"SolarLiner","description":"Reactive server abstractions library for Node.js.","archived":false,"fork":false,"pushed_at":"2019-03-05T22:17:11.000Z","size":1222,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-01-12T09:51:31.080Z","etag":null,"topics":["javascript","nodejs","rxjs6","server"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolarLiner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-11T22:21:49.000Z","updated_at":"2019-03-05T22:17:14.000Z","dependencies_parsed_at":"2023-06-03T04:45:14.919Z","dependency_job_id":null,"html_url":"https://github.com/SolarLiner/bayer-js","commit_stats":{"total_commits":244,"total_committers":1,"mean_commits":244.0,"dds":0.0,"last_synced_commit":"dd9611bd30d40e0230ab81659833277de7a9189c"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fbayer-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fbayer-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fbayer-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolarLiner%2Fbayer-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolarLiner","download_url":"https://codeload.github.com/SolarLiner/bayer-js/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451665,"owners_count":20940944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","nodejs","rxjs6","server"],"created_at":"2024-10-09T20:15:34.400Z","updated_at":"2026-05-08T17:41:42.341Z","avatar_url":"https://github.com/SolarLiner.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bayer.js\n\nReactive server abstractions library for Node.js.\n\n```typescript\nimport Bayer from \"@bayerjs/core\";\nimport staticFiles from \"@bayerjs/static\";\nimport Router from \"@bayerjs/router\";\n\nconst server = new Bayer();\nconst router = new Router();\n\nrouter.route(\"GET\", \"/\", ({ res }) =\u003e {\n  res.status(403, \"Unauthorized\").json({ error: \"You are not authorized\" });\n});\n\n// Use middleware\nserver.use(staticFiles({ localPath: join(__dirname, \"../public\") }));\nserver.use(router.middleware(), 1); // Optional priority (here to set it higher than the static files to override routes);\n// Run the server\nserver.listen(3000).then(() =\u003e console.log(\"Listening on http://localhost:3000\"));\n```\n\n## What it is\n\nBayer is a reactive library that abstracts away the difficulty of setting up a\nNode.js server with common-case features. It uses `rxjs` handle data-flow, as it\nis basically the textbook use-case of reactive programming.\n\n### Modular\n\nAs its smallest, Bayer provides you with an Observable, providing\n`Request` and `Response` parameter objects, which are based on Node.js's `IncomingMessage` and `ServerResponse` objects.\nlibrary.\n\nBayer can easily be extended through the use of Middlewares, they're\n`OperatorFunction`s that get piped to the main request Observable.\nThey can be as simple or as complex, and benefit from all the power of the RxJS Operators.\n\n### Easy\n\nWhile being introduced to Reactive programming will make your life easier, the\nproject aims to make writing feature-complete servers as easy and as quick as\npossible. If you need a \"quickstart template\" that's more than 50 lines of code\nwhen creating a new project, then this project's purpose has been defeated.\n\n## What it isn't\n\nBayer isn't batteries included; it won't do _everything_ for you. However, the\nproject tries to strike a balance between minimalism and availability of\nfeatures.\n\nNote that because Bayer has been designed with modularity in mind, functionality\ncan easily be added through the use of middlewares.\n\n## Why the name \"Bayer\"?\n\nBecause I was listening to Andrew Bayer's album when initially building the\nproject, and that it's a cool name, and because the JavaScript community needs\nsome [beautiful music](https://www.youtube.com/watch?v=vfiL-tyMHyI).\n\n\u003csup\u003eBut if you ask me,\n[this version](https://www.youtube.com/watch?v=J_VN-xwN72A) is much better\n😝\u003c/sup\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fbayer-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolarliner%2Fbayer-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolarliner%2Fbayer-js/lists"}