{"id":15011417,"url":"https://github.com/CodeDynasty-dev/JetPath","last_synced_at":"2025-04-12T03:31:14.800Z","repository":{"id":207021242,"uuid":"718124825","full_name":"CodeDynasty-dev/JetPath","owner":"CodeDynasty-dev","description":"JetPath 🚀 - Is the granular, fast and minimalist framework for Node, Deno and Bun. Embrace new standards!","archived":false,"fork":false,"pushed_at":"2025-04-10T11:04:43.000Z","size":2779,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T12:47:04.916Z","etag":null,"topics":["backend","bunjs","database","denojs","expressjs","javascript","nextjs","nodejs","server","server-side","ssr","streaming","web","websockets"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeDynasty-dev.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-13T12:40:13.000Z","updated_at":"2025-04-10T11:04:46.000Z","dependencies_parsed_at":"2023-11-28T11:28:06.457Z","dependency_job_id":"2a4adba2-d41e-4598-98eb-b0389c37cabd","html_url":"https://github.com/CodeDynasty-dev/JetPath","commit_stats":{"total_commits":291,"total_committers":1,"mean_commits":291.0,"dds":0.0,"last_synced_commit":"4ea6a91b88cfc820c203cb72952f968b7b9b86eb"},"previous_names":["fridaycandour/jetpath","uiedbook/jetpath","codedynasty-foo/jetpath","codedynasty-dev/jetpath"],"tags_count":119,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDynasty-dev%2FJetPath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDynasty-dev%2FJetPath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDynasty-dev%2FJetPath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeDynasty-dev%2FJetPath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeDynasty-dev","download_url":"https://codeload.github.com/CodeDynasty-dev/JetPath/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248470648,"owners_count":21109262,"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":["backend","bunjs","database","denojs","expressjs","javascript","nextjs","nodejs","server","server-side","ssr","streaming","web","websockets"],"created_at":"2024-09-24T19:41:04.334Z","updated_at":"2025-04-12T03:31:14.793Z","avatar_url":"https://github.com/CodeDynasty-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n     \u003cimg src=\"icon.webp\" alt=\"JetPath\" width=\"190\" height=\"190\"\u003e\n\n\u003ch1 align=\"center\"\u003eJetPath\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    JetPath 🚀 - the granular, fast and minimalist framework for Node, Deno and Bun. Embrace new standards!!!\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003ca href=\"https://github.com/uiedbook/JetPath#examples\"\u003e\u003cstrong\u003eExplore JetPath APIs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003ca href=\"https://t.me/uiedbookHQ\"\u003eJoin Community\u003c/a\u003e\n    .\n    \u003ca href=\"https://github.com/uiedbook/JetPath/issues\"\u003eReport Bug\u003c/a\u003e\n    .\n    \u003ca href=\"https://github.com/uiedbook/JetPath/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n![Contributors](https://img.shields.io/github/contributors/uiedbook/JetPath?color=dark-green)\n[![npm Version](https://img.shields.io/npm/v/jetpath.svg)](https://www.npmjs.com/package/JetPath)\n![Forks](https://img.shields.io/github/forks/uiedbook/JetPath?style=social)\n![Stargazers](https://img.shields.io/github/stars/uiedbook/JetPath?style=social)\n\n--\n\n## Latest version info\n\nIn this version, we added/tested these features on all runtimes.\n\n1. auto-generated api documentation UI (Jetpath UI).\n2. file uploads [check this example](tests/uploading-files.md)\n3. support for websockets [check this example](tests/websockets-usage.md).\n4. Jet Plugins.\n5. Robust schema validation\n\nIn this version (not this latest), multi-runtime support is no-longer based on\ncompatibility but pure engine api(s).\n\nWe Added Examples in the examples folder!\n\n- running Node index.js starts a Node instance for your app.\n- running Deno run index.ts starts a Deno instance for your app.\n- running Bun index.ts starts a Bun instance for your app.\n- looking into a plugins ecosystem.\n\nthis version we fixed issues with the inbuilt cors hook.\n\n- more speed, same size, more power.\n\n# Rationale\n\nJetPath is the Granular web framework aimed for speed and ease of use.\n\n[benchmark repo](https://github.com/FridayCandour/jetpath-benchmark)\n\n- JetPath now runs on the runtime you are using, bun or node or deno.\n- Function names as routing patterns (newest innovation you haven't seen\n  before).\n- Pre and Error request hooks.\n- Inbuilt Cors handlers hook.\n- Fast, Small and easy as peasy.\n- Inbuilt API auto doc functionality.\n\nJetPath is designed as a light, simple and but powerful, using the an intuitive\nroute as function name system. you can be able to design and manage your api(s)\nwith the smallest granularity possible.\n\nTrust me you have never written javascript app in this manner before and you should definitely check\nthis out.\n\n--\n\n## How JetPath works\n\nJetPath works by searching through the source folder and join up any defined\nhandlers and hooks that follows it's format in files named [anything].jet.js.\n\n## Requirements to use JetPath.\n\nJetPath support all web Javascript runtimes:\n\n- Nodejs.\n- Denojs.\n- Bunjs.\n\n## Installation\n\nInstall JetPath Right away on your project using npm or Javascript other package\nmanagers.\n\n```\nnpm i jetpath --save\n```\n\n#### An hello App setup\n\n```ts\n// in your src/index.jet.js\nimport { Context, JetFunc, JetPath } from \"./dist/index.js\";\n\nconst app = new JetPath({ APIdisplay: \"HTTP\" });\n\n//? listening for requests\napp.listen();\n\n// this goes to = get /\nexport const GET_: JetFunc = async function (ctx) {\n  ctx.send(\"hello world!\");\n};\n\n// this goes to = post /\nexport const POST_: JetFunc = async function (ctx) {\n  ctx.send(\"a simple post path!\");\n};\n\n// ? not implemented?\nconst payment: any = {};\n\n// this goes to = /api/v1/payment\nexport const POST_api_v1_payment: JetFunc\u003c{\n  body: {\n    name: string;\n    amount: number;\n    currency: \"BTC\" | \"ETH\" | \"XRP\" | \"LTC\";\n    address: string;\n  };\n}\u003e = async function (ctx) {\n  // ? http body to json\n  await ctx.json();\n\n  // ? http validate the body, or end the request with the error\n  const data = ctx.validate();\n\n  // ? process the request\n  await payment.process({\n    amount: data.amount,\n    address: data.address,\n    currency: data.currency,\n  });\n\n  // ? send response\n  ctx.send({ message: \"success\" });\n};\n\nPOST_api_v1_payment.body = {\n  name: { type: \"string\" },\n  amount: { type: \"number\", inputDefaultValue: 50 },\n  currency: { RegExp: /(BTC|ETH|XRP|LTC)/, inputDefaultValue: \"BTC\" },\n  address: {\n    err: \"Please provide a valid address\",\n    validator(address) {\n      // logic to validate address\n      return true;\n    },\n  },\n};\n\n// this goes to = /api/v1/payment/:paymentId\nexport const GET_api_v1_payment_status$paymentId: JetFunc\u003c\n  {},\n  { paymentId: string }\n\u003e = async function (ctx) {\n  // ? retrieve\n  const status = await payment.getStatusById(ctx.params.paymentId);\n  if (status === \"SUCCESS\") {\n    // ? send response\n    ctx.send({ message: \"success\" });\n  } else {\n    const id = setInterval(async () =\u003e {\n      const status = await payment.getStatusById(ctx.params.paymentId);\n      if (status === \"SUCCESS\") {\n        // ? clean up\n        clearInterval(id);\n        // ? send response\n        ctx.send({ message: \"success\" });\n      }\n    }, 1000);\n    //? ctx.eject() - allows any async operation to keep running while the function done executing, always call it last\n    ctx.eject();\n  }\n};\n```\n\n## Where's JetPath future gonna be like?\n\nWe have exhausted our Roadmap, let's me what your suggestions are!\n\nwe are currently working an integrated admin interface, let us know what you\nthink about that!!!\n\n## Apache 2.0 Licensed\n\nOpen sourced And Free.\n\nUiedbook is an open source community, the vision is to make the web better,\nimproving and innovating infrastructures for a better web experience.\n\nYou can [join](\"https://t.me/UiedbookHQ\") on telegram. Ask your questions and\ncontribute XD.\n\n### Contribution and License Agreement\n\nIf you contribute code to this project, you are implicitly allowing your code to\nbe distributed under the MIT license. You are also implicitly verifying that all\ncode is your original work.\n\n### Support\n\nYour contribution(s) is a good force for change anytime you do it, you can\nensure JetPath's continues growth and improvement by contributing a re-occurring\nor fixed donations to our Github sponsors.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeDynasty-dev%2FJetPath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCodeDynasty-dev%2FJetPath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCodeDynasty-dev%2FJetPath/lists"}