check-es3-syntax
Version:
Check if contents of a file is es3-compatible
117 lines (91 loc) • 4.37 kB
Markdown
# check-es3-syntax
> Check if contents of a file is es3-compatible
[![NPM Version][npm-image]][npm-url]
[![Linux build Status][travis-image]][travis-url]
[![Windows Build Status][appveyor-image]][appveyor-url]
[![Coverage Status][coveralls-image]][coveralls-url]
[![Codeclimate Status][codeclimate-image]][codeclimate-url]
[![bitHound Dependencies][bithound-image]][bithound-url]
[![Dependency Status][david-image]][david-url]
[![Dev Dependency Status][david-dev-image]][david-dev-url]
[![Peer Dependency Status][david-peer-image]][david-peer-url]
## Usage
The module exports 2 functions:
* a default function accepting an array of filenames, and returns a promise
resolved with an array of the same files if they are transformed by
[es3ify][es3ify-url]
* Note that if you're using CommonJS, you have to do `require('check-es3-syntax').default;`
* a named function `checkString`, which takes a string as it's first argument,
and performs the same check, but only returns a single result
```js
import checkEs3Syntax, { checkString } from 'check-es3-syntax';
checkEs3Syntax(['filename1.js', 'filename2.js'])
.then(arr => {
arr.forEach(res => {
console.log(res.filename);
console.log(res.textDiff);
});
});
checkString('var o = { class: "Name" }')
.then(res => {
console.log(res.filename);
console.log(res.textDiff);
});
```
The promise returned is a [bluebird promise][bluebird-url], so you can use all
the sugar it provides, like `map`, `filter` and `each`.
The resolved array contains objects with diffs using [jsdiff][jsdiff-url], and
have the following structure:
```js
const returnValues = {
filename: 'name-of-file-passed-in.js',
patch: 'string', // A string with patch conent, as generated by `jsdiff.createPatch`
textDiff: 'object', // An object with diff objects, as generated by `jsdiff.diffChars`
}
```
## Options
Options are the second argument provided to `checkEs3Syntax`.
```js
import checkEs3Syntax, { checkString } from 'check-es3-syntax';
checkEs3Syntax(['filename1.js', 'filename2.js'], { savePatchToDisk: true, directory: process.cwd() })
.then(arr => {
// ...
});
checkString('var o = { class: "Name" }', { savePatchToDisk: true, directory: process.cwd(), filename: 'some file name' })
.then(res => {
// ...
});
```
#### `savePatchToDisk`
Type: `boolean`, default: `false`
Whether or not to save the patch file to disk.
#### `directory`
Type: `string`, default: `undefined`
If `savePatchToDisk` is set, this is the directory the file is saved to.
#### `filename`
Type: `string`, default: `inputString`
Only available when using `checkString`, this is the name used in the diffs and
generated patches.
## CLI
Use [`check-es3-syntax-cli`](https://www.npmjs.com/package/check-es3-syntax-cli).
[travis-url]: https://travis-ci.org/SimenB/check-es3-syntax
[travis-image]: https://img.shields.io/travis/SimenB/check-es3-syntax.svg
[appveyor-url]: https://ci.appveyor.com/project/SimenB/check-es3-syntax
[appveyor-image]: https://ci.appveyor.com/api/projects/status/9rusr82fifik4gm3?svg=true
[coveralls-url]: https://coveralls.io/github/SimenB/check-es3-syntax
[coveralls-image]: https://img.shields.io/coveralls/SimenB/check-es3-syntax.svg
[codeclimate-url]: https://codeclimate.com/github/SimenB/check-es3-syntax
[codeclimate-image]: https://img.shields.io/codeclimate/github/SimenB/check-es3-syntax.svg
[npm-url]: https://npmjs.org/package/check-es3-syntax
[npm-image]: https://img.shields.io/npm/v/check-es3-syntax.svg
[bithound-url]: https://www.bithound.io/github/SimenB/check-es3-syntax/master/dependencies/npm
[bithound-image]: https://www.bithound.io/github/SimenB/check-es3-syntax/badges/dependencies.svg
[david-url]: https://david-dm.org/SimenB/check-es3-syntax
[david-image]: https://img.shields.io/david/SimenB/check-es3-syntax.svg
[david-dev-url]: https://david-dm.org/SimenB/check-es3-syntax#info=devDependencies
[david-dev-image]: https://img.shields.io/david/dev/SimenB/check-es3-syntax.svg
[david-peer-url]: https://david-dm.org/SimenB/check-es3-syntax#info=peerDependencies
[david-peer-image]: https://img.shields.io/david/peer/SimenB/check-es3-syntax.svg
[jsdiff-url]: https://github.com/kpdecker/jsdiff
[es3ify-url]: https://github.com/spicyj/es3ify
[bluebird-url]: https://github.com/petkaantonov/bluebird