Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
@babel/plugin-proposal-do-expressions
Advanced tools
@babel/plugin-proposal-do-expressions is a Babel plugin that allows you to use 'do' expressions in your JavaScript code. 'Do' expressions enable you to use blocks of code as expressions, which can be particularly useful for complex conditional logic or for creating more readable code.
Basic Do Expression
This feature allows you to use a block of code as an expression. In this example, the 'do' expression evaluates the conditional logic and assigns the result to the 'result' variable.
const result = do {
if (x > 10) {
'greater';
} else {
'lesser';
}
};
Do Expression with Multiple Statements
This feature allows you to include multiple statements within a 'do' expression. Here, a temporary variable 'temp' is calculated and used within the conditional logic.
const result = do {
let temp = x * 2;
if (temp > 10) {
'greater';
} else {
'lesser';
}
};
Do Expression with Function Call
This feature demonstrates how you can include function calls within a 'do' expression. The 'calculate' function is defined and called within the 'do' block, and its result is assigned to the 'result' variable.
const result = do {
function calculate(y) {
return y * 2;
}
calculate(x);
};
This Babel plugin allows you to inline environment variables into your code. While it doesn't provide 'do' expressions, it offers a way to manage environment-specific configurations, which can be useful for conditional logic based on environment variables.
babel-plugin-macros allows you to create custom compile-time transformations. While it doesn't directly offer 'do' expressions, it provides a way to create custom syntax and transformations, which can be used to achieve similar goals.
Compile do expressions to ES5
See our website @babel/plugin-proposal-do-expressions for more information.
Using npm:
npm install --save-dev @babel/plugin-proposal-do-expressions
or using yarn:
yarn add @babel/plugin-proposal-do-expressions --dev
v7.18.6 (2022-06-27)
babel-parser
...<...>
followed by newline or binary operator (@nicolo-ribaudo)babel-generator
, babel-parser
, babel-preset-env
, babel-template
babel-helper-remap-async-to-generator
, babel-plugin-proposal-async-generator-functions
await
in computed class keys (@Yokubjon-J)babel-plugin-transform-parameters
babel-core
babel-core
(@liuxingbaoyu)babel-core
, babel-helper-check-duplicate-nodes
, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression
, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining
, babel-plugin-proposal-destructuring-private
, babel-plugin-proposal-optional-chaining
, babel-plugin-transform-runtime
import { types } from "@babel/core"
with native ESM (@nicolo-ribaudo)babel-standalone
proposal-unicode-sets-regex
to @babel/standalone
(@nicolo-ribaudo)babel-generator
, babel-types
babel-code-frame
, babel-core
, babel-generator
, babel-helper-annotate-as-pure
, babel-helper-builder-binary-assignment-operator-visitor
, babel-helper-builder-react-jsx
, babel-helper-check-duplicate-nodes
, babel-helper-compilation-targets
, babel-helper-create-class-features-plugin
, babel-helper-create-regexp-features-plugin
, babel-helper-define-map
, babel-helper-explode-assignable-expression
, babel-helper-fixtures
, babel-helper-function-name
, babel-helper-hoist-variables
, babel-helper-member-expression-to-functions
, babel-helper-module-imports
, babel-helper-module-transforms
, babel-helper-optimise-call-expression
, babel-helper-plugin-test-runner
, babel-helper-plugin-utils
, babel-helper-remap-async-to-generator
, babel-helper-replace-supers
, babel-helper-simple-access
, babel-helper-split-export-declaration
, babel-helper-transform-fixture-test-runner
, babel-helper-validator-option
, babel-helper-wrap-function
, babel-helpers
, babel-highlight
, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining
, babel-plugin-external-helpers
, babel-plugin-proposal-async-generator-functions
, babel-plugin-proposal-class-static-block
, babel-plugin-proposal-decorators
, babel-plugin-proposal-destructuring-private
, babel-plugin-proposal-function-bind
, babel-plugin-proposal-function-sent
, babel-plugin-proposal-json-strings
, babel-plugin-proposal-object-rest-spread
, babel-plugin-proposal-optional-chaining
, babel-plugin-proposal-partial-application
, babel-plugin-proposal-pipeline-operator
, babel-plugin-proposal-private-property-in-object
, babel-plugin-proposal-record-and-tuple
, babel-plugin-syntax-typescript
, babel-plugin-transform-block-scoped-functions
, babel-plugin-transform-block-scoping
, babel-plugin-transform-classes
, babel-plugin-transform-computed-properties
, babel-plugin-transform-destructuring
, babel-plugin-transform-duplicate-keys
, babel-plugin-transform-exponentiation-operator
, babel-plugin-transform-flow-comments
, babel-plugin-transform-flow-strip-types
, babel-plugin-transform-for-of
, babel-plugin-transform-function-name
, babel-plugin-transform-modules-amd
, babel-plugin-transform-modules-commonjs
, babel-plugin-transform-modules-systemjs
, babel-plugin-transform-modules-umd
, babel-plugin-transform-object-super
, babel-plugin-transform-parameters
, babel-plugin-transform-property-mutators
, babel-plugin-transform-proto-to-assign
, babel-plugin-transform-react-constant-elements
, babel-plugin-transform-react-display-name
, babel-plugin-transform-react-inline-elements
, babel-plugin-transform-react-jsx-compat
, babel-plugin-transform-react-jsx-source
, babel-plugin-transform-react-jsx
, babel-plugin-transform-runtime
, babel-plugin-transform-typescript
, babel-plugin-transform-unicode-escapes
, babel-preset-env
, babel-preset-typescript
, babel-standalone
, babel-template
, babel-traverse
, babel-types
babel-core
, babel-helper-transform-fixture-test-runner
, babel-plugin-transform-destructuring
FAQs
Compile do expressions to ES5
The npm package @babel/plugin-proposal-do-expressions receives a total of 130,379 weekly downloads. As such, @babel/plugin-proposal-do-expressions popularity was classified as popular.
We found that @babel/plugin-proposal-do-expressions demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.