@hyperfrontend/string-utils/nodeNode Module
Node.js-optimized implementations of the @hyperfrontend/string-utils encoding API, built directly on Buffer.
Overview
This entry point exposes the same UTF-8 and base64 helpers as the browser submodule, but defers all encoding work to Buffer.from(...) and buffer.toString(...). Routing through Buffer avoids the binary-string round-trips that browsers need (TextEncoder → btoa → atob → TextDecoder) and produces fewer intermediate allocations on the server.
URL-safe base64 transformation is shared with the browser submodule and uses loop-based character substitution rather than regex, keeping behavior linear in input length.
Usage
import { toBase64, fromBase64, utf8StringToUint8Array, base64ToUint8Array } from '@hyperfrontend/string-utils/node'
// UTF-8 safe base64
toBase64('こんにちは') // => '44GT44KT44Gr44Gh44Gv'
// URL-safe base64 without padding (suitable for JWT-style payloads)
toBase64('{"userId":123}', true, false) // => 'eyJ1c2VySWQiOjEyM30'
// Round-trip through bytes for crypto workflows
const bytes = utf8StringToUint8Array('Hello')
const sameBytes = base64ToUint8Array(toBase64('Hello'))
Use this entry point in Node.js processes (and any runtime that ships a Buffer global). Browser, Web Worker, and edge-runtime consumers should import from @hyperfrontend/string-utils/browser so bundlers can drop the Buffer paths entirely.
API Reference
ƒ Functions
Parameters
| Name | Type | Description |
|---|---|---|
§base64 | string | The base64 encoded string to convert |
Returns
Uint8ArrayExamples
Standard base64
const bytes = base64ToUint8Array('SGVsbG8=')
// => Uint8Array([72, 101, 108, 108, 111]) // 'Hello'URL-safe base64 (without padding)
const bytes = base64ToUint8Array('SGVsbG8')
// => Uint8Array([72, 101, 108, 108, 111]) // 'Hello'Parameters
| Name | Type | Description |
|---|---|---|
§text | string | The base64 encoded string to decode |
Returns
stringExamples
Standard base64
const message = fromBase64('SGVsbG8sIFdvcmxkIQ==')
// => 'Hello, World!'URL-safe base64
const token = fromBase64('eyJ1c2VySWQiOjEyM30')
// => '{"userId":123}'Parameters
Returns
stringExamples
Standard base64
const encoded = toBase64('Hello, World!')
// => 'SGVsbG8sIFdvcmxkIQ=='URL-safe without padding (for URLs/tokens)
const token = toBase64('{"userId":123}', true, false)
// => 'eyJ1c2VySWQiOjEyM30'Parameters
Returns
stringExamples
Standard base64
const bytes = new Uint8Array([72, 101, 108, 108, 111])
const encoded = uint8ArrayToBase64(bytes)
// => 'SGVsbG8='URL-safe without padding
const bytes = new Uint8Array([72, 101, 108, 108, 111])
const token = uint8ArrayToBase64(bytes, true, false)
// => 'SGVsbG8'Parameters
| Name | Type | Description |
|---|---|---|
§text | string | The UTF-8 string to convert |
Returns
Uint8ArrayExample
Encoding string to bytes (Node.js)
const bytes = utf8StringToUint8Array('Hello')
// => Uint8Array([72, 101, 108, 108, 111])Parameters
| Name | Type | Description |
|---|---|---|
§uint8Array | ArrayBuffer | The ArrayBuffer to convert |
Returns
stringExample
Converting ArrayBuffer to string
const encoder = new TextEncoder()
const buffer = encoder.encode('Hello, World!').buffer
const decoded = arrayBufferToUtf8String(buffer)
// => 'Hello, World!'Parameters
| Name | Type | Description |
|---|---|---|
§uint8Array | Uint8Array | The Uint8Array to convert |
Returns
stringExample
Converting Uint8Array to string
const bytes = new Uint8Array([72, 101, 108, 108, 111])
const text = uint8ArrayToUtf8String(bytes)
// => 'Hello'