UNPKG

@ne1410s/text

Version:

Lightweight ES5 script to provide text utilities

95 lines (93 loc) 2.79 kB
var ESCAPE_RGX = /[-\/\\^$*+?.()|[\]{}]/g; /** * Removes leading character(s) from a body of text. * @param text The body text. * @param trim The leading character(s) to trim. * @returns The trimmed text. */ function trimStart(text, trim) { return text.replace(new RegExp("^".concat(trim.replace(ESCAPE_RGX, '\\$&'), "+")), ''); } /** * Removes trailing character(s) from a body of text. * @param text The body text. * @param trim The trailing character(s) to trim. * @returns The trimmed text. */ function trimEnd(text, trim) { return text.replace(new RegExp("".concat(trim.replace(ESCAPE_RGX, '\\$&'), "+$")), ''); } /** * Removes leading and trailing character(s) from a body of text. * @param text The body text. * @param trim The leading and trailing character(s) to trim. * @returns The trimmed text. */ function trimBoth(text, trim) { return trimEnd(trimStart(text, trim), trim); } /** * Converts text to an array buffer. * @param text The text. * @returns An array buffer. */ function textToBuffer(text) { return Uint8Array.from(Array.from(text).map(function (letter) { return letter.charCodeAt(0); })).buffer; } /** * Converts an array buffer to the corresponding text. * @param buffer An array buffer. * @returns The corresponding text. */ function bufferToText(buffer) { return String.fromCharCode.apply(null, new Uint8Array(buffer)); } /** * Encodes text as base 64. * @param text The text. * @returns The encoded base 64. */ function textToBase64(text) { return Buffer.from(text, 'binary').toString('base64'); } /** * Decodes base 64 to text. * @param base64 The base 64. * @returns The decoded text. */ function base64ToText(base64) { return Buffer.from(base64, 'base64').toString('binary'); } /** * Encodes an array buffer as base 64. * @param buffer An array buffer. * @returns The encoded base 64. */ function bufferToBase64(buffer) { return textToBase64(bufferToText(buffer)); } /** * Encodes an array buffer as base 64 url. * @param buffer An array buffer. * @returns The encoded base 64 url. */ function bufferToBase64Url(buffer) { return textToBase64Url(bufferToText(buffer)); } /** * Encodes text as base 64 url. * @param text The text. * @returns The encoded base 64 url. */ function textToBase64Url(text) { return textToBase64(text).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, ''); } /** * Encodes an object as base 64 url, from its JSON. * @param object The object. * @returns The encoded base 64 url. */ function objectToBase64Url(object) { return textToBase64Url(JSON.stringify(object)); } export { base64ToText, bufferToBase64, bufferToBase64Url, bufferToText, objectToBase64Url, textToBase64, textToBase64Url, textToBuffer, trimBoth, trimEnd, trimStart };