Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@livyn/type

fajardison95MIT1.0.0

A comprehensive JavaScript/Node.js utility library for type detection and type conversion.

livyn, type, datatype, type-detection, type-conversion, utility, esm

readme

npm License ESM Node

@livyn/type

A comprehensive JavaScript/Node.js utility library for type detection and type conversion — made for simplicity, performance, and accuracy.


✨ Key Features

  • 🧩 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

📦 Installation

npm install @livyn/type

📘 Usage

Importing

import typeUtils from '@livyn/type';

// or named imports
import { dataType, isType, toType, assertType } from '@livyn/type';

dataType

Detects the precise type of a value.

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"

isType

Checks if a value matches an expected type.

console.log(isType(123, "number"));          // true
console.log(isType("hello", "string"));      // true
console.log(isType([], "array"));            // true
console.log(isType(class User {}, "class")); // true

assertType

Asserts that a value matches (or does not match) a type. Throws TypeError if invalid.

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"
}

toType

Converts a value to a specified type or all types.

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

Supported Types

  • number, bigint, boolean, string, array, date, object, regexp

👤 Author

Dimas Fajar


⚖️ License

This project is licensed under the MIT License – see the LICENSE file for details.

changelog

Changelog

All notable changes to this project will be documented in this file.

[1.0.0] - 2025-09-07

Added

  • Initial release of @livyn/type.
  • Core utilities:
    • dataType – Precise type detection for primitives, built-in objects, functions, and custom classes.
    • isType – Check if a value matches an expected type.
    • assertType – Assert value type with optional negation, throws TypeError on mismatch.
    • toType – Convert values to a specific type or all supported types.
  • Converters:
    • toNumber
    • toBigInt
    • toBoolean
    • toString
    • toArray
    • toDate
    • toObject
    • toRegExp
  • Supports all standard JavaScript types:
    • Primitives: string, number, boolean, bigint, symbol, null, undefined
    • Built-in objects: Array, Date, RegExp, Map, Set, Promise
    • Functions: regular, async, generator
    • Custom classes
  • Full ES Modules (ESM) support, Node.js >=18
  • Example scripts for testing all converters and type utilities.

Changed

  • N/A

Fixed

  • N/A

Deprecated

  • N/A

Removed

  • N/A