import { NgModule } from '@angular/core' ; import { FormsModule } from '@angular/forms' ; import { BrowserModule } from '@angular/platform-browser' ; import { MonacoEditorModule , NgxMonacoEditorConfig } from 'editor' ; import { AppComponent } from './app.component' ; declare var monaco ; export function onMonacoLoad ( ) { console . log ( ( window as any ) . monaco ) ; const uri = monaco . Uri . parse ( 'a://b/foo.json' ) ; monaco . languages . json . jsonDefaults . setDiagnosticsOptions ( { validate : true , schemas : [ { uri : 'http://myserver/foo-schema.json' , fileMatch : [ uri . toString ( ) ] , schema : { type : 'object' , properties : { p1 : { enum : [ 'v1' , 'v2' ] } , p2 : { $ref : 'http://myserver/bar-schema.json' } } } } , { uri : 'http://myserver/bar-schema.json' , fileMatch : [ uri . toString ( ) ] , schema : { type : 'object' , properties : { q1 : { enum : [ 'x1' , 'x2' ] } } } } ] } ) ; } const monacoConfig = { baseUrl : 'assets' , defaultOptions : { scrollBeyondLastLine : false } , onMonacoLoad } ; @ NgModule ( { declarations : [ AppComponent ] , imports : [ BrowserModule , FormsModule , MonacoEditorModule . forRoot ( monacoConfig ) ] , providers : [ ] , bootstrap : [ AppComponent ] } ) export class AppModule { }