Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

babel-preset-const-enum

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-preset-const-enum

Babel preset for TypeScript `const` enums

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
17K
increased by7.21%
Maintainers
1
Weekly downloads
 
Created
Source

babel-preset-const-enum

Babel preset for TypeScript const enums

Install

Using npm:

npm install --save-dev babel-preset-const-enum

or using yarn:

yarn add babel-preset-const-enum --dev

Description

This preset runs babel-plugin-const-enum only on files with extensions .ts or .tsx. This prevents SyntaxErrors from happening when mistakenly running babel-plugin-const-enum on non-TypeScript files such as flow, which uses a .js extension.

A babel preset is required because plugins don't have access to the file extension of the file the plugin may run on.

Usage

You are most likely using @babel/preset-typescript as along with this preset. Make sure that babel-preset-const-enum comes after @babel/preset-typescript in the preset array so that babel-preset-const-enum runs first. This preset needs to run first to transform the const enums into code that @babel/preset-typescript allows.

.babelrc

{
  "presets": ["@babel/typescript", "const-enum"]
}

allExtensions

boolean, defaults to false.

Indicates that every file extension should be parsed.

transform: removeConst (default)

Removes the const keyword to use regular enum. Can be used in a slower dev build to allow const, while prod still uses tsc. See babel#6476.

// Before:
const enum MyEnum {
  A = 1,
  B = A,
  C,
  D = C,
  E = 1,
  F,
  G = A * E,
  H = A ** (B ** C),
  I = A << 20,
}

// After:
enum MyEnum {
  A = 1,
  B = A,
  C,
  D = C,
  E = 1,
  F,
  G = A * E,
  H = A ** (B ** C),
  I = A << 20,
}

.babelrc

{
  "presets": ["const-enum"]
}

Or Explicitly:

.babelrc

{
  "presets": [
    [
      "const-enum",
      {
        "transform": "removeConst"
      }
    ]
  ]
}

transform: constObject

Transforms into a const object literal. Can be further compressed using Uglify/Terser to inline enum access. See babel#8741.

// Before:
const enum MyEnum {
  A = 1,
  B = A,
  C,
  D = C,
  E = 1,
  F,
  G = A * E,
  H = A ** (B ** C),
  I = A << 20,
}

// After:
const MyEnum = {
  A: 1,
  B: 1,
  C: 2,
  D: 2,
  E: 1,
  F: 2,
  G: 1,
  H: 1,
  I: 1048576,
};

.babelrc

{
  "presets": [
    [
      "const-enum",
      {
        "transform": "constObject"
      }
    ]
  ]
}

Keywords

FAQs

Package last updated on 12 Apr 2020

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc