UI: Fixed error JIT Compilation and correct process

This commit is contained in:
Vladyslav_Prykhodko 2024-05-08 11:56:29 +03:00
parent 77567b8863
commit 843151ba44

View File

@ -17,7 +17,6 @@
import { import {
Compiler, Compiler,
Component, Component,
ComponentFactory,
Injectable, Injectable,
Injector, Injector,
NgModule, NgModule,
@ -26,9 +25,9 @@ import {
Type, Type,
ɵresetCompiledComponents ɵresetCompiledComponents
} from '@angular/core'; } from '@angular/core';
import { from, Observable } from 'rxjs'; import { from, Observable, of } from 'rxjs';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { catchError, map, mergeMap } from 'rxjs/operators'; import { mergeMap } from 'rxjs/operators';
@NgModule() @NgModule()
export abstract class DynamicComponentModule implements OnDestroy { export abstract class DynamicComponentModule implements OnDestroy {
@ -79,8 +78,8 @@ export class DynamicComponentFactoryService {
declarations: [comp], declarations: [comp],
imports: moduleImports imports: moduleImports
})(class DynamicComponentInstanceModule extends DynamicComponentModule {}); })(class DynamicComponentInstanceModule extends DynamicComponentModule {});
return from(this.compiler.compileModuleAsync(dynamicComponentInstanceModule)).pipe( try {
map((module) => { const module = this.compiler.compileModuleSync(dynamicComponentInstanceModule);
let moduleRef: NgModuleRef<any>; let moduleRef: NgModuleRef<any>;
try { try {
moduleRef = module.create(this.injector); moduleRef = module.create(this.injector);
@ -92,20 +91,19 @@ export class DynamicComponentFactoryService {
moduleRef, moduleRef,
moduleType: module.moduleType moduleType: module.moduleType
}); });
return { return of( {
componentType: comp, componentType: comp,
componentModuleRef: moduleRef componentModuleRef: moduleRef
}; });
}), } catch (error) {
catchError((error) => {
if (compileAttempt === 1) { if (compileAttempt === 1) {
ɵresetCompiledComponents(); ɵresetCompiledComponents();
return this.createDynamicComponent(componentType, template, modules, preserveWhitespaces, ++compileAttempt, styles); return this.createDynamicComponent(componentType, template, modules, preserveWhitespaces, ++compileAttempt, styles);
} else { } else {
console.error(error);
throw error; throw error;
} }
}) }
);
}) })
); );
} }