JSPM

unicode-byte-truncate

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

Unicode aware string truncation that given a max byte size will truncate the string to or just below that size

Package Exports

  • unicode-byte-truncate

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (unicode-byte-truncate) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

unicode-byte-truncate

Truncate a string to a given byte size by removing bytes from the right while making sure not to slice in the middle of a multi-byte unicode character.

Build status js-standard-style

Installation

npm install unicode-byte-truncate --save

Usage

var trunc = require('unicode-byte-truncate')

var str = 'foo🎉bar' // 10 byte string - byte 4 to 7 is a single character

console.log(trunc(str, 4)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 5)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 6)) // `foo` == 0x666F6F (3 bytes)
console.log(trunc(str, 7)) // `foo🎉` == 0x666F6FF09F8E89 (7 bytes)

API

The unicode-byte-truncate module exposes a single trunc function.

result = trunc(string, maxBytes)

Given a string and a maxBytes integer greater than or equal to zero, the trunc function will slice characters off the end of the string to ensure that it doesn't contain more bytes than specified by the maxBytes argument.

The truncated string will be returned as the result.

The trunc function is multi-byte unicode aware and will never cut up surrogate pairs. This means that the result may contain fewer bytes than specified by the maxBytes argument.

License

MIT