tra-analysis/website/functions/node_modules/power-assert-util-string-width/index.js
2019-01-06 13:14:45 -06:00

31 lines
721 B
JavaScript

'use strict';
var eaw = require('eastasianwidth');
function stringWidth (ambiguousCharWidth) {
return function widthOf (str) {
var i, code, width = 0;
for(i = 0; i < str.length; i+=1) {
code = eaw.eastAsianWidth(str.charAt(i));
switch(code) {
case 'F':
case 'W':
width += 2;
break;
case 'H':
case 'Na':
case 'N':
width += 1;
break;
case 'A':
width += ambiguousCharWidth;
break;
}
}
return width;
};
}
module.exports = stringWidth(2);
module.exports.narrow = stringWidth(1);