Simple tool for migrating computed properties (used with .property()
) from syntax deprecated in Ember 3.9.
# With NPM
npm install ember-property-upgrade --save
# With Yarn
yarn add ember-property-upgrade
After installation a CLI is available in your project.
./node_modules/.bin/ember-property-upgrade [filesGlob] [options] --help
[filesGlob]
- glob expression, which points to files, e.g.'src/**/*.js'
[options]
- defined in Options section
Alternatively you can install module globally and access it via alias ember-property-upgrade
.
This tool helps with smooth migration to new computed property syntax. Simply run the CLI and you are done!
By default ember-property-upgrade doesn't format transformed code. To run auto-format the code use
--format=true
when running CLI (see Options for more details).
Before
const Person = EmberObject.extend({
fullName: computed(function() {
return `${this.firstName} ${this.lastName}`;
}).property('firstName', 'lastName'),
isYoung: Ember.computed(function() {
return this.age < 50;
}).property('age'),
hasFriends: function() {
return this.friends.length > 0;
}.property('friends'),
});
After
const Person = EmberObject.extend({
fullName: computed('firstName', 'lastName', function() {
return `${this.firstName} ${this.lastName}`;
}),
isYoung: Ember.computed('age', function() {
return this.age < 50;
}),
hasFriends: Ember.computed('friends', function() {
return this.friends.length > 0;
}),
});
Option | Type | Description | Default |
---|---|---|---|
--format |
Boolean | Enable auto formatting after code parsing | false |
--prettier-config-file |
String | Path to Prettier config file (accepts JS and JSON files) | |
--prettier-config |
String | Prettier config as JSON string | |
--framework-pkg |
String | Name of Ember's import alias | 'Ember' |
--computed-fn-name |
String | Name of computed property function name | 'computed' |
Migration tool can be used directly in Node.js environment.
const { transform } = require('ember-property-upgrade');
// or using ES modules
import { transform } from 'ember-property-upgrade';
Usage
// Transforming the code
// input {String} - code input
// options {TransformOptions} - options for parser
const parsedCode = transform(input, options);
Created by Mirosław Ciastek. Released under the MIT License.