{"id":49011542,"url":"https://github.com/openfetch-js/openfetch-docs","last_synced_at":"2026-04-18T23:18:24.845Z","repository":{"id":350535671,"uuid":"1207259749","full_name":"openfetch-js/openfetch-docs","owner":"openfetch-js","description":"Official documentation for the @hamdymohamedak/OpenFetch ","archived":false,"fork":false,"pushed_at":"2026-04-18T21:28:37.000Z","size":332,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-18T22:10:19.593Z","etag":null,"topics":["api","docs","documentation","http-client","http-server","nodejs","website"],"latest_commit_sha":null,"homepage":"https://openfetch-js.github.io/openfetch-docs/","language":"Vue","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/openfetch-js.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-10T18:44:40.000Z","updated_at":"2026-04-18T21:28:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/openfetch-js/openfetch-docs","commit_stats":null,"previous_names":["openfetch-js/openfetch-docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/openfetch-js/openfetch-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfetch-js%2Fopenfetch-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfetch-js%2Fopenfetch-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfetch-js%2Fopenfetch-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfetch-js%2Fopenfetch-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfetch-js","download_url":"https://codeload.github.com/openfetch-js/openfetch-docs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfetch-js%2Fopenfetch-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31987977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","docs","documentation","http-client","http-server","nodejs","website"],"created_at":"2026-04-18T23:18:24.169Z","updated_at":"2026-04-18T23:18:24.823Z","avatar_url":"https://github.com/openfetch-js.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\".vitepress/Logo.jpg\" alt=\"openFetch official logo\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n# openFetch documentation\n\nMultilingual documentation for **`@hamdymohamedak/openfetch`** (fetch-only HTTP client: interceptors, middleware, retry, memory cache, RSC-friendly).\n\n- **Library (GitHub):** [github.com/openfetch-js/OpenFetch](https://github.com/openfetch-js/OpenFetch)  \n- **npm package:** [npmjs.com/package/@hamdymohamedak/openfetch](https://www.npmjs.com/package/@hamdymohamedak/openfetch)  \n\n**Local package source (optional):** `../openFetch` if you clone the monorepo sibling in this workspace.\n\n## Documentation website (VitePress)\n\nThis folder is a **[VitePress](https://vitepress.dev/)** site.\n\n- **Default language:** English at **`/`** (overview, guides, API reference pages).\n- **Language hub:** **`/languages/`** — links to every locale.\n- **Navbar:** **Guide** (getting started) and **Languages**; the **globe icon** (desktop) switches locale while keeping the same page when translations exist (`i18nRouting`).\n\n### Commands\n\n```bash\ncd openFetchDocs\nnpm install\nnpm run dev      # local dev server (default http://localhost:5173)\nnpm run build    # static output → .vitepress/dist\nnpm run preview  # serve the production build locally\n```\n\n### Deploying the static site\n\nAfter `npm run build`, upload **`.vitepress/dist`** to any static host (Netlify, Vercel, GitHub Pages, S3, etc.).\n\n**GitHub Pages URL** depends on who owns the repo (same `base: /openfetch-docs/` in both cases):\n\n- [openfetch-js.github.io/openfetch-docs/](https://openfetch-js.github.io/openfetch-docs/)\n- [hamdymohamedak.github.io/openfetch-docs/](https://hamdymohamedak.github.io/openfetch-docs/)\n\n`base` is **`/openfetch-docs/`** in [`.vitepress/config.mts`](./.vitepress/config.mts). For local dev open **`http://localhost:5173/openfetch-docs/`** (VitePress applies `base` there too).\n\n#### Unstyled site or raw `\u003cComparisonMatrix /\u003e` in the page?\n\nThat means **GitHub Pages is serving Jekyll from a branch**, not the VitePress artifact from Actions.\n\n1. Open **View Page Source** on the live URL. If you see  \n   `\u003cmeta name=\"generator\" content=\"Jekyll v3.10.0\" /\u003e`  \n   (and a single `assets/css/style.css` from GitHub’s theme), this repo is **not** deployed via the workflow below.\n\n**Fix (required once per repo):**\n\n1. **Settings → Pages → Build and deployment**.\n2. **Source:** select **GitHub Actions** (not “Deploy from a branch”).\n3. Run the workflow: push to `main`, or in **Actions → Deploy docs → Run workflow**.\n\nThe workflow [`.github/workflows/deploy-docs.yml`](./.github/workflows/deploy-docs.yml) uploads **`.vitepress/dist`**. After a successful run, a **new** deployment appears under **Settings → Pages** (deployed by `github-pages`).\n\nThe build output also includes **`public/.nojekyll`** in `dist` so static assets are not processed as Jekyll if you ever publish that folder manually.\n\nIf you move hosting to the **domain root**, change `base` to `\"/\"`.\n\n### Locales\n\n| Path prefix | Language | Notes |\n|-------------|----------|--------|\n| `/` | English (default) | Full guide set including HTTP methods \u0026 React/Vue |\n| `/ar/` | Arabic (العربية) | RTL · full parity with English sidebar |\n| `/es/` | Spanish | |\n| `/fa/` | Persian (Farsi) | RTL |\n| `/fr/` | French | |\n| `/hi/` | Hindi | |\n| `/it/` | Italian | |\n| `/ja/` | Japanese | |\n| `/kr/` | Korean | HTML `lang` is `ko` |\n| `/ku/` | Kurdish | |\n\n### Source layout (English at repo root)\n\n1. **`index.md`** — Overview  \n2. **`getting-started.md`** — Install, default client, `createClient`, middleware  \n3. **`http-methods.md`** — GET, POST, PUT, PATCH, DELETE, `request()`, bodies \u0026 params  \n4. **`framework-guides.md`** — React, RSC, Vue 3, SSR notes  \n5. **`configuration.md`** — `OpenFetchConfig`, merge rules, `unwrapResponse`  \n6. **`interceptors-middleware.md`** — Interceptors, `use()`, ordering  \n7. **`retry-cache.md`** — Retry middleware, memory cache, SWR  \n8. **`errors-security.md`** — `OpenFetchError`, `toShape`, `assertSafeHttpUrl`  \n9. **`languages/index.md`** — Landing page listing all locales  \n\nTranslated locales live under **`ar/`**, **`es/`**, etc. (same filenames where translated).\n\n### LLM / agent files\n\n- **`public/llms.txt`** — Copied to site root as **`/llms.txt`** when built (concise API + doc map).  \n- **`skills.md`** — Repo-only companion for AI tools (excluded from VitePress pages via `srcExclude`).\n\n### Package version\n\nThe docs site reads the displayed version from **`.vitepress/openfetch-version.ts`** (single source of truth for pages, hero “Ask ChatGPT / Claude” links, and generated `public/llms.txt`). Bump that file when you cut a release. For runtime behavior details and file-level architecture, see [**`docs/PROJECT_FLOW.md`**](https://github.com/openfetch-js/OpenFetch/blob/main/docs/PROJECT_FLOW.md) in the library repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfetch-js%2Fopenfetch-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfetch-js%2Fopenfetch-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfetch-js%2Fopenfetch-docs/lists"}