eslint-plugin-intl-mobile
Version:
Intl Mobile ESLint Rules.
49 lines (41 loc) • 1.19 kB
JavaScript
// 用于检测使用使用了全角 ¥ 符号
;
const { get } = require('lodash');
const desc = 'Do not use full width character ¥,please replace half-angle ¥';
const fullWidthYen = '¥';
function isFullWidthYen(value) {
if (!value) return false;
return (value + '').indexOf(fullWidthYen) > -1;
}
function getPropertyValue(data) {
if (typeof data !== 'object') return [];
return Object.keys(data).map(key => get(data[key], 'value.raw') || get(data[key], 'value'));
}
module.exports = {
meta: {
type: 'suggestion',
docs: {
description: desc,
category: 'Best Practices',
},
},
create: function(context){
return {
VariableDeclarator(node) {
if (isFullWidthYen(get(node, 'init.value'))) {
context.report(node, desc);
}
getPropertyValue(get(node, 'init.expressions')).forEach(value => {
if (isFullWidthYen(value)) {
context.report(node, desc);
}
});
getPropertyValue(get(node, 'init.quasis')).forEach(value => {
if (isFullWidthYen(value)) {
context.report(node, desc);
}
});
},
}
},
}