es6-class
Compiles JavaScript written using ES6 classes to use ES5-compatible function
syntax. For example, this:
class Person {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
get name() {
return this.firstName + ' ' + this.lastName;
}
toString() {
return this.name;
}
}
compiles to this:
var Person = function() {
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
Object.defineProperty(Person.prototype, "name", {
get: function() {
return this.firstName + ' ' + this.lastName;
},
enumerable: false
});
Object.defineProperty(Person.prototype, "toString", {
value: function() {
return this.name;
},
enumerable: false
});
return Person;
}();```
For more information about the proposed syntax, see the [wiki page on
classes](http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes).
## Install
$ npm install es6-class
## Usage
```js
$ node
> var compile = require('es6-class').compile;
Without arguments:
> compile('class Foo {}');
'var Foo = (function() {\n function Foo() {}\n return Foo;\n})();'
Browserify
Browserify support is built in.
$ npm install es6-class # install local dependency
$ browserify -t es6-class $file
Contributing
Setup
First, install the development dependencies:
$ npm install
Then, try running the tests:
$ npm test
To run specific example files:
$ node test/runner test/examples/my-example.js test/examples/other-example.js
Pull Requests
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Any contributors to the master es6-class repository must sign the Individual
Contributor License Agreement (CLA). It's a short form that covers our
bases and makes sure you're eligible to contribute.
When you have a change you'd like to see in the master repository, send a pull
request. Before we merge your
request, we'll make sure you're in the list of people who have signed a CLA.