{"id":25526146,"url":"https://github.com/exbotanical/heuristics","last_synced_at":"2025-10-19T08:55:31.554Z","repository":{"id":39237743,"uuid":"419626580","full_name":"exbotanical/heuristics","owner":"exbotanical","description":"Useful heuristics, type checks, and validation helpers for JavaScript and TypeScript","archived":false,"fork":false,"pushed_at":"2023-06-01T11:58:07.000Z","size":2385,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-11T00:43:53.405Z","etag":null,"topics":["functional-programming","type-checking","utility-library","validation-library"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/heuristics","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/exbotanical.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-10-21T07:38:11.000Z","updated_at":"2022-01-02T04:12:21.000Z","dependencies_parsed_at":"2023-01-23T20:01:32.278Z","dependency_job_id":null,"html_url":"https://github.com/exbotanical/heuristics","commit_stats":null,"previous_names":["matthewzito/heuristics"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exbotanical%2Fheuristics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exbotanical%2Fheuristics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exbotanical%2Fheuristics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exbotanical%2Fheuristics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exbotanical","download_url":"https://codeload.github.com/exbotanical/heuristics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239735258,"owners_count":19688262,"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":["functional-programming","type-checking","utility-library","validation-library"],"created_at":"2025-02-19T21:16:50.372Z","updated_at":"2025-10-19T08:55:26.532Z","avatar_url":"https://github.com/exbotanical.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# heuristics\n\n## Useful heuristics, type checks, and validation helpers for JavaScript and TypeScript\n\n[![Continuous Deployment](https://github.com/MatthewZito/heuristics/actions/workflows/cd.yml/badge.svg)](https://github.com/MatthewZito/heuristics/actions/workflows/cd.yml)\n[![Continuous Integration](https://github.com/MatthewZito/heuristics/actions/workflows/ci.yml/badge.svg)](https://github.com/MatthewZito/heuristics/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/MatthewZito/heuristics/badge.svg?branch=master)](https://coveralls.io/github/MatthewZito/heuristics?branch=master)\n[![npm version](https://badge.fury.io/js/heuristics.svg)](https://badge.fury.io/js/heuristics)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n`heuristics` is a library of useful heuristics, type checks, and validation helpers for JavaScript and TypeScript. Instead of repeatedly validating types (here, we mean type guards, not annotations), evaluating whether or not an API response is null (or indeed an object, only entirely empty), you can depend on this tested, consistent library API to get the job done.\n\n![Exquisite GIF of Hagrid](assets/urawiz.gif \"the maintainer does not guarantee this will happen to you\")\n\n## Table of Contents\n\n- [Install](#install)\n  - [Supported Environments](#support)\n- [Documentation](#docs)\n\n\n## \u003ca name=\"install\"\u003e\u003c/a\u003e Installation\n\n```bash\nnpm install heuristics\n```\n\nOR\n\n```bash\nyarn add heuristics\n```\n\n### \u003ca name=\"support\"\u003e\u003c/a\u003e  Supported Environments\n\n`heuristics` currently supports UMD, CommonJS (node versions \u003e= 10), and ESM build-targets\n\nCommonjs:\n\n```js\nconst { isDefined } = require('heuristics');\n```\n\nESM:\n\n```js\nimport { isDefined } from 'heuristics';\n```\n\n## \u003ca name=\"docs\"\u003e\u003c/a\u003e Documentation\n\nFull documentation can be found [here](https://matthewzito.github.io/heuristics/heuristics.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexbotanical%2Fheuristics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexbotanical%2Fheuristics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexbotanical%2Fheuristics/lists"}