{"id":18488306,"url":"https://github.com/thefrontside/effection","last_synced_at":"2025-05-14T04:06:49.386Z","repository":{"id":37004448,"uuid":"155915287","full_name":"thefrontside/effection","owner":"thefrontside","description":"Structured concurrency and effects for JavaScript","archived":false,"fork":false,"pushed_at":"2025-05-06T18:17:49.000Z","size":12520,"stargazers_count":693,"open_issues_count":23,"forks_count":33,"subscribers_count":16,"default_branch":"v3","last_synced_at":"2025-05-06T18:47:51.225Z","etag":null,"topics":["algebraic-effects","async-await","concurrency","effects","effects-management","structured-concurrency","task-runner"],"latest_commit_sha":null,"homepage":"https://frontside.com/effection","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/thefrontside.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2018-11-02T19:56:47.000Z","updated_at":"2025-05-04T01:59:16.000Z","dependencies_parsed_at":"2023-10-04T22:34:25.994Z","dependency_job_id":"92e51661-3048-4840-a207-f24af61ad640","html_url":"https://github.com/thefrontside/effection","commit_stats":{"total_commits":1273,"total_committers":23,"mean_commits":55.34782608695652,"dds":0.6708562450903378,"last_synced_commit":"3127200abeb4d54908baaee40a25c98e81820514"},"previous_names":[],"tags_count":329,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thefrontside%2Feffection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thefrontside%2Feffection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thefrontside%2Feffection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thefrontside%2Feffection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thefrontside","download_url":"https://codeload.github.com/thefrontside/effection/tar.gz/refs/heads/v3","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254067618,"owners_count":22009223,"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":["algebraic-effects","async-await","concurrency","effects","effects-management","structured-concurrency","task-runner"],"created_at":"2024-11-06T12:51:32.526Z","updated_at":"2025-05-14T04:06:44.337Z","avatar_url":"https://github.com/thefrontside.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"[![npm](https://img.shields.io/npm/v/effection.svg)](https://www.npmjs.com/package/effection)\n[![bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/effection)](https://bundlephobia.com/result?p=effection)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Created by Frontside](https://img.shields.io/badge/created%20by-frontside-26abe8.svg)](https://frontside.com)\n[![Chat on Discord](https://img.shields.io/discord/700803887132704931?Label=Discord)](https://discord.gg/Ug5nWH8)\n\n# Effection\n\nStructured concurrency and effects for JavaScript.\n\n## Why use Effection?\n\nEffection leverages the idea of [structured concurrency][structured concurrency]\nto ensure that you don't leak any resources, effects, and that cancellation is\nalways properly handled. It helps you build concurrent code that feels rock\nsolid _at scale_, and it does all of this while feeling like normal JavaScript.\n\n[Learn how to use Effection in your own project](https://frontside.com/effection)\n\n## Platforms\n\nEffection runs on all major JavaScript platforms including NodeJs, Browser, and\nDeno. It is published on both [npm][npm-effection] and [deno.land][deno-land-effection].\n\n## Contributing to Website\n\nGo to [website's readme](www) to learn how to contribute to the website.\n\n## Development\n\n[Deno][] is the primary tool used for development, testing, and packaging.\n\n### Testing\n\nTo run tests:\n\n```text\n$ deno task test\n```\n\n### Building NPM Packages\n\nIf you want to build a development version of the NPM package so that you can\nlink it locally, you can use the `build:npm` script and passing it a version\nnumber. for example:\n\n``` text\n$ deno task build:npm 3.0.0-mydev-snapshot.0\nTask build:npm deno run -A tasks/build-npm.ts \"3.0.0-mydev-snapshot.0\"\n[dnt] Transforming...\n[dnt] Running npm install...\n\nup to date, audited 1 package in 162ms\n\nfound 0 vulnerabilities\n[dnt] Building project...\n[dnt] Emitting ESM package...\n[dnt] Emitting script package...\n[dnt] Complete!\n```\n\nNow, the built npm package can be found in the `build/npm` directory.\n\n[structured concurrency]: https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/\n[discord]: https://discord.gg/Ug5nWH8\n[Deno]: https://deno.land\n[npm-effection]: https://www.npmjs.com/package/effection\n[deno-land-effection]: https://deno.land/x/effection\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefrontside%2Feffection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthefrontside%2Feffection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthefrontside%2Feffection/lists"}