{"id":20174297,"url":"https://github.com/guiltydolphin/functionality","last_synced_at":"2025-07-05T20:38:43.446Z","repository":{"id":62422104,"uuid":"370120693","full_name":"GuiltyDolphin/functionality","owner":"GuiltyDolphin","description":"Functional programming for TypeScript","archived":false,"fork":false,"pushed_at":"2021-06-26T18:04:40.000Z","size":96,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T16:18:09.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GuiltyDolphin.png","metadata":{"files":{"readme":"README.org","changelog":"CHANGELOG.org","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-05-23T17:52:33.000Z","updated_at":"2021-09-03T20:16:23.000Z","dependencies_parsed_at":"2022-11-01T17:31:25.047Z","dependency_job_id":null,"html_url":"https://github.com/GuiltyDolphin/functionality","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuiltyDolphin%2Ffunctionality","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuiltyDolphin%2Ffunctionality/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuiltyDolphin%2Ffunctionality/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuiltyDolphin%2Ffunctionality/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GuiltyDolphin","download_url":"https://codeload.github.com/GuiltyDolphin/functionality/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241610996,"owners_count":19990507,"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":[],"created_at":"2024-11-14T01:42:13.667Z","updated_at":"2025-03-03T05:09:32.595Z","avatar_url":"https://github.com/GuiltyDolphin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: Functionality\n\n#+BEGIN_EXPORT html\n\u003ca href=\"https://doc.deno.land/https/deno.land/x/functionality/mod.ts\"\u003e\u003cimg src=\"https://doc.deno.land/badge.svg\" alt=\"deno doc\"\u003e\u003c/a\u003e\n#+END_EXPORT\n\nThis package provides utilities for functional programming\nwith TypeScript.\n\n* Documentation\n\nThe main entry point is [[./mod.ts][mod.ts]]. The full documentation is\navailable at [[https://doc.deno.land/https/deno.land/x/functionality/mod.ts][doc.deno.land]].\n\n- [[./src/array.ts][src/array.ts]]\n\n  Provides utilities for working with arrays.\n\n- [[./src/either.ts][src/either.ts]]\n\n  Provides the ~Either\u003cL, R\u003e~ type, which captures values that\n  can be /either/ an ~L~ or an ~R~. Can be used to model\n  failure when you want to provide more information than\n  ~Maybe~ can (e.g., ~Either\u003cstring, R\u003e~ could be used to\n  provide a descriptive ~string~ message about what went\n  wrong). Can also be used to model branching and\n  alternatives.\n\n- [[./src/function.ts][src/function.ts]]\n\n  Provides utilities for working with and manipulating\n  functions.\n\n- [[./src/functional.ts][src/functional.ts]]\n\n  Exports types and functions useful for general functional\n  programming, e.g., the ~Either~ and ~Maybe~ types.\n\n- [[./src/functor.ts][src/functor.ts]]\n\n  Defines the ~Functor~ interface, which describes types which\n  act like \"containers\" that can be mapped over, whilst\n  preserving the underlying \"container\" structure.\n\n- [[./src/generic.ts][src/generic.ts]]\n\n  Provides infrastructure for recording information about\n  types, such as how to apply type parameters to them. For\n  example, the ~Maybe~ type is registered in the ~Generic1\u003cT\u003e~\n  interface as ~'Maybe': Maybe\u003cT\u003e~, which enables a form of\n  \"partial type application\".\n\n- [[./src/maybe.ts][src/maybe.ts]]\n\n  Provides the ~Maybe\u003cT\u003e~ type, which captures the notion of\n  \"optional\" values. Can also be used to model results which\n  may fail, when you don't need to provide more information\n  about failure (if you do, then use ~Either~).\n\n- [[./src/monad.ts][src/monad.ts]]\n\n  Defines the ~Monad~ interface, which describes types that\n  can sequence computations in some computational\n  context. Useful for e.g., threading state.\n\n- [[./src/types.ts][src/types.ts]]\n\n  Provides various utility types and functions for working\n  with types.\n\n- [[./src/unwrap.ts][src/unwrap.ts]]\n\n  Provides the ~Unwrap~ interface, which describes types that\n  can be unwrapped to provide an inner value.\n\n* Development\n\n** Coverage\n\nTo generate code test coverage, make sure you have access to\nthe =genhtml= tool (e.g., via the [[https://aur.archlinux.org/packages/lcov/][lcov package on AUR]]), then\nrun =make coverage= in the top-level of the project.\n\n** Testing\n\nRun =make test= in the top-level of the project to run the\ntests. If you need to see results for tests that passed, run\n=make test_verbose= or =deno test= instead.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguiltydolphin%2Ffunctionality","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguiltydolphin%2Ffunctionality","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguiltydolphin%2Ffunctionality/lists"}