Files
asciidisco.com/build/node_modules/normalize-space-x/index.js
2023-08-01 13:49:46 +02:00

65 lines
2.1 KiB
JavaScript

/**
* @file Trims and replaces sequences of whitespace characters by a single space.
* @version 3.0.0
* @author Xotic750 <Xotic750@gmail.com>
* @copyright Xotic750
* @license {@link <https://opensource.org/licenses/MIT> MIT}
* @module normalize-space-x
*/
'use strict';
var libTrim = require('trim-x');
var trim2016 = libTrim.trim2016;
var trim2018 = libTrim.trim2018;
var Rx = require('cached-constructors-x').RegExp;
var libWhiteSpace = require('white-space-x');
var reNormalize2016 = new Rx('[' + libWhiteSpace.string2016 + ']+', 'g');
var reNormalize2018 = new Rx('[' + libWhiteSpace.string2018 + ']+', 'g');
var replace = ''.replace;
var $normalizeSpace2016 = function normalizeSpace2016(string) {
return replace.call(trim2016(string), reNormalize2016, ' ');
};
var $normalizeSpace2018 = function normalizeSpace2018(string) {
return replace.call(trim2018(string), reNormalize2018, ' ');
};
module.exports = {
/**
* Reference to normalizeSpace2018.
*/
normalizeSpace: $normalizeSpace2018,
/**
* This method strips leading and trailing white-space from a string,
* replaces sequences of whitespace characters by a single space,
* and returns the resulting string. (ES2016)
*
* @param {string} string - The string to be normalized.
* @throws {TypeError} If string is null or undefined or not coercible.
* @returns {string} The normalized string.
* @example
* var normalizeSpace = require('normalize-space-x');
*
* normalizeSpace(' \t\na \t\nb \t\n') === 'a b'; // true
*/
normalizeSpace2016: $normalizeSpace2016,
/**
* This method strips leading and trailing white-space from a string,
* replaces sequences of whitespace characters by a single space,
* and returns the resulting string. (ES2018)
*
* @param {string} string - The string to be normalized.
* @throws {TypeError} If string is null or undefined or not coercible.
* @returns {string} The normalized string.
* @example
* var normalizeSpace = require('normalize-space-x');
*
* normalizeSpace(' \t\na \t\nb \t\n') === 'a b'; // true
*/
normalizeSpace2018: $normalizeSpace2018
};