{"id":13660618,"url":"https://github.com/43081j/eslint-plugin-lit","last_synced_at":"2026-02-09T11:13:39.076Z","repository":{"id":32890105,"uuid":"145043922","full_name":"43081j/eslint-plugin-lit","owner":"43081j","description":"lit-html support for ESLint","archived":false,"fork":false,"pushed_at":"2025-04-16T13:08:26.000Z","size":708,"stargazers_count":126,"open_issues_count":26,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-12T04:56:53.968Z","etag":null,"topics":["eslint","eslintplugin","hacktoberfest","lit","polymer","web-components"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/43081j.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"43081j"}},"created_at":"2018-08-16T22:11:08.000Z","updated_at":"2025-05-01T15:12:26.000Z","dependencies_parsed_at":"2023-02-13T22:45:57.158Z","dependency_job_id":"497d6f3e-4632-4a7f-aa14-1cf484eb8505","html_url":"https://github.com/43081j/eslint-plugin-lit","commit_stats":{"total_commits":155,"total_committers":13,"mean_commits":"11.923076923076923","dds":0.1806451612903226,"last_synced_commit":"1740630fd2e83c47d289e7011d63b80458e70b80"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43081j%2Feslint-plugin-lit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43081j%2Feslint-plugin-lit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43081j%2Feslint-plugin-lit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/43081j%2Feslint-plugin-lit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/43081j","download_url":"https://codeload.github.com/43081j/eslint-plugin-lit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254292042,"owners_count":22046426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","eslintplugin","hacktoberfest","lit","polymer","web-components"],"created_at":"2024-08-02T05:01:23.749Z","updated_at":"2026-02-09T11:13:34.050Z","avatar_url":"https://github.com/43081j.png","language":"TypeScript","funding_links":["https://github.com/sponsors/43081j"],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"media/eslint-lit.svg\" alt=\"Eslint + Lit\" width=\"425\" height=\"175\" /\u003e\n\u003c/div\u003e\n\n# `eslint-plugin-lit`\n\n[![npm version](https://img.shields.io/npm/v/eslint-plugin-lit.svg?style=flat)](https://npmjs.org/package/eslint-plugin-lit 'View this project on npm')\n[![Build Status](https://travis-ci.com/43081j/eslint-plugin-lit.svg?branch=master)](https://travis-ci.com/43081j/eslint-plugin-lit)\n[![Coverage Status](https://coveralls.io/repos/github/43081j/eslint-plugin-lit/badge.svg?branch=master)](https://coveralls.io/github/43081j/eslint-plugin-lit?branch=master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003e ESLint plugin for [Lit](https://lit.dev/).\n\n## Install\n\nAssuming you already have ESLint installed, run:\n\n```sh\n# npm\nnpm install eslint-plugin-lit --save-dev\n\n# yarn\nyarn add eslint-plugin-lit --dev\n```\n\n## Usage\n\nThen extend the recommended eslint config:\n\n```js\n{\n  \"extends\": [\n    // ...\n    \"plugin:lit/recommended\"\n  ]\n}\n```\n\nOr if you're using (flat) config files, add to your `eslint.config.js`:\n\n```ts\nimport {configs} from 'eslint-plugin-lit';\n\nexport default [\n  configs['flat/recommended'],\n\n  // or if you want to specify `files`, or other options\n  {\n    ...configs['flat/recommended'],\n    files: ['test/**/*.js']\n  }\n];\n```\n\nYou can also specify settings that will be shared across all the plugin rules.\n\n```json5\n{\n  settings: {\n    lit: {\n      elementBaseClasses: ['ClassExtendingLitElement'] // Recognize `ClassExtendingLitElement` as a sub-class of LitElement\n    }\n  }\n}\n```\n\n### Custom Configuration\n\nIf you want more fine-grained configuration, you can instead add a snippet like this to your ESLint configuration file:\n\n```js\n{\n  \"plugins\": [\n    // ...\n    \"lit\"\n  ],\n  \"rules\": {\n    // ...\n    \"lit/no-legacy-template-syntax\": \"error\",\n    \"lit/no-template-arrow\": \"warn\"\n  }\n}\n```\n\n## List of supported rules\n\n- [lit/attribute-names](docs/rules/attribute-names.md)\n- [lit/attribute-value-entities](docs/rules/attribute-value-entities.md)\n- [lit/ban-attributes](docs/rules/ban-attributes.md)\n- [lit/binding-positions](docs/rules/binding-positions.md)\n- [lit/lifecycle-super](docs/rules/lifecycle-super.md)\n- [lit/no-classfield-shadowing](docs/rules/no-classfield-shadowing.md)\n- [lit/no-duplicate-template-bindings](docs/rules/no-duplicate-template-bindings.md)\n- [lit/no-invalid-escape-sequences](docs/rules/no-invalid-escape-sequences.md)\n- [lit/no-invalid-html](docs/rules/no-invalid-html.md)\n- [lit/no-legacy-imports](docs/rules/no-legacy-imports.md)\n- [lit/no-legacy-template-syntax](docs/rules/no-legacy-template-syntax.md)\n- [lit/no-native-attributes](docs/rules/no-native-attributes.md)\n- [lit/no-private-properties](docs/rules/no-private-properties.md)\n- [lit/no-property-change-update](docs/rules/no-property-change-update.md)\n- [lit/no-template-arrow](docs/rules/no-template-arrow.md)\n- [lit/no-template-bind](docs/rules/no-template-bind.md)\n- [lit/no-template-map](docs/rules/no-template-map.md)\n- [lit/no-this-assign-in-render](docs/rules/no-this-assign-in-render.md)\n- [lit/no-useless-template-literals](docs/rules/no-useless-template-literals.md)\n- [lit/no-value-attribute](docs/rules/no-value-attribute.md)\n- [lit/prefer-nothing](docs/rules/prefer-nothing.md)\n- [lit/quoted-expressions](docs/rules/quoted-expressions.md)\n- [lit/value-after-constraints](docs/rules/value-after-constraints.md)\n\n## Shareable configurations\n\n### Recommended\n\nThis plugin exports a `recommended` configuration that enforces Lit good practices.\n\nTo enable this configuration use the `extends` property in your `.eslintrc` config file:\n\n```js\n{\n  \"extends\": [\"eslint:recommended\", \"plugin:lit/recommended\"]\n}\n```\n\n## Usage with `eslint-plugin-wc`\n\nWe **highly** recommend you also depend on\n[eslint-plugin-wc](https://github.com/43081j/eslint-plugin-wc) as it will\nprovide additional rules for web components in general:\n\n```sh\nnpm i -D eslint-plugin-wc\n```\n\nThen extend the recommended eslint config:\n\n```json\n{\n  \"extends\": [\"plugin:wc/recommended\", \"plugin:lit/recommended\"]\n}\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F43081j%2Feslint-plugin-lit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F43081j%2Feslint-plugin-lit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F43081j%2Feslint-plugin-lit/lists"}