{"id":19478881,"url":"https://github.com/xan105/node-is","last_synced_at":"2026-04-18T01:37:22.450Z","repository":{"id":41809266,"uuid":"229055817","full_name":"xan105/node-is","owner":"xan105","description":"Collection of various checks for asserting types and values at runtime","archived":false,"fork":false,"pushed_at":"2024-10-29T03:19:16.000Z","size":1809,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T18:51:18.967Z","etag":null,"topics":["as","assert","check","is","nodejs","should","types"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/xan105.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"xan105","custom":"https://www.paypal.me/xan105","patreon":"xan105"}},"created_at":"2019-12-19T13:03:08.000Z","updated_at":"2024-10-29T03:19:19.000Z","dependencies_parsed_at":"2023-02-07T04:00:38.156Z","dependency_job_id":"90be86af-419d-485b-80a3-a825a880f672","html_url":"https://github.com/xan105/node-is","commit_stats":null,"previous_names":["xan105/node-is64bit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xan105/node-is","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan105%2Fnode-is","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan105%2Fnode-is/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan105%2Fnode-is/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan105%2Fnode-is/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xan105","download_url":"https://codeload.github.com/xan105/node-is/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xan105%2Fnode-is/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["as","assert","check","is","nodejs","should","types"],"created_at":"2024-11-10T19:51:54.657Z","updated_at":"2026-04-18T01:37:22.430Z","avatar_url":"https://github.com/xan105.png","language":"JavaScript","funding_links":["https://github.com/sponsors/xan105","https://www.paypal.me/xan105","https://patreon.com/xan105"],"categories":[],"sub_categories":[],"readme":"About\n=====\n\nCollection of various checks for asserting types and values at runtime.\n\n📦 Scoped `@xan105` packages are for my own personal use but feel free to use them.\n\nExample\n=======\n\nCheck Windows/Linux 64-bit/32-bit executable\n```js\nimport { is64bit, is32bit } from \"@xan105/is\";\nconst is64 = await is64bit(\"path/to/executable\");\nconst is32 = await is32bit(\"path/to/executable\");\n```\n\nCheck is PNG file\n```js\nimport { isPNG } from \"@xan105/is\";\nconst is = await isPNG(\"path/to/img\");\n```\n\nCheck winver\n```js\nimport * as check from \"@xan105/is\";\ncheck.isWin10orGreater();\ncheck.isWin11();\ncheck.isWindows();\ncheck.isWin64(); //64-bits\n//etc...\n```\n\nCheck Linux\n```js\nimport * as check from \"@xan105/is\";\ncheck.isDebian();\ncheck.isDebianLike(); //Debian + derivatives (eg: Ubuntu)\ncheck.isGnome();\ncheck.isWayland();\n```\n\nCheck type\n```js\nimport * as check from \"@xan105/is\";\n\ncheck.isStringNotEmpty(\"hello world\");\ncheck.isIntegerWithinRange(1,0,2);\ncheck.isArrayOfString([\"a\",\"b\"]);\n//etc...\n```\n\nCheck Object like\n```js\nimport { isObjLike, isString, isNumber } from \"@xan105/is\";\n\nconst family = {\n  name: \"Xan\",\n  age: 26,\n  child: {\n    name: \"Xanette\",\n    age: 15\n  }\n};\n\nisObjLike(family,{\n  name: isString,\n  age: isNumber,\n  child: {\n    name: isString,\n    age: isNumber\n  }\n});\n```\n\n### Assertion\n_Perform the same check but throw an error instead._\n\n```js\nimport { shouldWin10orGreater } from \"@xan105/is/assert\";\nshouldWin10orGreater();\n```\n\n```js\nimport { assert } from \"@xan105/is\";\n\nassert.shouldStringNotEmpty(\"hello world\");\nassert.shouldIntegerWithinRange(1,0,2, \"Custom error message\");\nassert.shouldArrayOfString([\"a\",\"b\"], new Error(\"custom error\", { cause: err }));\n//etc...\n```\n\n### Opt\n_Return the given value when the condition is true otherwise null._\n\n```js\nimport { asString, asInteger } from \"@xan105/is/opt\";\n\nfunction(option = {}){\n  const options = {\n    param1: asString(option.param1) || \"hello world\",\n    param2: asInteger(option.param2) ?? 0\n  };\n}\n```\n\nInstall / Runtime\n=================\n\n### 📦 Package manager\n\n```\nnpm install @xan105/is\n```\n\n\u003cdetails\u003e\u003csummary\u003eCompatibility\u003c/summary\u003e\n\n- Node ✔️\n\n\u003c/details\u003e\n\n### 🌐 CDN / HTTPS Bundle\n\n```\nimport ... from \"https://esm.sh/@xan105/is\"\n```\n\nPlease see https://esm.sh/ for more details.\n\nAPI\n===\n\n⚠️ This module is only available as an ECMAScript module (ESM)\u003cbr /\u003e\n\n💡 `assert` and `opt` are under their respective namespace.\n```js\nimport { assert } from \"@xan105/is\";\nassert.shouldWin10orGreater();\n\nimport { shouldWin10orGreater } from \"@xan105/is/assert\";\nshouldWin10orGreater();\n```\n\n## Named export\n\n\u003cdetails\u003e\u003csummary\u003ebinary\u003c/summary\u003e\n  \n#### `is64bit(filePath: string): Promise\u003cboolean\u003e`\n\nCheck if it's a 64-bits (x86_64) Windows or Linux binary.\u003cbr /\u003e\n\n#### `is32bit(filePath: string): Promise\u003cboolean\u003e`\n\nSame as above but for a 32-bits (x86) Windows or Linux binary.\n\n#### `isPNG(filePath: string): Promise\u003cboolean\u003e`\n#### `isJPG(filePath: string): Promise\u003cboolean\u003e`\n#### `isICO(filePath: string): Promise\u003cboolean\u003e`\n#### `isGIF(filePath: string): Promise\u003cboolean\u003e`\n#### `isWEBP(filePath: string): Promise\u003cboolean\u003e`\n#### `isQOI(filePath: string): Promise\u003cboolean\u003e`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: array\u003c/summary\u003e\n\n#### `isArray(value: unknown): boolean`\n#### `isArrayNotEmpty(value: unknown): boolean`\n#### `isArrayOfString(value: unknown): boolean`\n#### `isSizeArrayOfString(value: unknown, length: number): boolean`\n#### `isArrayOfStringNotEmpty(value: unknown): boolean`\n#### `isSizeArrayOfStringNotEmpty(value: unknown, length: number): boolean`\n#### `isArrayOfNumber(value: unknown): boolean`\n#### `isArrayOfStringLike(value: unknown, pattern: RegExp | string): boolean`\n#### `isSizeArrayOfStringLike(value: unknown, length: number, pattern: RegExp | string): boolean`\n#### `isSizeArrayOfNumber(value: unknown, length: number): boolean`\n#### `isArrayOfNumberWithinRange(value: unknown, min: number, max: number): boolean`\n#### `isSizeArrayOfNumberWithinRange(value: unknown, length: number, min: number, max: number): boolean`\n#### `isArrayOfInteger(value: unknown): boolean`\n#### `isSizeArrayOfInteger(value: unknown, length: number): boolean`\n#### `isArrayOfIntegerPositive(value: unknown): boolean`\n#### `isSizeArrayOfIntegerPositive(value: unknown, length: number): boolean`\n#### `isArrayOfIntegerPositiveOrZero(value: unknown): boolean`\n#### `isSizeArrayOfIntegerPositiveOrZero(value: unknown, length: number): boolean`\n#### `isArrayOfIntegerWithinRange(value: unknown, min: number, max: number): boolean`\n#### `isSizeArrayOfIntegerWithinRange(value: unknown, length: number, min: number, max: number): boolean`\n#### `isArrayOfObj(value: unknown): boolean`\n#### `isSizeArrayOfObj(value: unknown, length: number): boolean`\n#### `isArrayOfObjWithProperties(value: unknown, prop: string[]): boolean`\n#### `isSizeArrayOfObjWithProperties(value: unknown, length: number, prop: string[]): boolean`\n#### `isArrayOfObjLike(value: unknown, schema: object): boolean`\n#### `isArrayOfSomeObjLike(value: unknown, schema: object): boolean`\n\nSame as `isArrayOfObjLike()` but at least **one element** in the array must pass the test instead of **all**\n\n#### `isSizeArrayOfObjLike(value: unknown, length: number, schema: object): boolean`\n#### `isArrayOfUint8Array(value: unknown): boolean`\n\nalias: `isArrayOfBuffer(value: unknown): boolean`\n\n#### `isSizeArrayOfUint8Array(value: unknown, length: number): boolean`\n\nalias: `isSizeArrayOfBuffer`\n\n\u003c/details\u003e  \n\n\u003cdetails\u003e\u003csummary\u003etype: number\u003c/summary\u003e\n  \n#### `isBigInt(value: unknown): boolean`\n#### `isBigIntPositive(value: unknown): boolean`\n#### `isBigIntPositiveOrZero(value: unknown): boolean`\n#### `isBigIntWithinRange(value: unknown, min: bigint, max: bigint): boolean`\n#### `isInteger(value: unknown): boolean`\n#### `isIntegerPositive(value: unknown): boolean`\n#### `isIntegerPositiveOrZero(value: unknown): boolean`\n#### `isIntegerWithinRange(value: unknown, min: number, max: number): boolean`\n#### `isNumber(value: unknown): boolean`\n#### `isNumberWithinRange(value: unknown, min: number, max: number): boolean`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: object\u003c/summary\u003e\n\n#### `isObj(value: unknown): boolean`\n\nas in a \"plain obj\" and not a JS obj so {}, new Object() and Object.create(null).\n\n#### `isObjNotEmpty(value: unknown): boolean`\n#### `isObjWithProperties(value: unknown, prop: string[]): boolean`\n#### `isObjLike(value: unknown, schema: object): boolean`\n\nCheck if an obj is like the specified schema.\u003cbr/\u003e\nWhere schema is an obj containing a set of required property name and its corresponding _check_ function.\u003cbr/\u003e\nIf the obj has these properties and they are validated by said corresponding function then this will return true otherwise false. \n\n\u003cdetails\u003e\u003csummary\u003eExample:\u003c/summary\u003e\n\n```js\nconst family = {\n  name: \"Xan\",\n  age: 26,\n  child: {\n    name: \"Xanette\",\n    age: 15,\n    height: 164,\n    weight: 42\n  }\n};\n\nisObjLike(family,{\n  name: isString,\n  age: isNumber,\n  child: {\n    name: isStringNotEmpty,\n    age: [ isIntegerWithinRange, [0,100] ],\n    height: isNumber,\n    weight: [ isNumber, [] ]\n  }\n});\n```\n\n\u003c/details\u003e\n\nThe check funtion should only return a **boolean**.\u003cbr/\u003e\n**Otherwise** or if the function throws then **false** will be assumed.\u003cbr/\u003e\n_NB: Function that use [@xan105/error](https://github.com/xan105/node-error) will bypass this and still throw (this is by design)._\n\nThe check funtion should be defined as follow: `something: [function, [args,...] ]`\u003cbr/\u003e\nIf you don't have any args then an empty array: `something: [function, [] ]`\u003cbr/\u003e\nOr you can pass the function as is (shortcut): `something: function`\u003cbr/\u003e\nNote that `something: [function]` is invalid !\n\n💡 You can flag a property to be _optional_ by using `{optional: true}`.\u003cbr/\u003e\nIf the property is missing it will be skipped.\u003cbr/\u003e\neg: `something: [function, [], {optional: true}]`\n\n#### `isObjWithinObj(value: unknown): boolean`\n\nPlain object assigned as property within another:\n\n```js\n{\n  foo: {\n    bar: \"foo\"\n  },\n  bar: {\n    foo: \"bar\"\n  }\n}\n```\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: string\u003c/summary\u003e\n  \n#### `isString(value: unknown): boolean`\n#### `isStringNotEmpty(value: unknown): boolean`\n#### `isStringLike(value: unknown, pattern: RegExp | string): boolean`\n\nIf pattern is a string, this function will look for a corresponding known regex pattern.\n\nAs of this writing, these are:\n\n  - `hex`: Hexadecimal\n  - `SRI`: [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)\n\n#### `isHexString(value: unknown): boolean`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: other\u003c/summary\u003e\n  \n#### `isBoolean(value: unknown): boolean`  \n#### `isUint8Array(value: unknown): boolean`\n\nalias: `isBuffer(value: unknown): boolean`\n\n#### `isError(value: unknown): boolean`\n#### `isRegExp(value: unknown): boolean`\n#### `isPromise(value: unknown): boolean`\n#### `isFunction(value: unknown): boolean`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eos: Windows\u003c/summary\u003e\n\n#### `isWindows(): boolean`\n#### `isWindowsX86(): boolean`\n\nalias: `isWin32(): boolean`\n\n#### `isWindowsX64(): boolean`\n\nalias: `isWin64(): boolean`\n\n#### `isWin11orGreater(): boolean`\n#### `isWin10orGreater(): boolean`\n#### `isWin8orGreater(): boolean`\n#### `isWin7orGreater(): boolean`\n#### `isWin11orLesser(): boolean`\n#### `isWin10orLesser(): boolean`\n#### `isWin8orLesser(): boolean`\n#### `isWin7orLesser(): boolean`\n#### `isWin11(): boolean`\n#### `isWin10(): boolean`\n#### `isWin8(): boolean`\n#### `isWin7(): boolean`\n  \n\u003c/details\u003e\n  \n\u003cdetails\u003e\u003csummary\u003eos: Linux\u003c/summary\u003e\n  \n#### `isLinux(): boolean`\n#### `isArch(): Promise\u003cboolean\u003e`\n#### `isArchLike(): Promise\u003cboolean\u003e`\n#### `isManjaro(): Promise\u003cboolean\u003e`\n#### `isDebian(): Promise\u003cboolean\u003e`\n#### `isDebianLike(): Promise\u003cboolean\u003e`\n#### `isUbuntu(): Promise\u003cboolean\u003e`\n#### `isUbuntuLike(): Promise\u003cboolean\u003e`\n#### `isMint(): Promise\u003cboolean\u003e`\n#### `isPopOS(): Promise\u003cboolean\u003e`\n#### `isElementaryOS(): Promise\u003cboolean\u003e`\n#### `isDeepin(): Promise\u003cboolean\u003e`\n#### `isRaspberryPiOS(): Promise\u003cboolean\u003e`\n\nalias: `isRaspbian(): Promise\u003cboolean\u003e`\n\n#### `isFedora(): Promise\u003cboolean\u003e`\n#### `isFedoraLike(): Promise\u003cboolean\u003e`\n#### `isOpenSUSE(): Promise\u003cboolean\u003e`\n#### `isSlackware(): Promise\u003cboolean\u003e`\n#### `isGentoo(): Promise\u003cboolean\u003e`\n\n#### `isGnome(): boolean`\n#### `isKDE(): boolean`\n#### `isXFCE(): boolean`\n#### `isMate(): boolean`\n#### `isCinnamon(): boolean`\n\n#### `isWayland(): boolean`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003emisc\u003c/summary\u003e\n  \n#### `isIP(value: string): boolean`\n#### `isIPv4(value: string): boolean`\n#### `isIPv6(value: string): boolean`\n#### `isDeno(): boolean`\n#### `isNode(): boolean`\n#### `isBrowser(): boolean`\n  \n\u003c/details\u003e\n  \n### assert\n\n_Perform the same checks as above but throw an error instead._\u003cbr/\u003e\n_This replace the cumbersome and often repetitive \"if(unexpected) throw Error\" pattern_.\n\n💡 Every assertion has an optional `error` parameter to override the default Error.\u003cbr/\u003e\nYou can either use\n  \n- an instance of/inherit from the `Error` class \n- or a string to just change the default message.\n\neg: \n  \n```js\nassert.shouldIntegerWithinRange(1,0,2, \"Custom error message\");\nassert.shouldArrayOfString([\"a\",\"b\"], new Error(\"custom error\", { cause: err }));\n```\n  \n\u003cdetails\u003e\u003csummary\u003ebinary\u003c/summary\u003e\n  \n#### `should64bit (filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `should32bit (filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldPNG(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldJPG(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldICO(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldGIF(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldWEBP(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldQOI(filePath: string, error?: Error | string): Promise\u003cvoid\u003e`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: array\u003c/summary\u003e\n  \n#### `shouldArray(value: unknown, error?: Error | string): void`\n#### `shouldArrayNotEmpty(value: unknown, error?: Error | string): void`\n#### `shouldArrayOfString(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfString(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfStringNotEmpty(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfStringNotEmpty(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfStringLike(value: unknown, pattern: RegExp | string, error?: Error | string | null): void`\n#### `shouldSizeArrayOfStringLike(value: unknown, length: number, pattern: RegExp | string, error?: Error | string | null): void`\n#### `shouldArrayOfNumber(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfNumber(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfNumberWithinRange(value: unknown, min: number, max: number, error?: Error | string): void`\n#### `shouldSizeArrayOfNumberWithinRange(value: unknown, length: number, min: number, max: number, error?: Error | string): void`\n#### `shouldArrayOfInteger(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfInteger(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfIntegerPositive(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfIntegerPositive(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfIntegerPositiveOrZero(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfIntegerPositiveOrZero(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfIntegerWithinRange(value: unknown, min: number, max: number, error?: Error | string): void`\n#### `shouldSizeArrayOfIntegerWithinRange(value: unknown, length: number, min: number, max: number, error?: Error | string): void`\n#### `shouldArrayOfObj(value: unknown, error?: Error | string): void`\n#### `shouldSizeArrayOfObj(value: unknown, length: number, error?: Error | string): void`\n#### `shouldArrayOfObjWithProperties(value: unknown, prop: string[], error?: Error | string): void`\n#### `shouldSizeArrayOfObjWithProperties(value: unknown, length: number, prop: string[], error?: Error | string): void`\n#### `shouldArrayOfObjLike(value: unknown, schema: object, error?: Error | string): void`\n#### `shouldArrayOfSomeObjLike(value: unknown, schema: object, error?: Error | string): void`\n#### `shouldSizeArrayOfObjLike(value: unknown, length: number, schema: object, error?: Error | string): void`\n\n#### `shouldArrayOfUint8Array(value: unknown, error?: Error | string): void`\n\nalias: `shouldArrayOfBuffer(value: unknown, error?: Error | string): void`\n\n#### `shouldSizeArrayOfUint8Array(value: unknown, length: number, error?: Error | string): void`\n\nalias: `shouldSizeArrayOfBuffer(value: unknown, length: number, error?: Error | string): void`\n  \n\u003c/details\u003e\n \n\u003cdetails\u003e\u003csummary\u003etype: number\u003c/summary\u003e\n\n#### `shouldBigInt(value: unknown, error?: Error | string): void`\n#### `shouldBigIntPositive(value: unknown, error?: Error | string): void`\n#### `shouldBigIntPositiveOrZero(value: unknown, error?: Error | string): void`\n#### `shouldBigIntWithinRange(value: unknown, min: bigint, max: bigint, error?: Error | string): void`\n#### `shouldInteger(value: unknown, error?: Error | string): void`\n#### `shouldIntegerPositive(value: unknown, error?: Error | string): void`\n#### `shouldIntegerPositiveOrZero(value: unknown, error?: Error | string): void`\n#### `shouldIntegerWithinRange(value: unknown, min: number, max: number, error?: Error | string): void`\n#### `shouldNumber(value: unknown, error?: Error | string): void`\n#### `shouldNumberWithinRange(value: unknown, min: number, max: number, error?: Error | string): void`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: object\u003c/summary\u003e\n\n#### `shouldObj(value: unknown, error?: Error | string): void`\n#### `shouldObjNotEmpty(value: unknown, error?: Error | string): void`\n#### `shouldObjWithProperties(value: unknown, prop: string[], error?: Error | string): void`\n#### `shouldObjLike(value: unknown, schema: object, error?: Error | string): void`\n#### `shouldObjWithinObj(value: unknown, error?: Error | string | null): void`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: string\u003c/summary\u003e\n\n#### `shouldString(value: unknown, error?: Error | string): void`\n#### `shouldStringNotEmpty(value: unknown, error?: Error | string): void`\n#### `shouldStringLike(value: unknown, pattern: RegExp | string, error?: Error | string | null): void`\n#### `shouldHexString(value: unknown, error?: Error | string): void`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: other\u003c/summary\u003e\n  \n#### `shouldBoolean(value: unknown, error?: Error | string): void`\n#### `shouldUint8Array(value: unknown, error?: Error | string): void`\n\nalias: #### `shouldBuffer(value: unknown, error?: Error | string): void`\n\n#### `shouldError(value: unknown, error?: Error | string): void`\n#### `shouldRegExp(value: unknown, error?: Error | string): void`\n#### `shouldPromise(value: unknown, error?: Error | string | null): void`\n#### `shouldFunction(value: unknown, error?: Error | string | null): void`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eos: Windows\u003c/summary\u003e\n  \n#### `shouldWindows(error?: Error | string): void`\n#### `shouldWindowsX86(error?: Error | string): void`\n\nalias: `shouldWin32(error?: Error | string): void`\n\n#### `shouldWindowsX64(error?: Error | string): void`\n\nalias: `shouldWin64(error?: Error | string): void`\n\n#### `shouldWin11orGreater(error?: Error | string): void`\n#### `shouldWin10orGreater(error?: Error | string): void`\n#### `shouldWin8orGreater(error?: Error | string): void`\n#### `shouldWin7orGreater(error?: Error | string): void`\n#### `shouldWin11orLesser(error?: Error | string): void`\n#### `shouldWin10orLesser(error?: Error | string): void`\n#### `shouldWin8orLesser(error?: Error | string): void`\n#### `shouldWin7orLesser(error?: Error | string): void`\n#### `shouldWin11(error?: Error | string): void`\n#### `shouldWin10(error?: Error | string): void`\n#### `shouldWin8(error?: Error | string): void`\n#### `shouldWin7(error?: Error | string): void`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eos: Linux\u003c/summary\u003e\n\n#### `shouldLinux(error?: Error | string): void`\n#### `shouldArch(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldArchLike(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldManjaro(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldDebian(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldDebianLike(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldUbuntu(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldUbuntuLike(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldMint(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldPopOS(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldElementaryOS(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldDeepin(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldRaspberryPiOS(error?: Error | string): Promise\u003cvoid\u003e`\n\nalias: `shouldRaspbian(error?: Error | string): Promise\u003cvoid\u003e`\n\n#### `shouldFedora(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldFedoraLike(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldOpenSUSE(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldSlackware(error?: Error | string): Promise\u003cvoid\u003e`\n#### `shouldGentoo(error?: Error | string): Promise\u003cvoid\u003e`\n\n#### `shouldGnome(error?: Error | string): void`\n#### `shouldKDE(error?: Error | string): void`\n#### `shouldXFCE(error?: Error | string): void`\n#### `shouldMate(error?: Error | string): void`\n#### `shouldCinnamon(error?: Error | string): void`\n\n#### `shouldWayland(error?: Error | string): void`\n  \n\u003c/details\u003e\n  \n\u003cdetails\u003e\u003csummary\u003emisc\u003c/summary\u003e\n\n#### `shouldIP(value: string, error?: Error | string): void`\n#### `shouldIPv4(value: string, error?: Error | string): void`\n#### `shouldIPv6(value: string, error?: Error | string): void`\n#### `shouldDeno(error?: Error | string): boolean`\n#### `shouldNode(error?: Error | string): boolean`\n#### `shouldBrowser(error?: Error | string): boolean`\n  \n\u003c/details\u003e\n  \n### opt\n\n_Return the given value when the condition is true otherwise null._\u003cbr/\u003e\n_Works great with operator such as `||` and `??`_\n\neg:\n```js\nfunction(option = {}){\n  const options = {\n    param1: asString(option.param1) || \"hello world\",\n    param2: asInteger(option.param2) ?? 0\n  };\n}\n```\n  \n\u003cdetails\u003e\u003csummary\u003etype: array\u003c/summary\u003e\n  \n#### `asArray(value: unknown): [] | null`\n#### `asArrayNotEmpty(value: unknown): [] | null`\n#### `asArrayOfString(value: unknown): string[] | null`\n#### `asSizeArrayOfString(value: unknown, length: number): string[] | null`\n#### `asArrayOfStringNotEmpty(value: unknown): string[] | null`\n#### `asSizeArrayOfStringNotEmpty(value: unknown, length: number): string[] | null`\n#### `asArrayOfStringLike(value: unknown, pattern: RegExp | string): string[] | null;\n#### `asSizeArrayOfStringLike(value: unknown, length: number, pattern: RegExp | string): string[] | null;\n#### `asArrayOfNumber(value: unknown): number[] | null`\n#### `asSizeArrayOfNumber(value: unknown, length: number): number[] | null`\n#### `asArrayOfNumberWithinRange(value: unknown, min: number, max: number): number[] | null`\n#### `asSizeArrayOfNumberWithinRange(value: unknown, length: number, min: number, max: number): number[] | null`\n#### `asArrayOfInteger(value: unknown): number[] | null`\n#### `asSizeArrayOfInteger(value: unknown, length: number): number[] | null`\n#### `asArrayOfIntegerPositive(value: unknown): number[] | null`\n#### `asSizeArrayOfIntegerPositive(value: unknown, length: number): number[] | null`\n#### `asArrayOfIntegerPositiveOrZero(value: unknown): number[] | null`\n#### `asSizeArrayOfIntegerPositiveOrZero(value: unknown, length: number): number[] | null`\n#### `asArrayOfIntegerWithinRange(value: unknown, min: number, max: number): number[] | null`\n#### `asSizeArrayOfIntegerWithinRange(value: unknown, length: number, min: number, max: number): number[] | null`\n#### `asArrayOfObj(value: unknown): object[] | null`\n#### `asSizeArrayOfObj(value: unknown, length: number): object[] | null`\n#### `asArrayOfObjWithProperties(value: unknown, prop: string[]): object[] | null`\n#### `asSizeArrayOfObjWithProperties(value: unknown, length: number, prop: string[]): object[] | null`\n#### `asArrayOfObjLike(value: unknown, schema: object): object[] | null`\n#### `asArrayOfSomeObjLike(value: unknown, schema: object): object[] | null`\n\nThis will return every element matching the given schema.\u003cbr /\u003e\nUnlike `asArrayOfObjLike` which return the array only if all elements pass the test.\n\n#### `asSizeArrayOfObjLike(value: unknown, length: number, schema: object): object[] | null`\n#### `asArrayOfUint8Array(value: unknown): Uint8Array[] | Buffer[] | null`\n\nalias: `asArrayOfBuffer(value: unknown): Uint8Array[] | Buffer[] | null`\n\n#### `asSizeArrayOfUint8Array(value: unknown, length: number): Uint8Array[] | Buffer[] | null`\n\nalias: `asSizeArrayOfBuffer(value: unknown, length: number): Uint8Array[] | Buffer[] | null`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: number\u003c/summary\u003e\n  \n#### `asBigInt(value: unknown): bigint | null`\n#### `asBigIntPositive(value: unknown): bigint | null`\n#### `asBigIntPositiveOrZero(value: unknown): bigint | null`\n#### `asBigIntWithinRange(value: unknown, min: bigint, max: bigint): bigint | null`\n#### `asInteger(value: unknown): number | null`\n#### `asIntegerPositive(value: unknown): number | null`\n#### `asIntegerPositiveOrZero(value: unknown): number | null`\n#### `asIntegerWithinRange(value: unknown, min: number, max: number): number | null`\n#### `asNumber(value: unknown): number | null`\n#### `asNumberWithinRange(value: unknown, min: number, max: number): number | null`\n  \n\u003c/details\u003e\n  \n\u003cdetails\u003e\u003csummary\u003etype: object\u003c/summary\u003e\n  \n#### `asObj(value: unknown): object | null`\n#### `asObjNotEmpty(value: unknown): object | null`\n#### `asObjWithProperties(value: unknown, prop: string[]): object | null`\n#### `asObjLike(value: unknown, schema: object): object | null`\n#### `asObjWithinObj(value: unknown): object | null`\n  \n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003etype: string\u003c/summary\u003e\n  \n#### `asString(value: unknown): string | null`\n#### `asStringNotEmpty(value: unknown): string | null`\n#### `asStringLike(value: unknown, pattern: RegExp | string): string | null`\n#### `asHexString(value: unknown): string | null`\n  \n\u003c/details\u003e\n  \n\u003cdetails\u003e\u003csummary\u003etype: other\u003c/summary\u003e\n\n#### `asBoolean(value: unknown): boolean | null`\n#### `asUint8Array(value: unknown): Uint8Array | Buffer | null`\n\nalias: `asBuffer(value: unknown): Uint8Array | Buffer | null`\n\n#### `asError(value: unknown): Error | null`\n#### `asRegExp(value: unknown): RegExp | null`\n#### `asPromise(value: unknown): Promise | null`\n#### `asFunction(value: unknown): any`\n  \n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxan105%2Fnode-is","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxan105%2Fnode-is","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxan105%2Fnode-is/lists"}