UNPKG

@azizbecha/strkit

Version:

strkit is a utility library offering a collection of essential string functions including validation, case conversion, truncation, and more. Ideal for both JavaScript and TypeScript developers to simplify string operations in their applications.

44 lines 1.97 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = truncate; /** * Truncates a string to a specified length (default: 50), optionally appending an ellipsis (`...`) or a custom suffix. * * If the string length exceeds the specified `maxLength`, it is truncated to fit within the limit, * including the suffix if provided. * * @param str - The string to truncate. * @param maxLength - The maximum length of the truncated string, including the suffix. Defaults to `50`. * @param suffix - A string to append to the truncated string. Defaults to `'...'`. * @returns The truncated string with the suffix if truncation was applied, or the original string if no truncation was needed. * * @example * truncate('Hello, world!', 5); // "He..." * truncate('TypeScript is great', 10, '...'); // "TypeSc..." * truncate('Short', 10); // "Short" (no truncation) * truncate('A very long string that needs truncating', undefined); // "A very long string that needs trunc..." */ function truncate(str, maxLength = 50, suffix = '...') { if (maxLength <= 0) { throw new Error('maxLength must be greater than 0'); } if (str.length <= maxLength) { return str; } const truncatedLength = maxLength - suffix.length; if (truncatedLength <= 0) { throw new Error('maxLength is too short to include the suffix'); } return str.slice(0, truncatedLength) + suffix; } }); //# sourceMappingURL=truncate.js.map