babel-preset-extendscript
What
Babel preset for transpiling ES2015 and modern JS conventions to ES3. Intended for use with Extendscript.
Install
With NPM:
$ npm install --save-dev babel-preset-extendscript
With Yarn:
$ yarn add --dev babel-preset-extendscript
Usage
.babelrc
(Recommended)
Via .babelrc
Via CLI
$ babel script.js --presets extendscript
Via Node API
;
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"]
- Can be
{
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.