aboutsummaryrefslogtreecommitdiff
path: root/babel-plugin-async-to-promises/README.md
diff options
context:
space:
mode:
authorSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2022-09-18 21:29:52 +0800
committerSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2022-09-18 21:29:52 +0800
commit420779f515ca2df3cde7b8f6f383f9ead8e127a6 (patch)
treea19be2bdb5474a30d3087396b5775548deca97e0 /babel-plugin-async-to-promises/README.md
parent7cece8c872a744fc23be029510bd0a9dfd168c25 (diff)
downloadSoopyV2-420779f515ca2df3cde7b8f6f383f9ead8e127a6.tar.gz
SoopyV2-420779f515ca2df3cde7b8f6f383f9ead8e127a6.tar.bz2
SoopyV2-420779f515ca2df3cde7b8f6f383f9ead8e127a6.zip
+ swap promises to use arrow function for correct 'this' context
Diffstat (limited to 'babel-plugin-async-to-promises/README.md')
-rw-r--r--babel-plugin-async-to-promises/README.md133
1 files changed, 133 insertions, 0 deletions
diff --git a/babel-plugin-async-to-promises/README.md b/babel-plugin-async-to-promises/README.md
new file mode 100644
index 0000000..63dab45
--- /dev/null
+++ b/babel-plugin-async-to-promises/README.md
@@ -0,0 +1,133 @@
+Kneden (babel-plugin-async-to-promises)
+=======================================
+
+[![Build Status](https://travis-ci.org/marten-de-vries/kneden.svg?branch=master)](https://travis-ci.org/marten-de-vries/kneden)
+[![Dependency Status](https://david-dm.org/marten-de-vries/kneden.svg)](https://david-dm.org/marten-de-vries/kneden)
+[![devDependency Status](https://david-dm.org/marten-de-vries/kneden/dev-status.svg)](https://david-dm.org/marten-de-vries/kneden#info=devDependencies)
+
+> Transpile ES7 async/await to vanilla ES6 Promise chains
+
+**WARNING: Kneden
+[is usable](https://github.com/pouchdb/pouchdb-plugin-helper/pull/9), but it's
+also [not complete yet](https://github.com/marten-de-vries/kneden/issues/13).**
+
+Do you want an ES7 async/await transpiling [Babel](https://babeljs.io/) plugin,
+that:
+
+- produces readable code - even when generator functions are not available?
+- doesn't come with a runtime your users have to download?
+
+Then look no further! **Kneden (babel-plugin-async-to-promises)** can help you.
+
+## Example
+
+**In**
+
+```js
+async function test() {
+ await db.destroy();
+}
+```
+
+**Out**
+
+```js
+function test() {
+ return Promise.resolve().then(function () {
+ return db.destroy();
+ }).then(function () {});
+}
+```
+
+(The last .then() might seem superfluous at first, but the first function
+doesn't actually resolve to anything so it's necessary to make a valid
+translation.)
+
+**Kneden** tries to translate ES7 async/await to promises in a manner similar to
+how a human would do so. Loops are converted to recursive functions, and your
+code is modified in such a way that a return won't just drop you in the next
+part of the promise chain, but actually does what you expect it to do.
+
+For more examples, see the
+[test/fixtures directory](https://github.com/marten-de-vries/kneden/tree/master/test/fixtures)
+for both the input and output **Kneden** takes/produces.
+
+## Installation
+
+```sh
+$ npm install babel-plugin-async-to-promises
+```
+
+## Usage
+
+Note: Kneden only supports transpiling ES5 with the addition of async/await. If
+you're using other ES6 features (like arrow functions, let/const, classes,
+etc.), make sure you transpile them down to valid ES5 code first using the
+[babel es2015 preset](https://www.npmjs.com/package/babel-preset-es2015). See
+[#19](https://github.com/marten-de-vries/kneden/issues/19) for more information.
+
+### Via `.babelrc` (Recommended)
+
+**.babelrc**
+
+```json
+{
+ "plugins": ["async-to-promises"]
+}
+```
+
+### Via CLI
+
+```sh
+$ babel --plugins async-to-promises script.js
+```
+
+### Via Node API
+
+```javascript
+require("babel-core").transform("code", {
+ plugins: ["async-to-promises"]
+});
+```
+
+You can also use the plug-in in [Browserify](http://browserify.org/) using
+[babelify](https://github.com/babel/babelify), in [Rollup](http://rollupjs.org/)
+by using it in conjunction with
+[rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel), and in
+[Webpack](https://webpack.github.io/) using
+[babel-loader](https://github.com/babel/babel-loader).
+
+Unsupported
+-----------
+
+- Return statements aren't properly supported in switch and try/catch/finally
+ statements yet ([#13](https://github.com/marten-de-vries/kneden/issues/13))
+- No ``eval()``; but that's true for other Babel plugins/presets as well.
+
+Contributing
+------------
+
+There are a couple of ways to contribute, for example by:
+
+- Reporting test results with your code base
+- Fixing bugs, for a nice starting task see the ones labeled '[good first bug](https://github.com/marten-de-vries/kneden/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+bug%22)'.
+
+Contributions are very welcome! Just open an issue or PR.
+
+What's up with the name?
+------------------------
+
+It's Dutch for 'to knead'/'to mold' - the program molds ES7 async/await
+constructs into promises. It seemed applicable. [Pronounciation](https://upload.wikimedia.org/wikipedia/commons/0/0e/Nl-kneden.ogg).
+
+The npm package name is a more descriptive one as explained in
+[issue #22](https://github.com/marten-de-vries/kneden/issues/22).
+
+License
+-------
+
+ISC
+
+---
+
+**Kneden** is a project by [Marten de Vries](https://ma.rtendevri.es/).