# tc39/proposal-pipeline-operator

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tc39-proposal-pipeline-operator).**

7,897 stars · 106 forks · HTML · BSD-3-Clause

## Links

- GitHub: https://github.com/tc39/proposal-pipeline-operator
- Homepage: http://tc39.github.io/proposal-pipeline-operator/
- awesome-repositories: https://awesome-repositories.com/repository/tc39-proposal-pipeline-operator.md

## Topics

`javascript` `operator` `pipeline` `proposal` `syntax` `tc39`

## Description

This is an ECMAScript proposal that introduces a pipeline operator for JavaScript, enabling left-to-right expression chaining with a dedicated placeholder token to reference the previous step's value. The proposal defines a syntax-only transformation that desugars to standard JavaScript, requiring no new runtime support or engine primitives.

The pipeline operator allows chaining operations sequentially, passing each result to the next step in natural reading order. It includes a null-safe variant that short-circuits on nullish values, returning them unchanged and skipping remaining steps. Each pipeline step evaluates in the same lexical scope as the surrounding code, preserving variable access without closure overhead.

The proposal also covers binding values in control flow statements, such as conditions in if statements, caught errors in catch blocks, and iterated values in for-of loops. This enables expression-oriented programming patterns where operations compose without intermediate variables or function wrappers.

## Tags

### Programming Languages & Runtimes

- [ECMAScript Syntax Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/language-extensions/ecmascript-syntax-extensions.md) — Introduces new syntactic constructs to the ECMAScript language specification for functional programming.
- [Expression-Oriented Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/expression-oriented-evaluation.md) — Emphasizes expressions over statements, using pipelines to compose operations without intermediate variables.
- [Functional Pipeline Operators](https://awesome-repositories.com/f/programming-languages-runtimes/functional-pipeline-operators.md) — Chains values through transformations in a readable left-to-right flow using functional pipeline operators.
- [ECMAScript Proposal Polyfills](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/javascript-language-features/ecmascript-proposal-polyfills.md) — An ECMAScript proposal that adds a pipe operator for chaining expressions with a placeholder token.
- [Placeholder Token References](https://awesome-repositories.com/f/programming-languages-runtimes/regular-expression-engines/lexical-tokenizers/placeholder-token-references.md) — Provides a dedicated placeholder token to reference prior step outputs, enabling flexible composition.

### Part of an Awesome List

- [Pipeline Composition Syntax](https://awesome-repositories.com/f/awesome-lists/devtools/syntax-and-programming/pipeline-composition-syntax.md) — Provides syntax for composing functions and expressions in a left-to-right reading order.

### Data & Databases

- [Sequential Chaining](https://awesome-repositories.com/f/data-databases/block-mining/sequential-chaining.md) — Pipes a value through a series of expressions, passing each result to the next step sequentially. ([source](https://cdn.jsdelivr.net/gh/tc39/proposal-pipeline-operator@main/README.md))
- [Control Flow Value Bindings](https://awesome-repositories.com/f/data-databases/streaming-data-pipelines/value-flow-pipelines/control-flow-value-bindings.md) — Binds values in control flow statements like if, catch, and for-of for expression-oriented programming. ([source](https://cdn.jsdelivr.net/gh/tc39/proposal-pipeline-operator@main/README.md))

### Development Tools & Productivity

- [Expression Composition](https://awesome-repositories.com/f/development-tools-productivity/expression-composition.md) — Defines a syntax for chaining expressions directly without function wrappers or explicit argument passing.
- [Lexical Scope Analysis](https://awesome-repositories.com/f/development-tools-productivity/dynamic-variable-evaluators/scope-resolution-rules/lexical-scope-analysis.md) — Ensures each pipeline step evaluates in the same lexical scope as surrounding code, preserving variable access.

### User Interface & Experience

- [Left-to-Right Data Flows](https://awesome-repositories.com/f/user-interface-experience/frontend-ui-toolkits/right-to-left-support/left-to-right-data-flows.md) — Enables sequential operations in natural reading order, a core design principle of the pipeline operator.

### Web Development

- [Pipeline Placeholder References](https://awesome-repositories.com/f/web-development/state-management/previous-value-tracking/pipeline-placeholder-references.md) — Uses a placeholder token to reference the previous step's value within any pipeline expression. ([source](https://cdn.jsdelivr.net/gh/tc39/proposal-pipeline-operator@main/README.md))
- [Syntax Transformers](https://awesome-repositories.com/f/web-development/syntax-transformers.md) — Defines a syntax-only transformation that desugars to standard JavaScript without runtime support.
- [Nullish Short-Circuiting](https://awesome-repositories.com/f/web-development/middleware-pipelines/pipeline-short-circuiting/nullish-short-circuiting.md) — Implements nullish short-circuiting that halts pipeline execution on null or undefined values.

### Artificial Intelligence & ML

- [Control Flow Value Bindings](https://awesome-repositories.com/f/artificial-intelligence-ml/conditional-execution-flows/control-flow-value-bindings.md) — Binds values in control flow statements like if, catch, and for-of for expression-oriented programming.

### Software Engineering & Architecture

- [Null-Safe Pipeline Operators](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/fallback-value-logic/null-coalescing-operators/null-safe-pipeline-operators.md) — Implements a pipeline variant that short-circuits on nullish values, passing them through unchanged.
- [Nullish Pipeline Skipping](https://awesome-repositories.com/f/software-engineering-architecture/runtime-value-validation/nullish-value-validations/nullish-pipeline-skipping.md) — Stops pipeline processing early on nullish values, returning them unchanged without further steps. ([source](https://cdn.jsdelivr.net/gh/tc39/proposal-pipeline-operator@main/README.md))
- [Pipeline Chaining](https://awesome-repositories.com/f/software-engineering-architecture/string-matching-algorithms/string-comparisons/null-safe/pipeline-chaining.md) — Stops pipeline early on nullish values, returning them unchanged without further processing.
