UNPKG

white-space-x

Version:

List of ECMAScript white space characters.

336 lines (329 loc) 6.13 kB
/** * A record of a white space character. * * @typedef {object} CharRecord * @property {number} code - The character code. * @property {string} description - A description of the character. * @property {boolean} es5 - Whether the spec lists this as a white space. * @property {boolean} es2015 - Whether the spec lists this as a white space. * @property {boolean} es2016 - Whether the spec lists this as a white space. * @property {boolean} es2017 - Whether the spec lists this as a white space. * @property {boolean} es2018 - Whether the spec lists this as a white space. * @property {string} string - The character string. */ /** * An array of the whitespace char codes, string, descriptions and language * presence in the specifications. * * @type Array.<CharRecord> */ export const list = [ { code: 0x0009, description: 'Tab', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u0009', }, { code: 0x000a, description: 'Line Feed', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u000a', }, { code: 0x000b, description: 'Vertical Tab', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u000b', }, { code: 0x000c, description: 'Form Feed', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u000c', }, { code: 0x000d, description: 'Carriage Return', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u000d', }, { code: 0x0020, description: 'Space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u0020', }, /* { code: 0x0085, description: 'Next line', es5: false, es2015: false, es2016: false, es2017: false, es2018: false, string: '\u0085' } */ { code: 0x00a0, description: 'No-break space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u00a0', }, { code: 0x1680, description: 'Ogham space mark', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u1680', }, { code: 0x180e, description: 'Mongolian vowel separator', es5: true, es2015: true, es2016: true, es2017: false, es2018: false, string: '\u180e', }, { code: 0x2000, description: 'En quad', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2000', }, { code: 0x2001, description: 'Em quad', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2001', }, { code: 0x2002, description: 'En space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2002', }, { code: 0x2003, description: 'Em space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2003', }, { code: 0x2004, description: 'Three-per-em space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2004', }, { code: 0x2005, description: 'Four-per-em space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2005', }, { code: 0x2006, description: 'Six-per-em space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2006', }, { code: 0x2007, description: 'Figure space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2007', }, { code: 0x2008, description: 'Punctuation space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2008', }, { code: 0x2009, description: 'Thin space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2009', }, { code: 0x200a, description: 'Hair space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u200a', }, /* { code: 0x200b, description: 'Zero width space', es5: false, es2015: false, es2016: false, es2017: false, es2018: false, string: '\u200b' }, */ { code: 0x2028, description: 'Line separator', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2028', }, { code: 0x2029, description: 'Paragraph separator', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u2029', }, { code: 0x202f, description: 'Narrow no-break space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u202f', }, { code: 0x205f, description: 'Medium mathematical space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u205f', }, { code: 0x3000, description: 'Ideographic space', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\u3000', }, { code: 0xfeff, description: 'Byte Order Mark', es5: true, es2015: true, es2016: true, es2017: true, es2018: true, string: '\ufeff', }, ]; /** * A string of the ES5 to ES2016 whitespace characters. * * @type string */ let stringES2016 = ''; /** * A string of the ES2017 to ES2018 whitespace characters. * * @type string */ let stringES2018 = ''; const {length} = list; for (let i = 0; i < length; i += 1) { if (list[i].es2016) { stringES2016 += list[i].string; } if (list[i].es2018) { stringES2018 += list[i].string; } } const string2018 = stringES2018; export default string2018; export const string2016 = stringES2016;