A comprehensive JavaScript/Node.js utility library for type detection and type conversion.
npm install @livyn/typeA comprehensive JavaScript/Node.js utility library for type detection and type conversion — made for simplicity, performance, and accuracy.
---
- 🧩 Type Detection – Detect the precise type of any value (dataType)
- 🔐 Type Assertion – Assert value types with optional negation (assertType)
- ✅ Type Checking – Check if a value matches a specific type (isType)
- 🔄 Type Conversion – Convert values to a specific type or all types (toType)
- 💡 Supports:
- Primitives: string, number, boolean, bigint, symbol, null, undefined
- Built-in objects: Array, Date, RegExp, Map, Set, Promise
- Functions: regular, async, generator
- Custom classes
---
``bash`
npm install @livyn/type
---
`js
import typeUtils from '@livyn/type';
// or named imports
import { dataType, isType, toType, assertType } from '@livyn/type';
`
---
Detects the precise type of a value.
`js`
console.log(dataType(123)); // "number"
console.log(dataType("hello")); // "string"
console.log(dataType(null)); // "null"
console.log(dataType([])); // "array"
console.log(dataType(async () => {})); // "asyncfunction"
console.log(dataType(class User {})); // "class"
---
Checks if a value matches an expected type.
`js`
console.log(isType(123, "number")); // true
console.log(isType("hello", "string")); // true
console.log(isType([], "array")); // true
console.log(isType(class User {}, "class")); // true
---
Asserts that a value matches (or does not match) a type. Throws TypeError if invalid.
`js
assertType(123, "number"); // returns 123
assertType("hello", "!number"); // returns "hello"
try {
assertType("abc", "!string"); // throws TypeError
} catch (e) {
console.log(e.message); // "Invalid type: expected not string, got string"
}
`
---
Converts a value to a specified type or all types.
`js
console.log(toType("123abc", "number")); // 123
console.log(toType("123abc", "bigint")); // 123n
console.log(toType("false", "boolean")); // false
console.log(toType({a:1,b:2}, "string")); // "{a: 1, b: 2}"
console.log(toType("abcd123")); // returns object with all type conversions
`
---
- number, bigint, boolean, string, array, date, object, regexp`
---
---
This project is licensed under the MIT License – see the LICENSE file for details.