NullVoxPopuli/ember-deep-tracked

Deep auto-tracking for when you just don't care, and want things to work (at the cost of performance in some situtations)

TypeScript

31

509 commits

updated Oct 12, 2026

See the code

README

ember-deep-tracked

npm version CI

Deep tracking using proxies for complex objects for when you want everything to be reactive, at the cost of performance.

This is not recommended for performance-sensitive situations such as rendering a table from a large data set where updates to that data set are frequent. Even without updates, deeply tracking will increase initial-render time.

Compatibility

  • Ember.js v3.25+
  • TypeScript v4.5+
  • ember-auto-import v2+
  • Proxy support

Installation

npm install ember-deep-tracked
# or
yarn add ember-deep-tracked
# or
pnpm add ember-deep-tracked
# or
ember install ember-deep-tracked

Usage

import { tracked } from 'ember-deep-tracked';

class Foo {
  @tracked obj = { bar: 2 };
}

or in a component:

import { tracked } from 'ember-deep-tracked';
import Component from '@glimmer/component';

export default class Foo extends Component {
  @tracked obj = { bar: 2 };
}
{{this.obj.bar}} <- automatically updates when "obj.bar" changes

using this decorator form will track the reference, like tracked from @glimmer/tracking does, and then also deeply tracks the value.

the entire object and any sub object can be swapped with other objects and they'll be automatically tracked.

import { deepTracked } from 'ember-deep-tracked';

is also available, and is an alias of tracked

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.

ember
ember-addon
emberjs
glimmer
hacktoberfest
tracking

NullVoxPopuli/ember-deep-tracked

Deep auto-tracking for when you just don't care, and want things to work (at the cost of performance in some situtations)

TypeScript

31

509 commits

updated Oct 12, 2026

See the code

README

ember-deep-tracked

npm version CI

Deep tracking using proxies for complex objects for when you want everything to be reactive, at the cost of performance.

This is not recommended for performance-sensitive situations such as rendering a table from a large data set where updates to that data set are frequent. Even without updates, deeply tracking will increase initial-render time.

Compatibility

  • Ember.js v3.25+
  • TypeScript v4.5+
  • ember-auto-import v2+
  • Proxy support

Installation

npm install ember-deep-tracked
# or
yarn add ember-deep-tracked
# or
pnpm add ember-deep-tracked
# or
ember install ember-deep-tracked

Usage

import { tracked } from 'ember-deep-tracked';

class Foo {
  @tracked obj = { bar: 2 };
}

or in a component:

import { tracked } from 'ember-deep-tracked';
import Component from '@glimmer/component';

export default class Foo extends Component {
  @tracked obj = { bar: 2 };
}
{{this.obj.bar}} <- automatically updates when "obj.bar" changes

using this decorator form will track the reference, like tracked from @glimmer/tracking does, and then also deeply tracks the value.

the entire object and any sub object can be swapped with other objects and they'll be automatically tracked.

import { deepTracked } from 'ember-deep-tracked';

is also available, and is an alias of tracked

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.

ember
ember-addon
emberjs
glimmer
hacktoberfest
tracking

Project health

Overall

3.6/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Latest release

2.0.1 · Sep 5, 2024

Releases this year

0

Significant stargazers

Alexey Kulakov

48 followers · starred Jun 2021