Remove all use of non angular decorators
shlomiassaf opened this issue · comments
The codebase includes some use of custom decorators.
These are mainly used for declaration of things (@NgridPlugin
) and observable handling (@UnRx
)
These should be removed from the code completely because:
-
It forces users to use the reflection polyfill (
refelect-metadata
ores6/reflect
) which is no longer in use in AOT compilations -
It has limited support in some cases, especially
UnRx
.
For UnRx
, see angular/angular#31495
It might be that the current implementation of UnRx
is no longer supported when using ivy.
In addition, this approach, using decorators, will no longer be required in angular once Component Features is introduces to the public API.
Since the use is relatively limited, they should be removed from library code, left only in demo app code.
IMPLICATIONS
-
Removing
@NgridPlugin
is a breaking change in the rare case of someone developed a plugin...
Since 2.0.0 is still in RC we can do that without bumping major. -
Removing
@UnRx
means we can also remove the utils library (which is anyway being maintained by nform) and remove all reference to it. Any code there, used by the library, should move to the ngrid core package.