Files

68 lines
2.0 KiB
JSON

{
"compilerOptions": {
"target": "es2021",
"module": "es2020",
"moduleResolution": "bundler",
"allowJs": true,
"verbatimModuleSyntax": true,
"isolatedModules": true,
"lib": ["es2021", "dom", "dom.iterable"],
"noEmit": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"strict": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"experimentalDecorators": true,
// Lit's @property installs an accessor on the prototype. Class field
// semantics would define an own property on each instance that shadows it,
// so property writes would no longer trigger a render.
"useDefineForClassFields": false,
"esModuleInterop": true,
"plugins": [
{
"name": "ts-lit-plugin",
"strict": false,
// These tags are provided by the HA frontend and [almost all] cannot be
// imported by a custom card directly.
"globalTags": [
"ha-alert",
"ha-button",
"ha-camera-stream",
"ha-card",
"ha-combo-box",
"ha-dropdown-item",
"ha-dropdown",
"ha-expansion-panel",
"ha-form",
"ha-hls-player",
"ha-icon-button",
"ha-icon",
"ha-menu-button",
"ha-selector",
"ha-spinner",
"ha-state-icon",
"ha-web-rtc-player",
"mwc-button",
"mwc-list-item",
"state-badge"
],
"rules": {
"no-unknown-tag-name": "error",
"no-missing-import": "error",
"no-unclosed-tag": "error",
"no-incompatible-type-binding": "warning",
"no-invalid-css": "warning",
"no-missing-element-type-definition": "warning",
"no-property-visibility-mismatch": "error"
}
}
]
},
// `allowJs` would otherwise parse the build output.
"exclude": ["dist", "node_modules"]
}