{"id":15296054,"url":"https://github.com/sodiray/exobase-js","last_synced_at":"2026-01-12T05:51:59.131Z","repository":{"id":62388344,"uuid":"434923275","full_name":"sodiray/exobase-js","owner":"sodiray","description":"A library that implements the Abstract \u0026 Compose design pattern, write you API or web service on any framework -- then switch.","archived":false,"fork":false,"pushed_at":"2024-07-08T10:08:47.000Z","size":30075,"stargazers_count":21,"open_issues_count":6,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-04T17:21:14.232Z","etag":null,"topics":["aws","express","gcp","lambda","nextjs","node"],"latest_commit_sha":null,"homepage":"exobase-js.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sodiray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-12-04T14:28:17.000Z","updated_at":"2025-08-15T06:54:48.000Z","dependencies_parsed_at":"2024-02-17T06:25:44.620Z","dependency_job_id":"8aa6a4fc-5537-4aaa-9318-a6cdea0af9e0","html_url":"https://github.com/sodiray/exobase-js","commit_stats":{"total_commits":292,"total_committers":2,"mean_commits":146.0,"dds":"0.23972602739726023","last_synced_commit":"a23b283740d63d5dbe86e3a930e797e10dc6a139"},"previous_names":["sodiray/exobase-js"],"tags_count":862,"template":false,"template_full_name":null,"purl":"pkg:github/sodiray/exobase-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodiray%2Fexobase-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodiray%2Fexobase-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodiray%2Fexobase-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodiray%2Fexobase-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sodiray","download_url":"https://codeload.github.com/sodiray/exobase-js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sodiray%2Fexobase-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28335473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["aws","express","gcp","lambda","nextjs","node"],"created_at":"2024-09-30T18:09:05.847Z","updated_at":"2026-01-12T05:51:59.115Z","avatar_url":"https://github.com/sodiray.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exobase\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/rayepps/exobase-js/blob/master/banner.png\" alt=\"radash\" width=\"100%\" style=\"border-radius:4px\" /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv\u003e\n  \u003ch3 align=\"center\"\u003e\n    Typescript Framework for Node Web Services \u0026amp; APIs\n    \u003cbr /\u003e\n    \u003ch4 align=\"center\"\u003e\n      \u003ca href=\"https://exobase-js.vercel.app\" target=\"_blank\"\u003e\n        Full Documentation\n      \u003c/a\u003e\n    \u003c/h4\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n## Install\n\nTo keep your dependencies lean, Exobase is split into seperate packages for each hook (learn about hooks [here](https://exobase-js.vercel.app/docs/core-concepts#hooks)) + a core package. To install, you have two options.\n\n1. Install everything. This is the easiest way to get started quickly.\n\n```sh\nyarn add @exobase/core @exobase/hooks\n```\n\n2. Only install what you need. If you only need the `useJsonArgs` and `useCors` hooks then only install those packages.\n\n```sh\nyarn add @exobase/use-json-args @exobase/use-cors\n```\n\nA lot of thought and effort is put into keeping the hooks small, minimal, and lean. The root hooks however typically depend on the framework libraries so you'll want to make sure you're only installing the specific ones you need.\n\n```sh\nyarn add @exobase/use-lambda\nyarn add @exobase/use-express\nyarn add @exobase/use-next\n```\n\n## Getting Started\n\nUsing our [Express example project](./examples/callback-api-express) you can have an API running in a few minutes. Here's a simple health check endpoint.\n\n```ts\nimport { compose } from 'radash'\nimport type { Props } from '@exobase/core'\nimport { useExpress } from '@exobase/use-express'\n\nexport const ping = async ({ args, services }: Props\u003cArgs, Services\u003e) =\u003e {\n  return {\n    message: 'pong'\n  }\n}\n\nexport default compose(useExpress(), ping)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsodiray%2Fexobase-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsodiray%2Fexobase-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsodiray%2Fexobase-js/lists"}