Skip to content

Conversation

@ryoppippi
Copy link
Member

@ryoppippi ryoppippi commented Dec 10, 2025

Summary

Consolidate type checking into oxlint and simplify linting infrastructure by removing the separate typecheck script.

  • Replace tsgo --noEmit with oxlint --type-check in lint and format commands
  • Remove dedicated typecheck scripts (typecheck, typecheck:root, typecheck:submodules)
  • Add explicit lint:submodule and format:submodule commands for workspace operations
  • Update examples to use oxlint directly instead of separate typecheck script
  • Simplify lefthook configuration by removing nested groups and integrating type-check
  • Configure knip to ignore @typescript/native-preview

Verification

  • ✅ All lint checks pass
  • ✅ Examples lint works correctly
  • ✅ pre-commit hooks function properly
  • ✅ Format commands work as expected

Test plan

  • Run pnpm run lint to verify root and submodule linting
  • Run pnpm run format to verify root formatting
  • Run pnpm run lint:submodule to verify submodule linting
  • Run cd examples && pnpm run lint to verify examples linting

Summary by cubic

Consolidates TypeScript type checking into oxlint for simpler, faster linting and pre-commit checks. Removes separate typecheck scripts and adds workspace-friendly lint/format commands.

  • Refactors

    • Replaced tsgo --noEmit with oxlint --type-check in lint and format commands.
    • Removed typecheck, typecheck:root, and typecheck:submodules scripts.
    • Added lint:submodule and format:submodule for workspace runs.
    • Updated examples to use oxlint for lint and format.
    • Simplified lefthook: single oxlint and oxfmt pre-commit jobs with type-check; piped execution.
    • Knip: ignore @typescript/native-preview and lefthook; run knip on push.
    • Removed CI typecheck step; lint now covers type checking.
  • Migration

    • Use pnpm run lint (and format) instead of typecheck.
    • For workspaces, use pnpm run lint:submodule and pnpm run format:submodule.

Written for commit f2338ea. Summary will update automatically on new commits.

- Replace typecheck scripts with oxlint --type-check in lint and format
- Remove dedicated typecheck, typecheck:root, typecheck:submodules scripts
- Add lint:submodule and format:submodule for workspace linting/formatting
- Update examples to use lint and format with oxlint directly
- Simplify lefthook configuration: remove nested groups, add type-check to hook

This consolidates type checking into oxlint, eliminating the need for
separate tsgo --noEmit invocations. Introduces explicit submodule commands
for workspace-level operations.
Add @typescript/native-preview to knip's ignoreDependencies list to
prevent false positive unused dependency warnings. This package is
required for TypeScript native preview features and is not directly
imported in source code.
Copilot AI review requested due to automatic review settings December 10, 2025 10:50
@ryoppippi ryoppippi requested a review from a team as a code owner December 10, 2025 10:50
@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 10, 2025

Open in StackBlitz

npm i https://pkg.pr.new/StackOneHQ/stackone-ai-node/@stackone/ai@200

commit: f2338ea

The typecheck functionality is now integrated into the lint step via
oxlint --type-check, so the dedicated typecheck step is no longer needed.
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 4 files

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 consolidates type checking into oxlint by replacing the separate tsgo --noEmit type checking with oxlint --type-check, simplifying the linting infrastructure and reducing the number of commands needed.

  • Integrates type checking directly into lint and format workflows using oxlint --type-check
  • Removes three dedicated typecheck scripts (typecheck, typecheck:root, typecheck:submodules)
  • Adds explicit workspace commands for submodule operations (lint:submodule, format:submodule)

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

File Description
package.json Adds --type-check flag to oxlint commands, removes typecheck scripts, adds submodule commands
lefthook.yaml Simplifies pre-commit hooks by consolidating type checking into oxlint, changes execution from parallel to piped
knip.config.ts Adds @typescript/native-preview to ignoreDependencies to prevent knip warnings
examples/package.json Replaces typecheck script with lint and format scripts using oxlint with --type-check

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

"type": "module",
"scripts": {
"typecheck": "tsgo --noEmit"
"lint": "oxlint --max-warnings=0 --type-aware --type-check",
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

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

The examples lint script only runs oxlint, but the root package lint includes both oxfmt check and oxlint. This creates an inconsistency in linting behavior between root and examples. Consider adding oxfmt check to the examples lint script:

"lint": "oxfmt --no-error-on-unmatched-pattern --check . && oxlint --max-warnings=0 --type-aware --type-check"

Or if oxfmt is not needed in examples, document why the linting approach differs from the root package.

Suggested change
"lint": "oxlint --max-warnings=0 --type-aware --type-check",
"lint": "oxfmt --no-error-on-unmatched-pattern --check . && oxlint --max-warnings=0 --type-aware --type-check",

Copilot uses AI. Check for mistakes.
@ryoppippi ryoppippi force-pushed the refactor/replace-typecheck-with-oxlint branch from 7da0a69 to 85db2c1 Compare December 10, 2025 10:54
Add knip dependency check to the push hook to catch unused dependencies
before they are pushed to the repository.
@ryoppippi ryoppippi force-pushed the refactor/replace-typecheck-with-oxlint branch from 85db2c1 to f2338ea Compare December 10, 2025 10:56
@ryoppippi ryoppippi enabled auto-merge (squash) December 10, 2025 10:57
@ryoppippi ryoppippi merged commit 4844eaf into main Dec 10, 2025
9 checks passed
@ryoppippi ryoppippi deleted the refactor/replace-typecheck-with-oxlint branch December 10, 2025 14:40
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.

3 participants