JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4409
  • Score
    100M100P100Q128287F
  • License MIT

Package Exports

  • undio

Readme

⇔ undio

npm version npm downloads

⇔ Conventionally and Safely convert between various JavaScript data types:

And enjoy...

✅ Type-safe usage.

✅ Runtime type safety assertions.

✅ Auto type detection and convertors.

✅ Tree-shakable and compact build.

Usage

Install package:

# ✨ Auto-detect
npx nypm install undio

# npm
npm install undio

# yarn
yarn add undio

# pnpm
pnpm install undio

# bun
bun install undio

Import:

ESM (Node.js, Bun)

import {} from "undio";

CommonJS (Legacy Node.js)

const {} = require("undio");

CDN (Deno, Bun and Browsers)

import {} from "https://esm.sh/undio";

Runtime type checking utils

You can use is*(input) ans assert*(input) utils to validate input type.

[!NOTE] All convert utils by default use assertion for runtime type safety and you don't need to manually do this.

Example:

import { isReadableStream, assertArrayBuffer } from "undio";

if (isReadableStream(value)) {
  /* do something */
}

assertArrayBuffer(value); // Throws an error if value is not ArrayBuffer
// do something

Auto Convert utils

You can either use explicit *To*(value) utils (see next sections) or use auto detection.

Example:

import { detectType, toString } from "undio";

// "ArrayBuffer" | "Blob"| "DataView" | "NumberArray" | "ReadableStream" | "String" | "Uint8Array";
const type = detectType(value);

// Convert any supported type (auto detected)
const value = await toString(value);

Array Buffer

arrayBufferToBlob(arrayBuffer, options?)

Convert from ArrayBuffer to Blob

arrayBufferToDataView(arrayBuffer)

Convert from ArrayBuffer to DataView

arrayBufferToNumberArray(arrayBuffer)

Convert from ArrayBuffer to Number Array

arrayBufferToReadableStream(arrayBuffer)

Convert from ArrayBuffer to ReadableStream

arrayBufferToString(arrayBuffer)

Convert from ArrayBuffer to String

arrayBufferToUint8Array(arrayBuffer)

Convert from ArrayBuffer to Uint8Array

assertArrayBuffer(input)

Assert that input is instance of ArrayBuffer or throw a TypeError.

isArrayBuffer(input)

Test if input is instance of ArrayBuffer and return true or false.

Blob

assertBlob(input)

Assert that input is instance of Blob or throw a TypeError.

blobToArrayBuffer(blob)

Convert from Blob to ArrayBuffer

blobToDataView(blob)

Convert from Blob to DataView

blobToNumberArray(blob)

Convert from Blob to Number Array

blobToReadableStream(blob)

Convert from Blob to ReadableStream

blobToString(blob)

Convert from Blob to String

blobToUint8Array(blob)

Convert from Blob to Uint8Array

isBlob(input)

Test if input is instance of Blob and return true or false.

Data View

assertDataView(input)

Assert that input is instance of DataView or throw a TypeError.

dataViewToArrayBuffer(dataView)

Convert from DataView to ArrayBuffer

dataViewToBlob(dataView, options?)

Convert from DataView to Blob

dataViewToNumberArray(dataView)

Convert from DataView to Number Array

dataViewToReadableStream(dataView)

Convert from DataView to ReadableStream

dataViewToString(dataView)

Convert from DataView to String

dataViewToUint8Array(dataView)

Convert from DataView to Uint8Array

isDataView(input)

Test if input is instance of DataView and return true or false.

Number Array

assertNumberArray(input)

Assert that input is instance of Number Array or throw a TypeError.

isNumberArray(input)

Test if input is instance of Number Array and return true or false.

numberArrayToArrayBuffer(numberArray)

Convert from Number Array to ArrayBuffer

numberArrayToBlob(numberArray, options?)

Convert from Number Array to Blob

numberArrayToDataView(numberArray)

Convert from Number Array to DataView

numberArrayToReadableStream(numberArray)

Convert from Number Array to ReadableStream

numberArrayToString(numberArray)

Convert from Number Array to String

numberArrayToUint8Array(numberArray)

Convert from Number Array to Uint8Array

Readable Stream

assertReadableStream(input)

Assert that input is instance of ReadableStream or throw a TypeError.

isReadableStream(input)

Test if input is instance of ReadableStream and return true or false.

readableStreamToArrayBuffer(readableStream)

Convert from ReadableStream to ArrayBuffer

readableStreamToBlob(readableStream, options?)

Convert from ReadableStream to Blob

readableStreamToDataView(readableStream)

Convert from ReadableStream to DataView

readableStreamToNumberArray(readableStream)

Convert from ReadableStream to Number Array

readableStreamToString(readableStream)

Convert from ReadableStream to String

readableStreamToUint8Array(readableStream)

Convert from ReadableStream to Uint8Array

String

assertString(input)

Assert that input is instance of String or throw a TypeError.

isString(input)

Test if input is instance of String and return true or false.

stringToArrayBuffer(string)

Convert from string to ArrayBuffer

stringToBlob(string, options?)

Convert from string to Blob

stringToDataView(string)

Convert from string to DataView

stringToNumberArray(string)

Convert from string to Number Array

stringToReadableStream(string)

Convert from string to ReadableStream

stringToUint8Array(string)

Convert from string to Uint8Array

Uint8 Array

assertUint8Array(input)

Assert that input is instance of Uint8Array or throw a TypeError.

isUint8Array(input)

Test if input is instance of Uint8Array and return true or false.

uint8ArrayToArrayBuffer(uint8Array)

Convert from Uint8Array to ArrayBuffer

@group Uint8Array

uint8ArrayToBlob(uint8Array, options?)

Convert from Uint8Array to Blob

@group Uint8Array

uint8ArrayToDataView(uint8Array)

Convert from Uint8Array to DataView

@group Uint8Array

uint8ArrayToNumberArray(uint8Array)

Convert from Uint8Array to Number Array

@group Uint8Array

uint8ArrayToReadableStream(uint8Array)

Convert from Uint8Array to ReadableStream

@group Uint8Array

uint8ArrayToString(uint8Array)

Convert from Uint8Array to String

@group Uint8Array

Development

local development
  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

License

Published under the MIT license. Made by community 💛


🤖 auto updated with automd