ember-property-upgrade
v0.0.7
Published
Tool for migration from deprecated "property()" to new syntax
Downloads
8
Maintainers
Readme
Ember Property Migration Tool
Simple tool for migrating computed properties (used with .property()
) from syntax deprecated in Ember 3.9.
Installation
# With NPM
npm install ember-property-upgrade --save
# With Yarn
yarn add ember-property-upgrade
Usage
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
.
How it works
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;
}),
});
Options
| 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'
|
Usage without CLI
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);
License
Created by Mirosław Ciastek. Released under the MIT License.