{"id":32956844,"url":"https://github.com/ritesh404/kudojs","last_synced_at":"2025-11-16T16:02:17.271Z","repository":{"id":32475620,"uuid":"114736229","full_name":"ritesh404/kudojs","owner":"ritesh404","description":"A utility library to write code in functional programming style in Javascript","archived":false,"fork":false,"pushed_at":"2025-09-11T03:35:46.000Z","size":2171,"stargazers_count":23,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-20T04:52:15.599Z","etag":null,"topics":["applicative","composition","curry","functional-js","functional-programming","functor","javascript","library","monads","nodejs","typescript"],"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/ritesh404.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2017-12-19T07:59:58.000Z","updated_at":"2025-02-25T06:15:55.000Z","dependencies_parsed_at":"2024-01-02T23:42:41.928Z","dependency_job_id":"43716d47-016e-4e80-957c-7f6330d73b07","html_url":"https://github.com/ritesh404/kudojs","commit_stats":null,"previous_names":["blitzritz/kudojs","breezyboa/kudojs"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/ritesh404/kudojs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ritesh404%2Fkudojs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ritesh404%2Fkudojs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ritesh404%2Fkudojs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ritesh404%2Fkudojs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ritesh404","download_url":"https://codeload.github.com/ritesh404/kudojs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ritesh404%2Fkudojs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284734138,"owners_count":27054622,"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","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["applicative","composition","curry","functional-js","functional-programming","functor","javascript","library","monads","nodejs","typescript"],"created_at":"2025-11-12T23:00:20.489Z","updated_at":"2025-11-16T16:02:17.250Z","avatar_url":"https://github.com/ritesh404.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/7039911/35882138-2972170e-0ba9-11e8-8fcf-f96dfcb4d562.jpg\"\u003e\n\u003c/p\u003e\n\n[![npm (scoped)](https://img.shields.io/npm/v/fp-kudojs.svg)](https://www.npmjs.com/package/fp-kudojs)\n\n---\n\nKudoJS is a small utility library with a collection of popular Algebraic Data Types and Helper functions to help you write code in a functional programming style in Javascript.\n\n[KudoJS Documentation](https://ritesh404.github.io/kudojs/)\n\n### Installation\n\nInstall and save KudoJS as a dependency in your current project\n\n```\n$ npm install --save fp-kudojs\n```\n\n### Import using CommonJS\n\n```\nconst kudoJS = require(\"fp-kudojs\")\n```\n\n### Import using ES Modules\n\n```\nimport kudoJS from \"fp-kudojs\"\n```\n\n### Import single entities using CommonJS\n\n```\nconst compose = require(\"fp-kudojs/function/compose\");\nconst Maybe = require(\"fp-kudojs/adt/Maybe\");\n```\n\n### Import single entities using ES Modules\n\n```\nimport compose from \"fp-kudojs/function/compose\";\nimport Maybe from \"fp-kudojs/adt/Maybe\";\n```\n\n### Helper Functions\n\nThese are the functions under the `kudoJS.*` namespace\n\n- [`kudoJS.id`](docs/helper-functions.md#kudojsid)\n- [`kudoJS.once`](docs/helper-functions.md#kudojsonce)\n- [`kudoJS.curry`](docs/helper-functions.md#kudojscurry)\n- [`kudoJS.ocurry`](docs/helper-functions.md#kudojsocurry)\n- [`kudoJS.compose`](docs/helper-functions.md#kudojscompose)\n- [`kudoJS.constant`](docs/helper-functions.md#kudojsconstant)\n- [`kudoJS.fmap`](docs/helper-functions.md#kudojsfmap)\n- [`kudoJS.assoc`](docs/helper-functions.md#kudojsassoc)\n- [`kudoJS.bimap`](docs/helper-functions.md#kudojsbimap)\n- [`kudoJS.chain`](docs/helper-functions.md#kudojschain)\n- [`kudoJS.caseOf`](docs/helper-functions.md#kudojscaseof)\n- [`kudoJS.liftAn`](docs/helper-functions.md#kudojsliftan)\n- [`kudoJS.liftA2`](docs/helper-functions.md#kudojslifta2)\n- [`kudoJS.liftA3`](docs/helper-functions.md#kudojslifta3)\n- [`kudoJS.liftA4`](docs/helper-functions.md#kudojslifta4)\n- [`kudoJS.liftA5`](docs/helper-functions.md#kudojslifta5)\n- [`kudoJS.when`](docs/helper-functions.md#kudojswhen)\n- [`kudoJS.pick`](docs/helper-functions.md#kudojspick)\n- [`kudoJS.prop`](docs/helper-functions.md#kudojsprop)\n- [`kudoJS.eitherToMaybe`](docs/helper-functions.md#kudojseithertomaybe)\n- [`kudoJS.maybeToEither`](docs/helper-functions.md#kudojsmaybeToEither)\n\n---\n\n### Algebraic Data Types (ADTs)\n\nADTs under the kudoJS.\\* namespace. All of the data types are compatible with the [Fantasy Land Specifications](https://github.com/fantasyland/)\n\n- [`kudoJS.Identity`](docs/identity.md)\n- [`kudoJS.Pair`](docs/pair.md)\n- [`kudoJS.Maybe`](docs/maybe.md)\n- [`kudoJS.Either`](docs/either.md)\n- [`kudoJS.Task`](docs/task.md)\n- [`kudoJS.Reader`](docs/reader.md)\n- [`kudoJS.State`](docs/state.md)\n\n| ADT               |                          Constructors                          |           Static Methods           |                                                                                Instance Methods |\n| ----------------- | :------------------------------------------------------------: | :--------------------------------: | ----------------------------------------------------------------------------------------------: |\n| `kudoJS.Identity` |                        `Identity`, `of`                        |                                    |                                  `equals`, `concat`,`ap`, `getValue`, `map`,`chain`, `toString` |\n| `kudoJS.Pair`     |                          `Pair`, `of`                          |                                    | `equals`, `concat`, `fst`, `snd`, `ap`, `getValue`, `map`, `bimap`, `chain`, `swap`, `toString` |\n| `kudoJS.Maybe`    | `of`, `Just`, `Nothing`, `zero`, `fromNullable`, `withDefault` | `catMaybes`, `isNothing`, `isJust` |            `equals`, `ap`, `alt`, `map`, `chain`, `toString`, `getValue`, `isNothing`, `isJust` |\n| `kudoJS.Either`   |      `of`, `Left`, `Right`, `fromNullable`, `withDefault`      |     `try`, `isLeft`, `isRight`     |    `equals`, `ap`, `getValue`, `map`, `bimap`, `chain`, `swap`, `toString`, `isLeft`, `isRight` |\n| `kudoJS.Task`     |                    `Task`, `of`, `rejected`                    |                                    |                     `fork`, `concat`, `ap`, `getValue`, `map`, `chain`, `toPromise`, `toString` |\n| `kudoJS.Reader`   |                     `Reader`, `of`, `ask`                      |                                    |                                         `runWith`, `ap`, `getValue`, `map`, `chain`, `toString` |\n| `kudoJS.State`    |                  `State`, `of`, `get`, `put`                   |                                    |                 `runWith`, `execWith`, `evalWith`, `ap`, `getValue`, `map`, `chain`, `toString` |\n\n---\n\n### License\n\nAll code and documentation are (c) 2021 Ritesh Pillai and released under the MIT License. A copy of the MIT License [is also included](LICENSE.txt).\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Algebraic Data Types"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fritesh404%2Fkudojs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fritesh404%2Fkudojs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fritesh404%2Fkudojs/lists"}