Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fusepilot/babel-preset-extendscript
Babel preset for transpiling ES2015 and modern JS conventions to ES3.
https://github.com/fusepilot/babel-preset-extendscript
babel extendscript
Last synced: 3 days ago
JSON representation
Babel preset for transpiling ES2015 and modern JS conventions to ES3.
- Host: GitHub
- URL: https://github.com/fusepilot/babel-preset-extendscript
- Owner: fusepilot
- Created: 2016-08-16T11:32:06.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-10-01T15:52:48.000Z (about 4 years ago)
- Last Synced: 2024-04-14T04:51:08.850Z (7 months ago)
- Topics: babel, extendscript
- Language: JavaScript
- Homepage:
- Size: 161 KB
- Stars: 41
- Watchers: 3
- Forks: 17
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# babel-preset-extendscript
## What
Babel preset for transpiling ES2015 and modern JS conventions to ES3. Intended for use with Extendscript.
## Install
With NPM:
```sh
$ npm install --save-dev babel-preset-extendscript
```With Yarn:
```sh
$ yarn add --dev babel-preset-extendscript
```## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"presets": ["extendscript"]
}
```### Via CLI
```sh
$ babel script.js --presets extendscript
```### Via Node API
```javascript
require('babel-core').transform('code', {
presets: ['extendscript'],
});
```## Options
* `loose` - Enable "loose" transformations for any plugins in this preset that allow them (Disabled by default).
* `modules` - Enable transformation of ES6 module syntax to another module type (Enabled by default to "commonjs").
* Can be `false` to not transform modules, or one of `["amd", "umd", "systemjs", "commonjs"]````
{
presets: [
["extendscript", {"loose": true, "modules": "amd"}]
]
}
{
presets: [
["extendscript", {"loose": true, "modules": false}]
]
}
```## Features
### ES2015
* babel-plugin-transform-es2015
### Convenience
* console.log
* JSON.stringify
* JSON.parse
* setTimeout
* setInterval
* clearTimeout
* clearInterval### Shims
* Object.keys
* Object.assign
* Object.create
* Array.isArray
* Number.isFinite
* Array.prototype.forEach
* Array.prototype.find
* Array.prototype.filter
* Array.prototype.map
* Array.prototype.reduce### Shams
* Object.getPrototypeOf
* Object.defineProperty
* Object.defineProperties
* Object.getOwnPropertyNames
* Object.getOwnPropertyDescriptor
* Object.seal
* Object.freeze
* Object.isSealed
* Object.isFrozen
* Object.isExtensible### Fixes
* Wraps all conditional expressions in parentheses to prevent `Expected: :` error.
## Known Issues
• CallExpression's that uses other transforms from this preset only insert them 1 level deep due to path.unshiftContainer adding a new CallExpression in Program:exit(). Need to figure out a way to do another Program:exit() after the first if new CallExpressions have been added so state[name].matches can be += 1'd.