Cuándo y cómo se aplica el decorador a las clases decoradas de los paquetes @angular

Si uso un decorador en mi clase, el decorador se evalúa al importar la clase. Aquí está el pequeño ejemplo:

@NgModule({ ... })
export class BModule { ... }

Transpilado como:

var BModule = (function () {
    function BModule() {
    }
    BModule = __decorate([  <---------- decorators are applied here
        core_1.NgModule({...})
    ], BModule);
    return BModule;
}());
exports.BModule = BModule;

Sin embargo, cuando el módulo o cualquier otro decorador se aplica en el@angular agrupa la salida es la siguiente:

var HttpClientModule = (function () {
    function HttpClientModule() {
    }
    return HttpClientModule;
}());
HttpClientModule.decorators = [
    { type: _angular_core.NgModule, args: [{ ... },] },
];

Como puede ver, los decoradores no se aplican aquí. Simplemente se guardan en eldecorators propiedad. ¿Por qué es diferente de mi código?

La razón por la que pregunto es que al importar mis clases decoradas espero que apliquen decoradores y, por lo tanto, useReflect es posible:

const providers = Reflect.getOwnMetadata('annotations', BModule);

Sin embargo, no funciona de esta manera con clases decoradas de@angular paquetes

Respuestas a la pregunta(1)

Su respuesta a la pregunta