{"id":16293732,"url":"https://github.com/axetroy/deno_defer","last_synced_at":"2026-05-18T17:09:03.377Z","repository":{"id":145997403,"uuid":"175201010","full_name":"axetroy/deno_defer","owner":"axetroy","description":"Implement Golang's defer in Deno","archived":false,"fork":false,"pushed_at":"2019-06-26T06:59:56.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T11:13:53.736Z","etag":null,"topics":["deno"],"latest_commit_sha":null,"homepage":"","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/axetroy.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":"2019-03-12T11:55:08.000Z","updated_at":"2020-12-21T05:41:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba4fa629-1bbd-4059-8295-064200075d5a","html_url":"https://github.com/axetroy/deno_defer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/axetroy/deno_defer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axetroy%2Fdeno_defer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axetroy%2Fdeno_defer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axetroy%2Fdeno_defer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axetroy%2Fdeno_defer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axetroy","download_url":"https://codeload.github.com/axetroy/deno_defer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axetroy%2Fdeno_defer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264384313,"owners_count":23599611,"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":["deno"],"created_at":"2024-10-10T20:12:13.135Z","updated_at":"2026-05-18T17:08:58.356Z","avatar_url":"https://github.com/axetroy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/axetroy/deno-deferred.svg?branch=master)](https://travis-ci.com/axetroy/deno-deferred)\n\n### Implement Golang's defer in Deno\n\n### Use Scenes\n\n- Destroy resource.\n\n- Auto Commit or Rollback in Transaction.\n\n- Defer job to do.\n\n### Usage\n\nrun the example code with following command\n\n```bash\ndeno run https://github.com/axetroy/deno_defer/raw/master/example.ts\n```\n\n```typescript\nimport { deferred } from \"https://github.com/axetroy/deno_defer/raw/master/mod.ts\";\n\n(async () =\u003e {\n  const fn = deferred(async ({ defer }) =\u003e {\n    console.log(\"1. create database connection...\");\n\n    defer(async () =\u003e {\n      console.log(\"5. destroy database connection!\");\n    });\n\n    console.log(\"2. insert test data...\");\n\n    defer(async () =\u003e {\n      console.log(\"6. remove test data!\");\n    });\n\n    console.log(\"3. report to remote server...\");\n\n    defer(async () =\u003e {\n      console.log(\"7. close remote connection!\");\n    });\n\n    console.log(\"4. job done.\");\n  });\n\n  await fn();\n})();\n\n// 1. create database connection...\n// 2. insert test data...\n// 3. report to remote server...\n// 4. job done.\n// 5. close remote connection!\n// 6. remove test data!\n// 7. destroy database connection!\n// exit\n```\n\n## License\n\nThe [MIT License](https://github.com/axetroy/deno-defer/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxetroy%2Fdeno_defer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxetroy%2Fdeno_defer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxetroy%2Fdeno_defer/lists"}