Slide 36
Slide 36 text
ブラウザ通話を⽀えるフロントエンド:メンテナンス
Linter で意図しない外部アクセスを制限
const generateFeatureAccessRules = () =>
fs
.readdirSync(path.join(__dirname, 'src', 'features'), {
withFileTypes: true,
})
.filter((dirent) => dirent.isDirectory())
.flatMap((dirent) => [
{
module: `src/features/${dirent.name}/**/*`,
allowReferenceFrom: [],
allowSameModule: true,
},
{
module: `src/features/${dirent.name}/index.[jt]s{,x}`,
allowReferenceFrom: [''],
},
])
.eslintrc.js
● 指定したコンポーネントのみ利⽤できるようにして保守性担保
export { CallContainer }
from './components/CallContainer'
export { CallConfirmModal }
from './components/CallConfirmModal'
...
features/call/index.ts
features ディレクトリ直下の
index.ts で export したもののみ
ディレクトリ外から参照可