# unicode-byte-truncate

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

Latest version **1.0.0** (published 2016-02-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install unicode-byte-truncate
pnpm add unicode-byte-truncate
yarn add unicode-byte-truncate
bun add unicode-byte-truncate
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2016-02-08 |
| First published | 2016-02-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 9 |
| Author | Thomas Watson Steen |
| Maintainers | watson |
| Keywords | slice, substring, substr, trunc, truncate, trim, unicode, multibyte, multi-byte, surrogate, pair, pairs, max, byte, bytes, characters, chars |

## Links

- npm: https://www.npmjs.com/package/unicode-byte-truncate
- Repository: https://github.com/watson/unicode-byte-truncate
- Homepage: https://github.com/watson/unicode-byte-truncate#readme
- Issues: https://github.com/watson/unicode-byte-truncate/issues
- npm.io page: https://npm.io/package/unicode-byte-truncate

## Dependencies (2)

- [is-integer](https://npm.io/package/is-integer.md) ^1.0.6
- [unicode-substring](https://npm.io/package/unicode-substring.md) ^0.1.0

## Alternatives

- [@mce/gif](https://npm.io/package/@mce/gif.md) — 2.6K weekly downloads
- [cleanse](https://npm.io/package/cleanse.md) — 173 weekly downloads
- [str](https://npm.io/package/str.md) — 127 weekly downloads
- [naming](https://npm.io/package/naming.md) — 95 weekly downloads
- [tap-telco-api](https://npm.io/package/tap-telco-api.md) — 19 weekly downloads

## Recent versions

- 1.0.0 (latest) — 2016-02-08

## 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](https://travis-ci.org/watson/unicode-byte-truncate.svg?branch=master)](https://travis-ci.org/watson/unicode-byte-truncate)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)

## Installation

```
npm install unicode-byte-truncate --save
```

## Usage

```js
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.

```js
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

---
_Source: https://npm.io/package/unicode-byte-truncate · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
