Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xunnamius/toss-expression
⚡ A tiny ponyfill for @babel/plugin-proposal-throw-expressions, the syntax from which TypeScript and VS Code do not (yet) support
https://github.com/xunnamius/toss-expression
babel code expression expressions invalid proposal statement support throw toss typescript vs
Last synced: 3 days ago
JSON representation
⚡ A tiny ponyfill for @babel/plugin-proposal-throw-expressions, the syntax from which TypeScript and VS Code do not (yet) support
- Host: GitHub
- URL: https://github.com/xunnamius/toss-expression
- Owner: Xunnamius
- License: mit
- Created: 2021-04-22T12:52:42.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-31T09:38:25.000Z (5 months ago)
- Last Synced: 2024-10-06T06:41:15.861Z (about 1 month ago)
- Topics: babel, code, expression, expressions, invalid, proposal, statement, support, throw, toss, typescript, vs
- Language: JavaScript
- Homepage: https://npm.im/toss-expression
- Size: 18.6 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Black Lives Matter!][badge-blm]][link-blm]
[![Maintenance status][badge-maintenance]][link-repo]
[![Last commit timestamp][badge-last-commit]][link-repo]
[![Open issues][badge-issues]][link-issues]
[![Pull requests][badge-pulls]][link-pulls]
[![codecov][badge-codecov]][link-codecov]
[![Source license][badge-license]][link-license]
[![NPM version][badge-npm]][link-npm]
[![semantic-release][badge-semantic-release]][link-semantic-release]# toss-expression
While
[Babel supports throw expressions via plugins](https://babeljs.io/docs/en/babel-plugin-proposal-throw-expressions),
[TypeScript and VS Code do not (yet)](https://github.com/microsoft/TypeScript/issues/18535).
Hence this five line ponyfill takes the place of the currently-unavailable
[`@babel/plugin-proposal-throw-expressions`](https://babeljs.io/docs/en/babel-plugin-proposal-throw-expressions)
syntax.```typescript
// Though the following is supported by Babel, VS Code/TypeScript will complain
const userToken = secureRequest() || throw new SecureAccessError('badness occurred');// No errors
const userToken = secureRequest() || toss(new SecureAccessError('badness occurred'));
```## Installation and Usage
```bash
npm install toss-expression
``````typescript
// ESM
import { toss } from 'toss-expression';
console.log(successMessage() || toss('log operation failed'));
``````javascript
// CJS
const { toss } = require('toss-expression');
console.log(successMessage() || toss('log operation failed'));
```## Documentation
Further documentation can be found under [`docs/`][docs].
## Contributing and Support
**[New issues][choose-new-issue] and [pull requests][pr-compare] are always
welcome and greatly appreciated! 🤩** Just as well, you can [star 🌟 this
project][link-repo] to let me know you found it useful! ✊🏿 Thank you!See [CONTRIBUTING.md][contributing] and [SUPPORT.md][support] for more
information.[badge-blm]: https://xunn.at/badge-blm 'Join the movement!'
[link-blm]: https://xunn.at/donate-blm
[badge-maintenance]:
https://img.shields.io/maintenance/active/2024
'Is this package maintained?'
[link-repo]: https://github.com/xunnamius/toss-expression
[badge-last-commit]:
https://img.shields.io/github/last-commit/xunnamius/toss-expression
'When was the last commit to the official repo?'
[badge-issues]:
https://isitmaintained.com/badge/open/Xunnamius/toss-expression.svg
'Number of known issues with this package'
[link-issues]: https://github.com/Xunnamius/toss-expression/issues?q=
[badge-pulls]:
https://img.shields.io/github/issues-pr/xunnamius/toss-expression
'Number of open pull requests'
[link-pulls]: https://github.com/xunnamius/toss-expression/pulls
[badge-codecov]:
https://codecov.io/gh/Xunnamius/toss-expression/branch/main/graph/badge.svg?token=HWRIOBAAPW
'Is this package well-tested?'
[link-codecov]: https://codecov.io/gh/Xunnamius/toss-expression
[package-json]: package.json
[badge-license]:
https://img.shields.io/npm/l/toss-expression
"This package's source license"
[link-license]: https://github.com/Xunnamius/toss-expression/blob/main/LICENSE
[badge-npm]:
https://api.ergodark.com/badges/npm-pkg-version/toss-expression
'Install this package using npm or yarn!'
[link-npm]: https://www.npmjs.com/package/toss-expression
[badge-semantic-release]:
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
'This repo practices continuous integration and deployment!'
[link-semantic-release]: https://github.com/semantic-release/semantic-release
[docs]: docs
[choose-new-issue]:
https://github.com/Xunnamius/toss-expression/issues/new/choose
[pr-compare]: https://github.com/Xunnamius/toss-expression/compare
[contributing]: CONTRIBUTING.md
[support]: .github/SUPPORT.md