{"id":13621398,"url":"https://github.com/cyclic-software/cyclic-sdk","last_synced_at":"2025-04-15T01:32:32.280Z","repository":{"id":47582293,"uuid":"392722458","full_name":"cyclic-software/cyclic-sdk","owner":"cyclic-software","description":"Cyclic.sh SDK to build APIs","archived":false,"fork":false,"pushed_at":"2021-08-23T11:16:14.000Z","size":911,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T21:56:36.879Z","etag":null,"topics":["cyclic","npm","sdk"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@cyclic.sh/sdk","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyclic-software.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}},"created_at":"2021-08-04T14:38:01.000Z","updated_at":"2022-06-16T07:05:29.000Z","dependencies_parsed_at":"2022-08-30T21:10:36.010Z","dependency_job_id":null,"html_url":"https://github.com/cyclic-software/cyclic-sdk","commit_stats":null,"previous_names":["cyclic-software/cyclic-api"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyclic-software%2Fcyclic-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyclic-software%2Fcyclic-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyclic-software%2Fcyclic-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyclic-software%2Fcyclic-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyclic-software","download_url":"https://codeload.github.com/cyclic-software/cyclic-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989338,"owners_count":21194575,"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":["cyclic","npm","sdk"],"created_at":"2024-08-01T21:01:05.609Z","updated_at":"2025-04-15T01:32:31.967Z","avatar_url":"https://github.com/cyclic-software.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# @cyclic.sh/sdk\n\nCyclic api framework. Build vanilla javascript APIs without the headache.\n\n## Quick Start\n\nRun the following:\n\n```sh\nnpm install @cyclic.sh/sdk\n\necho \"const sdk = require('@cyclic.sh/sdk')\" \u003e\u003e server.js\n\nmkdir api\necho \"module.exports.all = async (req,res) =\u003e {\n  console.log(req.body)\n  res.set('Content-Type','application/json')\n  res.body = {headers: req.headers, params: req.params, env: process.env}\n}\" \u003e api/index.js\nnpx cy\n```\nYou now have a running API running on port 3000\n\n`curl -i -XGET http://localhost:3000`\n\n## API Routes\n\nCyclic uses path based routing to find the right handler. Then resolves the handler method based on HTTP method.\n\n```text\n.\n├── api\n│   ├── index.js     \u003c- responds to: /\n│   ├── pets.js      \u003c- responds to: /pets\n│   └── pets\n│       ├── index.js \u003c- responds to: /pets/\n│       └── :id.js   \u003c- responds to: /pets/${id}\n├── package-lock.json\n├── package.json\n└── server.js\n```\n\n## Handler Methods\n\nHere is the logic cyclic uses to find a handler method:\n\n```javascript\n  const method = req.method.toLowerCase();\n  let func = handler[method];\n  if (!func) {\n    if (handler.all) {\n      func = handler.all;\n    } else {\n      throw new Error(`Found handler but it is missing the requested method [${method}] or 'all'`);\n    }\n  }\n```\n\n## Installing\n\n`npm install @cyclic.sh/sdk`\n\n\n## For those developing this module\n\n### Building\n\n`npm install`\n\n### Publishing\n\n```\nnpm version [feature|minor|patch]\ngit push\ngit push --tags\nnpm publish --access=public\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyclic-software%2Fcyclic-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyclic-software%2Fcyclic-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyclic-software%2Fcyclic-sdk/lists"}