Skip to content

Conversation

@OpenStaxClaude
Copy link
Contributor

Summary

Removes the deprecated TSLint package and configuration from rex-web. All TypeScript linting is now handled exclusively by ESLint.

Changes Made

  1. Removed TSLint package from devDependencies in package.json
  2. Deleted tslint.json configuration file
  3. Updated lint:typescript script to remove tslint -p ./tsconfig.json command
  4. Updated docker-compose.yml to remove tslint.json volume mount

Why This Change?

TSLint has been deprecated since 2019 and is no longer maintained. The TypeScript team officially recommends using ESLint for TypeScript projects.

Impact

  • No functionality loss: ESLint already handles all TypeScript linting via the react-app configuration
  • Cleaner build process: Removes an unnecessary linting step
  • Security improvement: Removes an unmaintained dependency
  • Faster linting: One less tool to run

Testing

The lint:typescript script now runs:

eslint src && tsc

This still provides:

  • ESLint checks for code quality and style
  • TypeScript compiler checks for type errors

Note on Inline Comments

There are TSLint disable comments in the codebase (e.g., // tslint:disable:no-console). These are harmless and will simply be ignored. They can be cleaned up in a future PR if desired, but they don't affect functionality.

Related Issues

  • CORE-1458: Modernize toolset (Epic)
  • CORE-1459: Remove TSLint (this task)

🤖 Generated with Claude Code

@OpenStaxClaude OpenStaxClaude requested a review from a team as a code owner December 24, 2025 13:18
@TomWoodward TomWoodward temporarily deployed to rex-web-core-1459-remov-a27bcz December 24, 2025 13:18 Inactive
@TomWoodward TomWoodward had a problem deploying to rex-web-core-1459-remov-a27bcz December 24, 2025 13:34 Failure
@TomWoodward TomWoodward had a problem deploying to rex-web-core-1459-remov-a27bcz December 24, 2025 14:08 Failure
@TomWoodward TomWoodward temporarily deployed to rex-web-core-1459-remov-a27bcz December 24, 2025 14:10 Inactive
@TomWoodward TomWoodward temporarily deployed to rex-web-core-1459-remov-a27bcz December 24, 2025 15:19 Inactive
OpenStaxClaude and others added 5 commits January 6, 2026 09:33
TSLint has been deprecated since 2019 and is no longer maintained.
All linting is now handled exclusively by ESLint.

Changes:
- Removed tslint package from devDependencies
- Removed tslint.json configuration file
- Updated lint:typescript script to remove tslint command
- Removed tslint.json mount from docker-compose.yml

ESLint continues to provide comprehensive TypeScript linting via
the react-app configuration.

Related to CORE-1458 (tooling modernization) and CORE-1459

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds comma-dangle and space-before-function-paren rules to .eslintrc
to maintain the code style that was previously enforced by TSLint.

Rules added:
- comma-dangle: Requires trailing commas in multiline arrays/objects,
  but not in function parameters (matches TSLint config)
- space-before-function-paren: No space before function parentheses
  (matches TSLint config)

These rules ensure consistent code formatting now that TSLint has
been removed from the project.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Removed 831 TSLint directive comments from 261 files across the
codebase, including both standalone comment lines and inline comments.

This cleanup follows the removal of the deprecated TSLint package.
These comments are now obsolete since all linting is handled by ESLint.

Changes:
- Removed standalone TSLint directive comments (e.g., // tslint:disable-next-line:no-console)
- Removed inline TSLint comments while preserving code (e.g., code; // tslint:disable-line:rule)
- Updated script/add-page-map.ts to not generate TSLint comments in output files

All code logic remains unchanged - only comments were removed.

Related to CORE-1459

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@RoyEJohnson RoyEJohnson force-pushed the core-1459-remove-tslint branch from 27cd5e8 to d0b1bc5 Compare January 6, 2026 15:33
@RoyEJohnson
Copy link
Contributor

I have added back a couple of rules that Claude didn't. It looks like they're a little smarter than the tslint rules, so we don't have to put in as many disabling comments. no-console appears to recognize which files are Node vs app, and the replacement for variable-name is ok with the const declarations of components.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the deprecated TSLint linter and configuration from the rex-web project, fully transitioning to ESLint for TypeScript linting. TSLint was deprecated in 2019 and is no longer maintained by the TypeScript team.

Key changes:

  • Removed tslint package from devDependencies and cleaned up yarn.lock
  • Deleted tslint.json configuration file
  • Updated lint:typescript script to remove tslint execution
  • Replaced TSLint disable comments with ESLint equivalents throughout codebase
  • Enhanced .eslintrc with rules to replace key TSLint functionality

Reviewed changes

Copilot reviewed 287 out of 289 changed files in this pull request and generated no comments.

Show a summary per file
File Description
package.json Removed tslint from devDependencies and updated lint:typescript script
yarn.lock Cleaned up tslint package and all its dependencies
tslint.json Deleted entire TSLint configuration file
.eslintrc Added ESLint rules to replace TSLint functionality (naming-convention, comma-dangle, max-len, no-console, etc.)
docker-compose.yml Removed tslint.json volume mount
200+ source files Replaced // tslint:disable comments with // eslint-disable or removed unnecessary ones

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants