{"id":13998517,"url":"https://github.com/bridge-codes/bridge","last_synced_at":"2025-05-15T13:05:37.424Z","repository":{"id":64899359,"uuid":"579000348","full_name":"bridge-codes/bridge","owner":"bridge-codes","description":"Bridge is a Typescript Node.js framework that provides an easy and scalable way to create REST APIs while generating the client code.  Our goal is to make Bridge a great framework for both frontend and backend teams, so if you're familiar with Node.js and Typescript, you'll feel right at home.","archived":false,"fork":false,"pushed_at":"2024-12-05T18:00:47.000Z","size":9801,"stargazers_count":332,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-04T14:48:20.123Z","etag":null,"topics":["api","express","expressjs","nodejs","rest-api","typesafe"],"latest_commit_sha":null,"homepage":"https://bridge.codes","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/bridge-codes.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":"2022-12-16T12:09:37.000Z","updated_at":"2025-03-09T00:24:25.000Z","dependencies_parsed_at":"2024-01-15T19:44:51.816Z","dependency_job_id":"feeba338-c9cb-487e-a9ea-16ed3562d26b","html_url":"https://github.com/bridge-codes/bridge","commit_stats":{"total_commits":151,"total_committers":6,"mean_commits":"25.166666666666668","dds":0.4635761589403974,"last_synced_commit":"143874ed89fe63936adae22495f6f00b62acda7f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridge-codes%2Fbridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridge-codes%2Fbridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridge-codes%2Fbridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridge-codes%2Fbridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bridge-codes","download_url":"https://codeload.github.com/bridge-codes/bridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254341618,"owners_count":22055081,"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":["api","express","expressjs","nodejs","rest-api","typesafe"],"created_at":"2024-08-09T19:01:44.479Z","updated_at":"2025-05-15T13:05:37.401Z","avatar_url":"https://github.com/bridge-codes.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://bridge.codes\"\u003e\n      \u003cimg src=\"https://bridge.codes/img/logo_b_round.svg\" height=\"120\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n  \n\u003cdiv align=\"center\"\u003e\n\n \u003ca href=\"https://twitter.com/bridge_codes\"\u003e\n    \u003cimg alt=\"Twitter\" src=\"https://img.shields.io/twitter/url.svg?label=%40bridge_codes\u0026style=social\u0026url=https%3A%2F%2Ftwitter.com%2Falexdotjs\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://discord.gg/yxjrwm7Bfr\"\u003e \n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/1050622016673288282?color=7389D8\u0026label\u0026logo=discord\u0026logoColor=ffffff\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/trpc/trpc/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"MIT License\" src=\"https://img.shields.io/github/license/trpc/trpc\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n# Bridge\n\nBridge is the most straightforward yet powerful framework for creating simple or complex APIs using the full power of TypeScript, even for developers with little experience. Give it a try and see how easy it is to build your dream API!\n\n\u003c!-- [Try it live](https://stackblitz.com/edit/github-vuwsnn?file=index.ts\u0026view=editor) --\u003e\n\n\u003c!-- **👉 See more informations on [bridge.codes](https://bridge.codes) 👈** --\u003e\n\n## Documentation\n\nFull documentation for `bridge` can be found [here](https://bridge.codes).\n\n## Installation\n\n```bash\n# npm\nnpm install bridge\n# Yarn\nyarn add bridge\n# pnpm\npnpm add bridge\n```\n\n## Quickstart\n\n```bash\n# npm\nnpx create-bridge-app@latest\n# Yarn\nyarn create bridge-app\n# pnpm\npnpm create bridge-app\n```\n\n## Basic Example\n\n```ts\nimport { initBridge, handler } from 'bridge';\nimport express from 'express';\n// You can also use Yup or Superstruct for data validation\nimport z from 'zod';\n\nconst port = 8080;\n\n// A handler can be used as an endpoint but also as a middleware\nconst heyHandler = handler({\n  query: z.object({ name: z.string() }),\n  resolve: ({ query }) =\u003e `Hey ${query.name}`,\n});\n\n// You can also have multiple endpoints for the same route with different methods with the method function\nconst routes = {\n  hey: heyHandler, // POST /hey\n};\n\n// It is also possible to use pure HTTP Server\nconst app = express();\n\napp.use('', initBridge({ routes }).expressMiddleware());\n\napp.listen(port, () =\u003e {\n  console.log(`Listening on port ${port}`);\n});\n```\n\nFor more complex examples and a full understanding of the capabilities of Bridge, be sure to check out our [documentation](https://bridge.codes)!\n\n## Client code generation and documentation\n\n\n### Connect your Bridge API to Bridge Studio\n\n**With the CLI**\n\n```bash title='terminal'\nnpx bridge-studio@latest\n# or\npnpx bridge-studio@latest\n```\n\n**With the plateform:** https://studio.bridge.codes\n\n\n### Fetch your client SDK\n\n```bash title='terminal'\nnpx fetch-bridge-sdk@latest {username}/{projectName}\n```\n\n\n### Access your generated documentation\n\nYou'll be able to access your complete generated documentation on https://studio.bridge.codes soon.\n\nPlease visit https://bridge.codes/studio for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbridge-codes%2Fbridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbridge-codes%2Fbridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbridge-codes%2Fbridge/lists"}