FlyUp/packages/字体精简工具/node_modules/code-point/index.js
2024-07-10 18:24:08 +08:00

37 lines
950 B
JavaScript

/*!
* String.prototype.codePointAt v0.2.0 | MIT (c) Mathias Bynens (@mathias)
* http://mths.be/codepointat
*
* code-point | MIT (c) Shinnosuke Watanabe
* https://github.com/shinnn/code-point.js
*/
'use strict';
var getCodePoint = typeof String.prototype.codePointAt === 'function' ? function getCodePoint(str) {
return str.codePointAt(0);
} : function getCodePoint(str) {
var first = str.charCodeAt(0);
if (first >= 0xD800 && first <= 0xDBFF && str.length > 1) {
var second = str.charCodeAt(1);
if (second >= 0xDC00 && second <= 0xDFFF) {
return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
}
}
return first;
};
module.exports = function codePoint(str) {
if (typeof str !== 'string') {
throw new TypeError(String(str) + ' is not a string. Argument must be a string.');
}
if (str.length === 0) {
throw new Error('Argument must be a non-empty string.');
}
return getCodePoint(str);
};