Skip to content

A linter for TypeScript pipeline code - #5

Merged
JoshuaWink merged 1 commit into
betafrom
typescript-lint
Oct 10, 2026
Merged

JoshuaWink merged 1 commit into
betafrom
typescript-lint

Conversation

@JoshuaWink

Copy link
Copy Markdown
Member

What is added

packages/codeupipe-lint-ts, a linter that reads TypeScript source. It is a codeupipe pipeline, and it parses with the typescript package.

Rules

  • CUP-A001, A002, A003, A005, A008: a step with no name.
  • CUP-A009: an object literal as a step. TypeScript only.
  • CUP-I003: a Filter or a Predicate reads State.
  • CUP-I004: a Tap, a Predicate or a Hook writes to the Payload.
  • CUP-I005, I006, I007: one primitive in each file, the file name, the role in the class name.

CUP-I001 is not needed in TypeScript, because the data of a Payload is in a private field. CUP-I002 is not built.

Turn a finding off

A comment marker, --exclude, --disable, or the lint section of cup.config.json.

This pull request is part of a stack. Merge the stack in order, with a merge commit: step-labels, typescript-runtime, typescript-lint, typescript-compile, python-compile-rename, version-2-beta. Each one shows only its own change.

🤖 Generated with Claude Code

packages/codeupipe-lint-ts reads TypeScript source and reports:

- a step with no name: a function, an object literal, a class that is
  declared in a function, a plain nested Pipeline (CUP-A001, A002, A003,
  A005, A008, A009);
- a Filter or a Predicate that reads State (CUP-I003);
- a Tap, a Predicate or a Hook that writes to the Payload (CUP-I004);
- more than one primitive in a file, a file name that is not the class
  name in kebab-case, a class name with no role (CUP-I005, I006, I007).

The linter is a codeupipe pipeline. It uses the typescript package to
parse. A finding is turned off with a comment marker, --exclude,
--disable, or the lint section of cup.config.json.

CUP-I001 is not needed in TypeScript, because the data of a Payload is
in a private field. CUP-I002 is not built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JoshuaWink
JoshuaWink changed the base branch from typescript-runtime to beta October 10, 2026 21:19
@JoshuaWink
JoshuaWink merged commit a47e7c3 into beta Oct 10, 2026
11 checks passed
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.

1 participant