From 7efa92fa47fd7870ec7b33a7a4636158e6227dcc Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Wed, 18 Mar 2026 18:17:15 -0400 Subject: [PATCH 1/2] Extract rule: template-require-strict-mode --- README.md | 1 + docs/rules/template-require-strict-mode.md | 42 +++++++++++++ lib/rules/template-require-strict-mode.js | 45 +++++++++++++ .../lib/rules/template-require-strict-mode.js | 63 +++++++++++++++++++ 4 files changed, 151 insertions(+) create mode 100644 docs/rules/template-require-strict-mode.md create mode 100644 lib/rules/template-require-strict-mode.js create mode 100644 tests/lib/rules/template-require-strict-mode.js diff --git a/README.md b/README.md index 515d97f416..61cc01f8ae 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ rules in templates can be disabled with eslint directives with mustache or html | [template-no-obsolete-elements](docs/rules/template-no-obsolete-elements.md) | disallow obsolete HTML elements | | | | | [template-no-outlet-outside-routes](docs/rules/template-no-outlet-outside-routes.md) | disallow {{outlet}} outside of route templates | | | | | [template-no-page-title-component](docs/rules/template-no-page-title-component.md) | disallow usage of ember-page-title component | | | | +| [template-require-strict-mode](docs/rules/template-require-strict-mode.md) | require templates to be in strict mode | | | | | [template-require-valid-named-block-naming-format](docs/rules/template-require-valid-named-block-naming-format.md) | require valid named block naming format | | 🔧 | | | [template-self-closing-void-elements](docs/rules/template-self-closing-void-elements.md) | require self-closing on void elements | | 🔧 | | | [template-simple-modifiers](docs/rules/template-simple-modifiers.md) | require simple modifier syntax | | | | diff --git a/docs/rules/template-require-strict-mode.md b/docs/rules/template-require-strict-mode.md new file mode 100644 index 0000000000..b54f2e5db0 --- /dev/null +++ b/docs/rules/template-require-strict-mode.md @@ -0,0 +1,42 @@ +# ember/template-require-strict-mode + +> **HBS Only**: This rule applies to classic `.hbs` template files only (loose mode). It is not relevant for `gjs`/`gts` files (strict mode), where these patterns cannot occur. + + + +Require templates to be in strict mode. + +Templates should use the strict mode syntax (template tag format) rather than loose template files. Strict mode templates (`.gjs` / `.gts` files) provide better integration with JavaScript and type checking. + +## Examples + +This rule **forbids** the following: + +```hbs +