Documentation / eslint-plugin-warp-drive / rules/no-invalid-relationships
rules/no-invalid-relationships
| Rule | 🏷️ | ✨ |
|---|---|---|
no-invalid-relationships | 🏆 | ✅ |
TIP
A partial/complete autofix for this rule is possible but has not been implemented. An autofix PR would be a welcome addition.
NOTE
Ensures relationship configuration is setup appropriately
This rule ensures that the async and inverse properties are specified in @belongsTo and @hasMany decorators in EmberData models.
Rule Details
This rule disallows:
- Using
@belongsTowithout specifying theasyncandinverseproperties. - Using
@hasManywithout specifying theasyncandinverseproperties.
Notes
asyncmay be eithertrueorfalse, the historical default when unspecified wastrueinversemay be either the name of the field on the model on the other side of the relationship ornull- See the relationships guide for more information on valid configurations
Examples
Examples of incorrect code for this rule:
js
import Model, { belongsTo, hasMany } from '@ember-data/model';
export default class FolderModel extends Model {
@hasMany('folder', { inverse: 'parent' }) children;
@belongsTo('folder', { inverse: 'children' }) parent;
}Examples of correct code for this rule:
js
import Model, { belongsTo, hasMany } from '@ember-data/model';
export default class FolderModel extends Model {
@hasMany('folder', { async: true, inverse: 'parent' }) children;
@belongsTo('folder', { async: true, inverse: 'children' }) parent;
}