Socket
Book a DemoInstallSign in
Socket

swc-plugin-bigint-literal

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

swc-plugin-bigint-literal

A SWC plugin to transform BigInt literals

latest
Source
npmnpm
Version
1.1.0
Version published
Maintainers
0
Created
Source

SWC Plugin BigInt Literal

A SWC compiler plugin that transforms BigInt literals in JavaScript code. It converts BigInt literals into BigInt() function calls and decomposes large numbers into arithmetic expressions.

Features

  • Supports transformation of all numeric literal formats:
    • Decimal (e.g., 123n)
    • Hexadecimal (e.g., 0xffn)
    • Binary (e.g., 0b1111n)
    • Octal (e.g., 0o777n)
  • Handles numbers both within and beyond the safe integer range
  • Preserves original number representation format
  • Supports negative numbers
  • Supports transformation within expressions

Transform Examples

// Basic transformations
123n          -> BigInt(123)
0xffn         -> BigInt(255)
0b1111n       -> BigInt(15)
0o777n        -> BigInt(511)

// Negative numbers
-42n          -> -BigInt(42)
-0xffn        -> -BigInt(255)

// Expressions
1n + 2n       -> BigInt(1) + BigInt(2)

// Large numbers
9007199254740992n -> BigInt(9007199254740991) + BigInt(1)

// Very large numbers
730750818665451215712927172538123444058715062272n -> 
    BigInt(9007199254740991) * BigInt(9007199254740991) * BigInt(9007199254740991) + BigInt(1)

How it Works

  • For numbers within JavaScript's safe integer range ([-2^53 + 1, 2^53 - 1]):

    • Directly converts to BigInt() calls
    • Preserves the original number format
  • For numbers beyond the safe integer range:

    • Decomposes into arithmetic expressions using safe integers
    • Uses base-MAX_SAFE_INTEGER representation
    • Generates optimal expressions to minimize operations
    • Ensures all intermediate values are within safe range

Usage

  • Install the plugin:

    npm install --save-dev swc-plugin-bigint-literal
    
  • Configure .swcrc:

    {
      "jsc": {
        "experimental": {
          "plugins": [
            ["swc-plugin-bigint-literal", {}]
          ]
        }
      }
    }
    

Development Requirements

  • Rust
  • wasm32-wasip1 target
  • Node.js >= 14.0.0

License

MIT

Keywords

swc-plugin

FAQs

Package last updated on 07 Mar 2025

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