Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

sxzz/tc39-throw

tc39-throw

npm version npm downloads Unit Test

An implementation of the ECMAScript throw expressions proposal.

⚠️ For demo and toy-level projects only - not for production use!

Install

Install the package via npm:

npm i tc39-throw

Features

This demo project showcases full toolchain integration for the throw operator:

  • TypeScript - Full type support with transformations.
  • Bundler - Seamless integration with Vite and other bundlers via unplugin.
  • Prettier - Code formatting support.
  • ESLint - Linting with proper syntax recognition.
  • Development - Hot reload and dev server support powered by Vite.

Configuration

Vite Integration

To integrate with Vite, configure your vite.config.ts as follows:

// vite.config.ts
import Throw from 'tc39-throw/unplugin'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [Throw.vite()],
})

TypeScript Macro

For proper syntax highlighting and IntelliSense support of the throw operator, install the TS Macro extension in VS Code.

Alternatively, search for "TS Macro" in the VS Code Extensions marketplace.

Then, configure your ts-macro.config.ts:

// ts-macro.config.ts
import volar from 'tc39-throw/volar'

export default {
  plugins: [volar()],
}

Prettier Configuration

To enable Prettier support for the throw operator, configure your prettier.config.js as follows:

// prettier.config.js
import { fileURLToPath } from 'node:url'

export default {
  // ...
  plugins: [fileURLToPath(import.meta.resolve('tc39-throw/prettier'))],
}

ESLint Configuration

To enable ESLint support for the throw operator, configure your eslint.config.js as follows:

// eslint.config.js
import { GLOB_JS, GLOB_TS, sxzz } from '@sxzz/eslint-config'
import * as tsParser from 'tc39-throw/eslint-typescript-parser'
import * as jsParser from 'tc39-throw/espree'

export default sxzz().append(
  {
    files: [GLOB_TS],
    languageOptions: { parser: tsParser },
  },
  {
    files: [GLOB_JS],
    languageOptions: { parser: jsParser },
  },
)

Sponsors

License

MIT License © 2025 Kevin Deng

About

Enable support for throw expressions in JavaScript tools

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •