esc-rs
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

esc-rs

[!WARNING] Based on swc which use compat-data from babel, maybe not as same as caniuse, check this issue for more details.

usage

pnpm i esc-rs -D

Detect features with browserlist

import { detect } from 'esc-rs'

const result = detect({
  filename: 'input.js',
  code: 'const a = 1 ?? false',
  browserslist: 'IE 11',
})

// result
// {
//   features: {
//     nullishCoalescing: true,
//     ...
//   }
// }

Will output <feature>: true if <feature> not support in current browserslist.

If want to report code frame info

const result = detect({
  filename: 'input.js',
  code: 'const a = 1 ?? false',
  browserslist: 'IE 11',
})
for (const detail of result.details) {
  console.log(`Reason: ${detail.feature}`, code.slice(detail.s, detail.e))
}

detect

options

  • filename: string
  • code: string
  • browserslist: string

output

output.details

  • feature: not support feature-name based on current browserlists. e.g. nullishCoalescing
  • s: start char pos
  • e: end char pos
  • ls: start loc
  • le: end loc

lookup

options

unstable. Currently details.{feature|s|e} is required.

  • filename: string
  • details
    • feature: not support feature-name based on current browserlists. e.g. nullishCoalescing
    • s: start char pos
    • e: end char pos
    • ls: start loc
    • le: end loc

output

  • ls: start loc
  • le: end loc
  • source: original filename

[!WARNING] Currently unable to check polyfill features, e.g. Async iterators. In swc it will inject core-js polyfills instead of transform

Readme

Keywords

none

Package Sidebar

Install

npm i esc-rs

Weekly Downloads

5

Version

0.2.0

License

MIT

Unpacked Size

14.8 kB

Total Files

5

Last publish

Collaborators

  • qidanta