|
1 |
| -import { EmberArray } from '@ember/-internals/utils'; |
| 1 | +import { EmberArray, getDebugName } from '@ember/-internals/utils'; |
| 2 | +import { deprecate } from '@ember/debug'; |
2 | 3 | import { arrayContentDidChange, arrayContentWillChange } from './array_events';
|
3 | 4 | import { addListener, removeListener } from './events';
|
4 | 5 | import { notifyPropertyChange } from './property_events';
|
@@ -91,16 +92,48 @@ function arrayObserversHelper(
|
91 | 92 |
|
92 | 93 | export function addArrayObserver<T>(
|
93 | 94 | array: EmberArray<T>,
|
94 |
| - target: any, |
95 |
| - opts?: ArrayObserverOptions | undefined |
| 95 | + target: object | Function | null, |
| 96 | + opts?: ArrayObserverOptions | undefined, |
| 97 | + suppress = false |
96 | 98 | ): ObjectHasArrayObservers {
|
| 99 | + deprecate( |
| 100 | + `Array observers have been deprecated. Added an array observer to ${getDebugName?.(array)}.`, |
| 101 | + suppress, |
| 102 | + { |
| 103 | + id: 'array-observers', |
| 104 | + url: 'https://deprecations.emberjs.com/v3.x#toc_array-observers', |
| 105 | + until: '4.0.0', |
| 106 | + for: 'ember-source', |
| 107 | + since: { |
| 108 | + enabled: '3.26.0-beta.1', |
| 109 | + }, |
| 110 | + } |
| 111 | + ); |
| 112 | + |
97 | 113 | return arrayObserversHelper(array, target, opts, addListener, false);
|
98 | 114 | }
|
99 | 115 |
|
100 | 116 | export function removeArrayObserver<T>(
|
101 | 117 | array: EmberArray<T>,
|
102 |
| - target: any, |
103 |
| - opts?: ArrayObserverOptions | undefined |
| 118 | + target: object | Function | null, |
| 119 | + opts?: ArrayObserverOptions | undefined, |
| 120 | + suppress = false |
104 | 121 | ): ObjectHasArrayObservers {
|
| 122 | + deprecate( |
| 123 | + `Array observers have been deprecated. Removed an array observer from ${getDebugName?.( |
| 124 | + array |
| 125 | + )}.`, |
| 126 | + suppress, |
| 127 | + { |
| 128 | + id: 'array-observers', |
| 129 | + url: 'https://deprecations.emberjs.com/v3.x#toc_array-observers', |
| 130 | + until: '4.0.0', |
| 131 | + for: 'ember-source', |
| 132 | + since: { |
| 133 | + enabled: '3.26.0-beta.1', |
| 134 | + }, |
| 135 | + } |
| 136 | + ); |
| 137 | + |
105 | 138 | return arrayObserversHelper(array, target, opts, removeListener, true);
|
106 | 139 | }
|
0 commit comments