eslint-plugin-smarthr
Advanced tools
Comparing version 0.2.4 to 0.2.5
@@ -5,2 +5,10 @@ # Changelog | ||
### [0.2.5](https://github.com/kufu/eslint-plugin-smarthr/compare/v0.2.4...v0.2.5) (2022-09-08) | ||
### Bug Fixes | ||
* require-import, prohibit-import: report message の一部でテンプレート文字列がそのまま出力されてしまう事があるバグを修正 ([#29](https://github.com/kufu/eslint-plugin-smarthr/issues/29)) ([b805f90](https://github.com/kufu/eslint-plugin-smarthr/commit/b805f90cd39b1aa4b95cbfbd983c5ff1c61f8afe)) | ||
* 画像系コンポーネントが代替テキスト属性を持つかチェックする際にエラーになるパターンを修正 ([#30](https://github.com/kufu/eslint-plugin-smarthr/issues/30)) ([bcd1044](https://github.com/kufu/eslint-plugin-smarthr/commit/bcd1044d7532531015a279520ed8eda582227492)) | ||
### [0.2.4](https://github.com/kufu/eslint-plugin-smarthr/compare/v0.2.3...v0.2.4) (2022-08-30) | ||
@@ -7,0 +15,0 @@ |
{ | ||
"name": "eslint-plugin-smarthr", | ||
"version": "0.2.4", | ||
"version": "0.2.5", | ||
"author": "SmartHR", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -39,14 +39,31 @@ const { generateTagFormatter } = require('../../libs/format_styled_components') | ||
const recursiveSearch = (c) => ( | ||
['JSXText', 'JSXExpressionContainer'].includes(c.type) || | ||
( | ||
c.type === 'JSXElement' && ( | ||
// HINT: SmartHRLogo コンポーネントは内部でaltを持っているため対象外にする | ||
c.openingElement.name.name.match(/SmartHRLogo$/) || | ||
c.openingElement.attributes.some((a) => (['visuallyHiddenText', 'alt'].includes(a.name.name) && !!a.value.value)) || | ||
(c.children && filterFalsyJSXText(c.children).some(recursiveSearch)) | ||
) | ||
) | ||
) | ||
const recursiveSearch = (c) => { | ||
if (['JSXText', 'JSXExpressionContainer'].includes(c.type)) { | ||
return true | ||
} | ||
if (c.type === 'JSXElement') { | ||
// // HINT: SmartHRLogo コンポーネントは内部でaltを持っているため対象外にする | ||
if (c.openingElement.name.name.match(/SmartHRLogo$/)) { | ||
return true | ||
} | ||
if (c.openingElement.attributes.some((a) => { | ||
if (!['visuallyHiddenText', 'alt'].includes(a.name.name)) { | ||
return false | ||
} | ||
return (!!a.value.value || a.value.type === 'JSXExpressionContainer') | ||
})) { | ||
return true | ||
} | ||
if (c.children && filterFalsyJSXText(c.children).some(recursiveSearch)) { | ||
return true | ||
} | ||
} | ||
return false | ||
} | ||
const child = filterFalsyJSXText(parentNode.children).find(recursiveSearch) | ||
@@ -53,0 +70,0 @@ |
@@ -24,3 +24,3 @@ const { generateTagFormatter } = require('../../libs/format_styled_components') | ||
if ((node.name.name || '').match(/(img|image)$/i)) { // HINT: Iconは別途テキストが存在する場合が多いためチェックの対象外とする | ||
const alt = node.attributes.find((a) => a.name.name === 'alt') | ||
const alt = node.attributes.find((a) => a.name?.name === 'alt') | ||
@@ -27,0 +27,0 @@ let message = '' |
@@ -10,3 +10,3 @@ # smarthr/format-import-path | ||
- tsconfig.json の compilerOptions.pathsに '@/*' としてroot path を指定する必要があります | ||
- tsconfig.json の compilerOptions.pathsに '@/*', もしくは '~/*' としてroot path を指定する必要があります | ||
- ドメインを識別するために以下の設定を記述する必要があります | ||
@@ -13,0 +13,0 @@ - globalModuleDir |
@@ -9,3 +9,3 @@ # smarthr/no-import-other-domain | ||
- tsconfig.json の compilerOptions.pathsに '@/*' としてroot path を指定する必要があります | ||
- tsconfig.json の compilerOptions.pathsに '@/*', もしくは '~/*' としてroot path を指定する必要があります | ||
- ドメインを識別するために以下の設定を記述する必要があります | ||
@@ -12,0 +12,0 @@ - globalModuleDir |
@@ -93,3 +93,3 @@ const path = require('path') | ||
data: { | ||
message: reportMessage ? reportMessage.replace('{{module}}', node.source.value).replace('{{export}}', useImported) : defaultReportMessage(node.source.value, useImported) | ||
message: reportMessage ? reportMessage.replaceAll('{{module}}', node.source.value).replaceAll('{{export}}', useImported) : defaultReportMessage(node.source.value, useImported) | ||
}, | ||
@@ -96,0 +96,0 @@ }); |
@@ -409,3 +409,3 @@ const path = require('path') | ||
if (!rootPath) { | ||
throw new Error('tsconfig.json の compilerOptions.paths に `"@/*": ["any_path/*"]` 形式でフロントエンドのroot dir を指定してください') | ||
throw new Error('tsconfig.json の compilerOptions.paths に `@/*`、もしくは `~/*` 形式でフロントエンドのroot dir を指定してください(例: `"@/*": ["./any_path/*"]`)') | ||
} | ||
@@ -412,0 +412,0 @@ |
@@ -8,3 +8,3 @@ # smarthr/redundant-name | ||
- tsconfig.json の compilerOptions.pathsに '@/*' としてroot path を指定する必要があります | ||
- tsconfig.json の compilerOptions.pathsに '@/*', もしくは '~/*' としてroot path を指定する必要があります | ||
- 以下の設定を行えます。全て省略可能です。 | ||
@@ -11,0 +11,0 @@ - ignoreKeywords |
# smarthr/require-barrel-import | ||
- tsconfig.json の compilerOptions.pathsに '@/*' としてroot path を指定する必要があります | ||
- tsconfig.json の compilerOptions.pathsに '@/*', もしくは '~/*' としてroot path を指定する必要があります | ||
- importした対象が本来exportされているべきであるbarrel(index.tsなど)が有る場合、import pathの変更を促します | ||
@@ -5,0 +5,0 @@ - 例: Page/parts/Menu/Item の import は Page/parts/Menu から行わせたい |
@@ -86,3 +86,3 @@ const path = require('path') | ||
data: { | ||
message: reportMessage ? reportMessage.replace('{{module}}', actualTarget).replace('{{export}}', item) : defaultReportMessage(actualTarget, item) | ||
message: reportMessage ? reportMessage.replaceAll('{{module}}', actualTarget).replaceAll('{{export}}', item) : defaultReportMessage(actualTarget, item) | ||
}, | ||
@@ -89,0 +89,0 @@ }) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
110889
2522