@microzord/angular 1.0.0-alpha.1 → 1.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/microzord-angular.umd.js +506 -43
- package/bundles/microzord-angular.umd.js.map +1 -1
- package/esm2015/index.js +5 -2
- package/esm2015/index.js.map +1 -1
- package/esm2015/index.metadata.json +1 -1
- package/esm2015/lib/microzord-app/microzord-app.directive.js +47 -0
- package/esm2015/lib/microzord-app/microzord-app.directive.js.map +1 -0
- package/esm2015/lib/microzord-app/microzord-app.directive.metadata.json +1 -0
- package/esm2015/lib/microzord-app/microzord-app.module.js +11 -0
- package/esm2015/lib/microzord-app/microzord-app.module.js.map +1 -0
- package/esm2015/lib/microzord-app/microzord-app.module.metadata.json +1 -0
- package/esm2015/lib/microzord-host.module.js +25 -10
- package/esm2015/lib/microzord-host.module.js.map +1 -1
- package/esm2015/lib/microzord-host.module.metadata.json +1 -1
- package/esm2015/lib/microzord-module/microzord-ng-compiler.service.js +39 -0
- package/esm2015/lib/microzord-module/microzord-ng-compiler.service.js.map +1 -0
- package/esm2015/lib/microzord-module/microzord-ng-compiler.service.metadata.json +1 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.directive.js +54 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.directive.js.map +1 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.directive.metadata.json +1 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.module.js +11 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.module.js.map +1 -0
- package/esm2015/lib/microzord-module/microzord-ng-module.module.metadata.json +1 -0
- package/esm2015/lib/operators/complete.js +6 -0
- package/esm2015/lib/operators/complete.js.map +1 -0
- package/esm2015/lib/operators/complete.metadata.json +1 -0
- package/esm2015/lib/services/registry.service.js +5 -9
- package/esm2015/lib/services/registry.service.js.map +1 -1
- package/esm2015/lib/services/registry.service.metadata.json +1 -1
- package/esm2015/lib/tokens/microzord-apps.js +6 -1
- package/esm2015/lib/tokens/microzord-apps.js.map +1 -1
- package/esm2015/lib/tokens/microzord-apps.metadata.json +1 -1
- package/esm2015/lib/types/ng-module.js +2 -0
- package/esm2015/lib/types/ng-module.js.map +1 -0
- package/esm2015/lib/types/ng-module.metadata.json +1 -0
- package/esm2015/microzord-angular.js +1 -0
- package/esm2015/microzord-angular.js.map +1 -1
- package/esm2015/microzord-angular.metadata.json +1 -1
- package/fesm2015/microzord-angular.js +159 -41
- package/fesm2015/microzord-angular.js.map +1 -1
- package/index.d.ts +6 -2
- package/lib/{microzord/microzord.directive.d.ts → microzord-app/microzord-app.directive.d.ts} +4 -3
- package/lib/microzord-app/microzord-app.module.d.ts +2 -0
- package/lib/microzord-host.module.d.ts +7 -5
- package/lib/microzord-module/microzord-ng-compiler.service.d.ts +12 -0
- package/lib/microzord-module/microzord-ng-module.directive.d.ts +17 -0
- package/lib/microzord-module/microzord-ng-module.module.d.ts +2 -0
- package/lib/operators/complete.d.ts +1 -0
- package/lib/services/registry.service.d.ts +4 -3
- package/lib/tokens/microzord-apps.d.ts +4 -3
- package/lib/types/ng-module.d.ts +8 -0
- package/microzord-angular.d.ts +1 -0
- package/microzord-angular.metadata.json +1 -1
- package/package.json +2 -2
- package/esm2015/lib/microzord/microzord.directive.js +0 -41
- package/esm2015/lib/microzord/microzord.directive.js.map +0 -1
- package/esm2015/lib/microzord/microzord.directive.metadata.json +0 -1
- package/esm2015/lib/microzord/microzord.module.js +0 -11
- package/esm2015/lib/microzord/microzord.module.js.map +0 -1
- package/esm2015/lib/microzord/microzord.module.metadata.json +0 -1
- package/lib/microzord/microzord.module.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./index"}]}]
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./index"},{"from":"./lib/microzord-module/microzord-ng-compiler.service","export":[{"name":"MicrozordNgCompilerService","as":"ɵa"}]}]}]
|
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgZone, Directive, ElementRef, Output, Input, NgModule,
|
|
3
|
-
import { bootstrapApp,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { NgZone, Directive, ElementRef, ErrorHandler, Output, Input, NgModule, Injectable, Compiler, ComponentFactoryResolver, Injector, Optional, ViewContainerRef, NgModuleRef, InjectionToken, Inject } from '@angular/core';
|
|
3
|
+
import { bootstrapApp, loadEntity, registerEntity } from '@microzord/core';
|
|
4
|
+
import { NEVER, Subject, of, Observable } from 'rxjs';
|
|
5
|
+
import { switchMap, startWith, finalize, tap, catchError, shareReplay, takeUntil, map } from 'rxjs/operators';
|
|
6
|
+
import { __awaiter } from 'tslib';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
const complete = (fn) => switchMap((value) => NEVER.pipe(startWith(value), finalize(() => {
|
|
9
|
+
fn(value);
|
|
10
|
+
})));
|
|
11
|
+
|
|
12
|
+
class MicrozordAppDirective {
|
|
13
|
+
constructor(elementRef, ngZone, errorHandler) {
|
|
9
14
|
this.elementRef = elementRef;
|
|
10
15
|
this.ngZone = ngZone;
|
|
16
|
+
this.errorHandler = errorHandler;
|
|
11
17
|
this.destroy$ = new Subject();
|
|
12
18
|
this.name$ = new Subject();
|
|
13
19
|
this.application = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap(name => name
|
|
14
|
-
? bootstrapApp(name, this.elementRef.nativeElement).pipe(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
? bootstrapApp(name, this.elementRef.nativeElement).pipe(complete(app => app.destroy()), catchError(error => {
|
|
21
|
+
this.errorHandler.handleError(error);
|
|
22
|
+
return of(null);
|
|
23
|
+
}))
|
|
24
|
+
: of(null)), shareReplay(1), takeUntil(this.destroy$));
|
|
25
|
+
this.hook = this.application.pipe(switchMap(app => app
|
|
26
|
+
? new Observable(subscriber => app.onHook(event => subscriber.next(event)))
|
|
27
|
+
: NEVER));
|
|
19
28
|
this.application.subscribe();
|
|
20
29
|
}
|
|
21
30
|
set name(appName) {
|
|
@@ -26,42 +35,138 @@ class MicrozordDirective {
|
|
|
26
35
|
this.destroy$.complete();
|
|
27
36
|
}
|
|
28
37
|
}
|
|
29
|
-
|
|
38
|
+
MicrozordAppDirective.decorators = [
|
|
30
39
|
{ type: Directive, args: [{
|
|
31
|
-
selector: '[
|
|
40
|
+
selector: '[microzordApp]:not(ng-container)',
|
|
32
41
|
},] }
|
|
33
42
|
];
|
|
34
|
-
|
|
43
|
+
MicrozordAppDirective.ctorParameters = () => [
|
|
35
44
|
{ type: ElementRef },
|
|
36
|
-
{ type: NgZone }
|
|
45
|
+
{ type: NgZone },
|
|
46
|
+
{ type: ErrorHandler }
|
|
37
47
|
];
|
|
38
|
-
|
|
48
|
+
MicrozordAppDirective.propDecorators = {
|
|
39
49
|
hook: [{ type: Output }],
|
|
40
50
|
application: [{ type: Output }],
|
|
41
|
-
name: [{ type: Input, args: ['
|
|
51
|
+
name: [{ type: Input, args: ['microzordApp',] }]
|
|
42
52
|
};
|
|
43
53
|
|
|
44
|
-
class
|
|
54
|
+
class MicrozordAppModule {
|
|
45
55
|
}
|
|
46
|
-
|
|
56
|
+
MicrozordAppModule.decorators = [
|
|
47
57
|
{ type: NgModule, args: [{
|
|
48
|
-
declarations: [
|
|
49
|
-
exports: [
|
|
58
|
+
declarations: [MicrozordAppDirective],
|
|
59
|
+
exports: [MicrozordAppDirective],
|
|
50
60
|
},] }
|
|
51
61
|
];
|
|
52
62
|
|
|
53
|
-
|
|
63
|
+
class MicrozordNgCompilerService {
|
|
64
|
+
constructor(compiler, componentFactoryResolver, injector, viewContainerRef) {
|
|
65
|
+
this.compiler = compiler;
|
|
66
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
67
|
+
this.injector = injector;
|
|
68
|
+
this.viewContainerRef = viewContainerRef;
|
|
69
|
+
}
|
|
70
|
+
createModule(Module, injector = this.injector) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const moduleFactory = yield this.compiler.compileModuleAsync(Module);
|
|
73
|
+
return moduleFactory.create(injector);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
createEntryPoint(moduleRef, injector = this.injector, viewContainerRef = this.viewContainerRef) {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(moduleRef.instance.getEntryPoint());
|
|
79
|
+
viewContainerRef.clear();
|
|
80
|
+
return viewContainerRef.createComponent(componentFactory, undefined, injector, [], moduleRef);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
createEntryPointFromModule(Module, injector = this.injector, viewContainerRef = this.viewContainerRef) {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
const moduleRef = yield this.createModule(Module, injector);
|
|
86
|
+
return this.createEntryPoint(moduleRef, injector, viewContainerRef);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
MicrozordNgCompilerService.decorators = [
|
|
91
|
+
{ type: Injectable }
|
|
92
|
+
];
|
|
93
|
+
MicrozordNgCompilerService.ctorParameters = () => [
|
|
94
|
+
{ type: Compiler },
|
|
95
|
+
{ type: ComponentFactoryResolver },
|
|
96
|
+
{ type: Injector, decorators: [{ type: Optional }] },
|
|
97
|
+
{ type: ViewContainerRef, decorators: [{ type: Optional }] }
|
|
98
|
+
];
|
|
99
|
+
|
|
100
|
+
class MicrozordNgModuleDirective {
|
|
101
|
+
constructor(ngZone, componentFactoryResolver, mzNgCompiler, errorHandler) {
|
|
102
|
+
this.ngZone = ngZone;
|
|
103
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
104
|
+
this.mzNgCompiler = mzNgCompiler;
|
|
105
|
+
this.errorHandler = errorHandler;
|
|
106
|
+
this.name$ = new Subject();
|
|
107
|
+
this.destroy$ = new Subject();
|
|
108
|
+
this.module = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap(name => name
|
|
109
|
+
? this.loadModuleAndBootstrap(name).pipe(catchError(error => {
|
|
110
|
+
this.errorHandler.handleError(error);
|
|
111
|
+
return of(null);
|
|
112
|
+
}))
|
|
113
|
+
: of(null)), map(componentRef => { var _a; return (_a = componentRef === null || componentRef === void 0 ? void 0 : componentRef.injector.get(NgModuleRef)) !== null && _a !== void 0 ? _a : null; }), shareReplay(1), takeUntil(this.destroy$));
|
|
114
|
+
this.module.subscribe();
|
|
115
|
+
}
|
|
116
|
+
set name(moduleName) {
|
|
117
|
+
this.ngZone.runOutsideAngular(() => this.name$.next(moduleName));
|
|
118
|
+
}
|
|
119
|
+
loadModuleAndBootstrap(name) {
|
|
120
|
+
return loadEntity(name).pipe(switchMap(Module => this.mzNgCompiler.createEntryPointFromModule(Module)), complete(componentRef => this.destroyComponentAndModule(componentRef)));
|
|
121
|
+
}
|
|
122
|
+
destroyComponentAndModule(componentRef) {
|
|
123
|
+
componentRef.destroy();
|
|
124
|
+
componentRef.injector.get(NgModuleRef).destroy();
|
|
125
|
+
}
|
|
126
|
+
ngOnDestroy() {
|
|
127
|
+
this.destroy$.next();
|
|
128
|
+
this.destroy$.complete();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
MicrozordNgModuleDirective.decorators = [
|
|
132
|
+
{ type: Directive, args: [{
|
|
133
|
+
selector: '[microzordNgModule]',
|
|
134
|
+
providers: [MicrozordNgCompilerService],
|
|
135
|
+
},] }
|
|
136
|
+
];
|
|
137
|
+
MicrozordNgModuleDirective.ctorParameters = () => [
|
|
138
|
+
{ type: NgZone },
|
|
139
|
+
{ type: ComponentFactoryResolver },
|
|
140
|
+
{ type: MicrozordNgCompilerService },
|
|
141
|
+
{ type: ErrorHandler }
|
|
142
|
+
];
|
|
143
|
+
MicrozordNgModuleDirective.propDecorators = {
|
|
144
|
+
module: [{ type: Output }],
|
|
145
|
+
name: [{ type: Input, args: ['microzordNgModule',] }]
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
class MicrozordNgModuleModule {
|
|
149
|
+
}
|
|
150
|
+
MicrozordNgModuleModule.decorators = [
|
|
151
|
+
{ type: NgModule, args: [{
|
|
152
|
+
declarations: [MicrozordNgModuleDirective],
|
|
153
|
+
exports: [MicrozordNgModuleDirective],
|
|
154
|
+
},] }
|
|
155
|
+
];
|
|
156
|
+
|
|
157
|
+
const MICROZORD_APPS = new InjectionToken('Microzord apps', {
|
|
158
|
+
factory: () => [],
|
|
159
|
+
});
|
|
160
|
+
const MICROZORD_NG_MODULES = new InjectionToken('Microzord Angular modules', {
|
|
161
|
+
factory: () => [],
|
|
162
|
+
});
|
|
54
163
|
|
|
55
164
|
class RegistryService {
|
|
56
|
-
|
|
57
|
-
apps.
|
|
58
|
-
}
|
|
59
|
-
register(
|
|
60
|
-
|
|
61
|
-
name,
|
|
62
|
-
props,
|
|
63
|
-
loadApp,
|
|
64
|
-
});
|
|
165
|
+
registerMany(apps) {
|
|
166
|
+
apps.forEach(app => this.register(app));
|
|
167
|
+
}
|
|
168
|
+
register(options) {
|
|
169
|
+
registerEntity(options);
|
|
65
170
|
}
|
|
66
171
|
}
|
|
67
172
|
RegistryService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RegistryService_Factory() { return new RegistryService(); }, token: RegistryService, providedIn: "root" });
|
|
@@ -72,27 +177,40 @@ RegistryService.decorators = [
|
|
|
72
177
|
];
|
|
73
178
|
|
|
74
179
|
class MicrozordHostModule {
|
|
75
|
-
constructor(allApps, registry) {
|
|
76
|
-
allApps.forEach(apps => registry.
|
|
180
|
+
constructor(allApps, allModules, registry) {
|
|
181
|
+
allApps.forEach(apps => registry.registerMany(apps));
|
|
182
|
+
allModules.forEach(modules => registry.registerMany(modules));
|
|
77
183
|
}
|
|
78
|
-
static register({ apps, }) {
|
|
184
|
+
static register({ apps, modules, }) {
|
|
79
185
|
return {
|
|
80
186
|
ngModule: MicrozordHostModule,
|
|
81
187
|
providers: [
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
188
|
+
apps
|
|
189
|
+
? {
|
|
190
|
+
provide: MICROZORD_APPS,
|
|
191
|
+
useValue: apps,
|
|
192
|
+
multi: true,
|
|
193
|
+
}
|
|
194
|
+
: [],
|
|
195
|
+
modules
|
|
196
|
+
? {
|
|
197
|
+
provide: MICROZORD_NG_MODULES,
|
|
198
|
+
useValue: modules,
|
|
199
|
+
multi: true,
|
|
200
|
+
}
|
|
201
|
+
: [],
|
|
87
202
|
],
|
|
88
203
|
};
|
|
89
204
|
}
|
|
90
205
|
}
|
|
91
206
|
MicrozordHostModule.decorators = [
|
|
92
|
-
{ type: NgModule, args: [{
|
|
207
|
+
{ type: NgModule, args: [{
|
|
208
|
+
exports: [MicrozordAppModule, MicrozordNgModuleModule],
|
|
209
|
+
},] }
|
|
93
210
|
];
|
|
94
211
|
MicrozordHostModule.ctorParameters = () => [
|
|
95
212
|
{ type: Array, decorators: [{ type: Inject, args: [MICROZORD_APPS,] }] },
|
|
213
|
+
{ type: Array, decorators: [{ type: Inject, args: [MICROZORD_NG_MODULES,] }] },
|
|
96
214
|
{ type: RegistryService }
|
|
97
215
|
];
|
|
98
216
|
|
|
@@ -100,5 +218,5 @@ MicrozordHostModule.ctorParameters = () => [
|
|
|
100
218
|
* Generated bundle index. Do not edit.
|
|
101
219
|
*/
|
|
102
220
|
|
|
103
|
-
export { MICROZORD_APPS,
|
|
221
|
+
export { MICROZORD_APPS, MICROZORD_NG_MODULES, MicrozordAppDirective, MicrozordAppModule, MicrozordHostModule, MicrozordNgModuleDirective, MicrozordNgModuleModule, RegistryService, MicrozordNgCompilerService as ɵa };
|
|
104
222
|
//# sourceMappingURL=microzord-angular.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microzord-angular.js","sources":["../../../../libs/angular/src/lib/microzord/microzord.directive.ts","../../../../libs/angular/src/lib/microzord/microzord.module.ts","../../../../libs/angular/src/lib/tokens/microzord-apps.ts","../../../../libs/angular/src/lib/services/registry.service.ts","../../../../libs/angular/src/lib/microzord-host.module.ts","../../../../libs/angular/src/microzord-angular.ts"],"sourcesContent":["import {Directive, ElementRef, Input, NgZone, OnDestroy, Output} from '@angular/core';\nimport {Application, bootstrapApp, MicrozordLifecycleEvent} from '@microzord/core';\nimport {NEVER, Observable, of, Subject} from 'rxjs';\nimport {filter, finalize, startWith, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n@Directive({\n selector: '[microzord]:not(ng-container)',\n})\nexport class MicrozordDirective implements OnDestroy {\n @Output()\n hook: Observable<MicrozordLifecycleEvent>;\n\n @Output()\n application: Observable<Application | null>;\n\n private destroy$ = new Subject<string>();\n private name$ = new Subject<string>();\n\n @Input('microzord')\n set name(appName: string) {\n this.ngZone.runOutsideAngular(() => this.name$.next(appName));\n }\n\n constructor(private elementRef: ElementRef, private ngZone: NgZone) {\n this.application = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap(name =>\n name\n ? bootstrapApp(name, this.elementRef.nativeElement).pipe(\n switchMap(app =>\n NEVER.pipe(\n startWith(app),\n finalize(() => {\n app.destroy();\n }),\n ),\n ),\n )\n : of(null),\n ),\n takeUntil(this.destroy$),\n );\n\n this.hook = this.application.pipe(\n filter((app => !!app) as (app: unknown) => app is Application),\n switchMap(\n app =>\n new Observable<MicrozordLifecycleEvent>(subscriber =>\n app.onHook(event => subscriber.next(event)),\n ),\n ),\n );\n\n this.application.subscribe();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {MicrozordDirective} from './microzord.directive';\n\n@NgModule({\n declarations: [MicrozordDirective],\n exports: [MicrozordDirective],\n})\nexport class MicrozordModule {}\n","import {RegistrationOptions} from '@microzord/core';\nimport {InjectionToken} from '@angular/core';\n\nexport type AppRegistrationOptions = RegistrationOptions;\n\nexport const MICROZORD_APPS = new InjectionToken<AppRegistrationOptions[][]>(\n 'Microzord apps',\n);\n","import {Injectable} from '@angular/core';\nimport {AppRegistrationOptions} from '../tokens/microzord-apps';\nimport {registerApp} from '@microzord/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RegistryService {\n registerApps(apps: AppRegistrationOptions[]) {\n apps.map(app => this.register(app));\n }\n\n register({name, loadApp, props}: AppRegistrationOptions) {\n registerApp({\n name,\n props,\n loadApp,\n });\n }\n}\n","import {Inject, ModuleWithProviders, NgModule} from '@angular/core';\nimport {AppRegistrationOptions, MICROZORD_APPS} from './tokens/microzord-apps';\nimport {RegistryService} from './services/registry.service';\n\nexport interface MicrozordHostModuleOptions {\n apps: AppRegistrationOptions[];\n}\n\n@NgModule({})\nexport class MicrozordHostModule {\n constructor(\n @Inject(MICROZORD_APPS) allApps: AppRegistrationOptions[][],\n registry: RegistryService,\n ) {\n allApps.forEach(apps => registry.registerApps(apps));\n }\n\n static register({\n apps,\n }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule> {\n return {\n ngModule: MicrozordHostModule,\n providers: [\n {\n provide: MICROZORD_APPS,\n useValue: apps,\n multi: true,\n },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,kBAAkB;IAe7B,YAAoB,UAAsB,EAAU,MAAc;QAA9C,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAR1D,aAAQ,GAAG,IAAI,OAAO,EAAU,CAAC;QACjC,UAAK,GAAG,IAAI,OAAO,EAAU,CAAC;QAQpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAC1C,SAAS,CAAC,IAAI,IACZ,IAAI;cACA,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CACpD,SAAS,CAAC,GAAG,IACX,KAAK,CAAC,IAAI,CACR,SAAS,CAAC,GAAG,CAAC,EACd,QAAQ,CAAC;gBACP,GAAG,CAAC,OAAO,EAAE,CAAC;aACf,CAAC,CACH,CACF,CACF;cACD,EAAE,CAAC,IAAI,CAAC,CACb,EACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAA0C,EAC9D,SAAS,CACP,GAAG,IACD,IAAI,UAAU,CAA0B,UAAU,IAChD,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C,CACJ,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;KAC9B;IApCD,IACI,IAAI,CAAC,OAAe;QACtB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC/D;IAmCD,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;;;YAtDF,SAAS,SAAC;gBACT,QAAQ,EAAE,+BAA+B;aAC1C;;;YAPkB,UAAU;YAAS,MAAM;;;mBASzC,MAAM;0BAGN,MAAM;mBAMN,KAAK,SAAC,WAAW;;;MCXP,eAAe;;;YAJ3B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;aAC9B;;;MCDY,cAAc,GAAG,IAAI,cAAc,CAC9C,gBAAgB;;MCCL,eAAe;IAC1B,YAAY,CAAC,IAA8B;QACzC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;IAED,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAyB;QACrD,WAAW,CAAC;YACV,IAAI;YACJ,KAAK;YACL,OAAO;SACR,CAAC,CAAC;KACJ;;;;YAdF,UAAU,SAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCGY,mBAAmB;IAC9B,YAC0B,OAAmC,EAC3D,QAAyB;QAEzB,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,QAAQ,CAAC,EACd,IAAI,GACuB;QAC3B,OAAO;YACL,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;KACH;;;YAtBF,QAAQ,SAAC,EAAE;;;wCAGP,MAAM,SAAC,cAAc;YATlB,eAAe;;;ACFvB;;;;;;"}
|
|
1
|
+
{"version":3,"file":"microzord-angular.js","sources":["../../../../libs/angular/src/lib/operators/complete.ts","../../../../libs/angular/src/lib/microzord-app/microzord-app.directive.ts","../../../../libs/angular/src/lib/microzord-app/microzord-app.module.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-compiler.service.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-module.directive.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-module.module.ts","../../../../libs/angular/src/lib/tokens/microzord-apps.ts","../../../../libs/angular/src/lib/services/registry.service.ts","../../../../libs/angular/src/lib/microzord-host.module.ts","../../../../libs/angular/src/microzord-angular.ts"],"sourcesContent":["import {NEVER} from 'rxjs';\nimport {finalize, startWith, switchMap} from 'rxjs/operators';\n\nexport const complete = <T>(fn: (value: T) => void) =>\n switchMap((value: T) =>\n NEVER.pipe(\n startWith(value),\n finalize(() => {\n fn(value);\n }),\n ),\n );\n","import {\n Directive,\n ElementRef,\n ErrorHandler,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {Application, bootstrapApp, MicrozordLifecycleEvent} from '@microzord/core';\nimport {NEVER, Observable, of, Subject} from 'rxjs';\nimport {catchError, filter, shareReplay, switchMap, takeUntil, tap} from 'rxjs/operators';\nimport {complete} from '../operators/complete';\n\n@Directive({\n selector: '[microzordApp]:not(ng-container)',\n})\nexport class MicrozordAppDirective implements OnDestroy {\n @Output()\n hook: Observable<MicrozordLifecycleEvent>;\n\n @Output()\n application: Observable<Application | null>;\n\n private destroy$ = new Subject<void>();\n private name$ = new Subject<string>();\n\n constructor(\n private elementRef: ElementRef,\n private ngZone: NgZone,\n private errorHandler: ErrorHandler,\n ) {\n this.application = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap(name =>\n name\n ? bootstrapApp(name, this.elementRef.nativeElement).pipe(\n complete(app => app.destroy()),\n catchError(error => {\n this.errorHandler.handleError(error);\n return of(null);\n }),\n )\n : of(null),\n ),\n shareReplay(1),\n takeUntil(this.destroy$),\n );\n\n this.hook = this.application.pipe(\n switchMap(app =>\n app\n ? new Observable<MicrozordLifecycleEvent>(subscriber =>\n app.onHook(event => subscriber.next(event)),\n )\n : NEVER,\n ),\n );\n\n this.application.subscribe();\n }\n\n @Input('microzordApp')\n set name(appName: string) {\n this.ngZone.runOutsideAngular(() => this.name$.next(appName));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {MicrozordAppDirective} from './microzord-app.directive';\n\n@NgModule({\n declarations: [MicrozordAppDirective],\n exports: [MicrozordAppDirective],\n})\nexport class MicrozordAppModule {}\n","import {\n Compiler,\n ComponentFactoryResolver,\n ComponentRef,\n Injectable,\n Injector,\n NgModuleRef,\n Optional,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {EntryPoint, MicrozordNgModule} from '../types/ng-module';\n\n@Injectable()\nexport class MicrozordNgCompilerService {\n constructor(\n private compiler: Compiler,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Optional()\n private injector: Injector,\n @Optional()\n private viewContainerRef: ViewContainerRef,\n ) {}\n\n async createModule<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(Module: Type<M>, injector: Injector = this.injector): Promise<NgModuleRef<M>> {\n const moduleFactory = await this.compiler.compileModuleAsync(Module);\n return moduleFactory.create(injector);\n }\n\n async createEntryPoint<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(\n moduleRef: NgModuleRef<M>,\n injector: Injector = this.injector,\n viewContainerRef: ViewContainerRef = this.viewContainerRef,\n ): Promise<ComponentRef<T>> {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n moduleRef.instance.getEntryPoint(),\n );\n\n viewContainerRef.clear();\n return viewContainerRef.createComponent(\n componentFactory,\n undefined,\n injector,\n [],\n moduleRef,\n );\n }\n\n async createEntryPointFromModule<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(\n Module: Type<M>,\n injector: Injector = this.injector,\n viewContainerRef: ViewContainerRef = this.viewContainerRef,\n ): Promise<ComponentRef<T>> {\n const moduleRef = await this.createModule(Module, injector);\n return this.createEntryPoint(moduleRef, injector, viewContainerRef);\n }\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ErrorHandler,\n Input,\n NgModuleRef,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, map, shareReplay, switchMap, takeUntil, tap} from 'rxjs/operators';\nimport {loadEntity} from '@microzord/core';\nimport {EntryPoint, MicrozordNgModule} from '../types/ng-module';\nimport {complete} from '../operators/complete';\nimport {MicrozordNgCompilerService} from './microzord-ng-compiler.service';\n\n@Directive({\n selector: '[microzordNgModule]',\n providers: [MicrozordNgCompilerService],\n})\nexport class MicrozordNgModuleDirective implements OnDestroy {\n private name$ = new Subject<string | null>();\n private destroy$ = new Subject<void>();\n @Output()\n module: Observable<NgModuleRef<any> | null>;\n\n constructor(\n private ngZone: NgZone,\n private componentFactoryResolver: ComponentFactoryResolver,\n private mzNgCompiler: MicrozordNgCompilerService,\n private errorHandler: ErrorHandler,\n ) {\n this.module = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap(name =>\n name\n ? this.loadModuleAndBootstrap(name).pipe(\n catchError(error => {\n this.errorHandler.handleError(error);\n return of(null);\n }),\n )\n : of(null),\n ),\n map(componentRef => componentRef?.injector.get(NgModuleRef) ?? null),\n shareReplay(1),\n takeUntil(this.destroy$),\n );\n\n this.module.subscribe();\n }\n\n @Input('microzordNgModule')\n set name(moduleName: string | null) {\n this.ngZone.runOutsideAngular(() => this.name$.next(moduleName));\n }\n\n private loadModuleAndBootstrap(name: string): Observable<ComponentRef<EntryPoint>> {\n return loadEntity<any, MicrozordNgModule>(name).pipe(\n switchMap(Module => this.mzNgCompiler.createEntryPointFromModule(Module)),\n complete(componentRef => this.destroyComponentAndModule(componentRef)),\n );\n }\n\n private destroyComponentAndModule<T extends EntryPoint = EntryPoint>(\n componentRef: ComponentRef<T>,\n ) {\n componentRef.destroy();\n componentRef.injector.get(NgModuleRef).destroy();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {NgModule} from '@angular/core';\nimport {MicrozordNgModuleDirective} from './microzord-ng-module.directive';\n\n@NgModule({\n declarations: [MicrozordNgModuleDirective],\n exports: [MicrozordNgModuleDirective],\n})\nexport class MicrozordNgModuleModule {}\n","import {AppRegistrationOptions} from '@microzord/core';\nimport {InjectionToken} from '@angular/core';\nimport {NgModuleRegistrationOptions} from '../types/ng-module';\n\nexport const MICROZORD_APPS = new InjectionToken<AppRegistrationOptions[][]>(\n 'Microzord apps',\n {\n factory: () => [],\n },\n);\n\nexport const MICROZORD_NG_MODULES = new InjectionToken<NgModuleRegistrationOptions[][]>(\n 'Microzord Angular modules',\n {\n factory: () => [],\n },\n);\n","import {Injectable} from '@angular/core';\nimport {AppRegistrationOptions, registerEntity} from '@microzord/core';\nimport {NgModuleRegistrationOptions} from '../types/ng-module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RegistryService {\n registerMany(\n apps: ReadonlyArray<AppRegistrationOptions | NgModuleRegistrationOptions>,\n ) {\n apps.forEach(app => this.register(app));\n }\n\n register(options: AppRegistrationOptions | NgModuleRegistrationOptions) {\n registerEntity(options);\n }\n}\n","import {Inject, ModuleWithProviders, NgModule, Type} from '@angular/core';\nimport {AppRegistrationOptions, EntityRegistrationOptions} from '@microzord/core';\n\nimport {MICROZORD_APPS, MICROZORD_NG_MODULES} from './tokens/microzord-apps';\nimport {RegistryService} from './services/registry.service';\nimport {MicrozordAppModule} from './microzord-app/microzord-app.module';\nimport {MicrozordNgModuleModule} from './microzord-module/microzord-ng-module.module';\nimport {NgModuleRegistrationOptions} from './types/ng-module';\n\nexport interface MicrozordHostModuleOptions {\n apps?: AppRegistrationOptions[];\n modules?: EntityRegistrationOptions<Type<any>>[];\n}\n\n@NgModule({\n exports: [MicrozordAppModule, MicrozordNgModuleModule],\n})\nexport class MicrozordHostModule {\n constructor(\n @Inject(MICROZORD_APPS) allApps: AppRegistrationOptions[][],\n @Inject(MICROZORD_NG_MODULES) allModules: NgModuleRegistrationOptions[][],\n registry: RegistryService,\n ) {\n allApps.forEach(apps => registry.registerMany(apps));\n allModules.forEach(modules => registry.registerMany(modules));\n }\n\n static register({\n apps,\n modules,\n }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule> {\n return {\n ngModule: MicrozordHostModule,\n providers: [\n apps\n ? {\n provide: MICROZORD_APPS,\n useValue: apps,\n multi: true,\n }\n : [],\n modules\n ? {\n provide: MICROZORD_NG_MODULES,\n useValue: modules,\n multi: true,\n }\n : [],\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {MicrozordNgCompilerService as ɵa} from './lib/microzord-module/microzord-ng-compiler.service';"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
export * from './lib/microzord/microzord.directive';
|
|
2
|
-
export * from './lib/microzord/microzord.module';
|
|
1
|
+
export * from './lib/microzord-app/microzord-app.directive';
|
|
2
|
+
export * from './lib/microzord-app/microzord-app.module';
|
|
3
|
+
export * from './lib/microzord-module/microzord-ng-module.directive';
|
|
4
|
+
export * from './lib/microzord-module/microzord-ng-module.module';
|
|
3
5
|
export * from './lib/microzord-host.module';
|
|
4
6
|
export * from './lib/services/registry.service';
|
|
5
7
|
export * from './lib/tokens/microzord-apps';
|
|
8
|
+
export * from './lib/types/ng-module';
|
|
9
|
+
export { AppRegistrationOptions } from '@microzord/core';
|
package/lib/{microzord/microzord.directive.d.ts → microzord-app/microzord-app.directive.d.ts}
RENAMED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ElementRef, NgZone, OnDestroy } from '@angular/core';
|
|
1
|
+
import { ElementRef, ErrorHandler, NgZone, OnDestroy } from '@angular/core';
|
|
2
2
|
import { Application, MicrozordLifecycleEvent } from '@microzord/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class MicrozordAppDirective implements OnDestroy {
|
|
5
5
|
private elementRef;
|
|
6
6
|
private ngZone;
|
|
7
|
+
private errorHandler;
|
|
7
8
|
hook: Observable<MicrozordLifecycleEvent>;
|
|
8
9
|
application: Observable<Application | null>;
|
|
9
10
|
private destroy$;
|
|
10
11
|
private name$;
|
|
12
|
+
constructor(elementRef: ElementRef, ngZone: NgZone, errorHandler: ErrorHandler);
|
|
11
13
|
set name(appName: string);
|
|
12
|
-
constructor(elementRef: ElementRef, ngZone: NgZone);
|
|
13
14
|
ngOnDestroy(): void;
|
|
14
15
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { AppRegistrationOptions } from '
|
|
1
|
+
import { ModuleWithProviders, Type } from '@angular/core';
|
|
2
|
+
import { AppRegistrationOptions, EntityRegistrationOptions } from '@microzord/core';
|
|
3
3
|
import { RegistryService } from './services/registry.service';
|
|
4
|
+
import { NgModuleRegistrationOptions } from './types/ng-module';
|
|
4
5
|
export interface MicrozordHostModuleOptions {
|
|
5
|
-
apps
|
|
6
|
+
apps?: AppRegistrationOptions[];
|
|
7
|
+
modules?: EntityRegistrationOptions<Type<any>>[];
|
|
6
8
|
}
|
|
7
9
|
export declare class MicrozordHostModule {
|
|
8
|
-
constructor(allApps: AppRegistrationOptions[][], registry: RegistryService);
|
|
9
|
-
static register({ apps, }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule>;
|
|
10
|
+
constructor(allApps: AppRegistrationOptions[][], allModules: NgModuleRegistrationOptions[][], registry: RegistryService);
|
|
11
|
+
static register({ apps, modules, }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule>;
|
|
10
12
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Compiler, ComponentFactoryResolver, ComponentRef, Injector, NgModuleRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { EntryPoint, MicrozordNgModule } from '../types/ng-module';
|
|
3
|
+
export declare class MicrozordNgCompilerService {
|
|
4
|
+
private compiler;
|
|
5
|
+
private componentFactoryResolver;
|
|
6
|
+
private injector;
|
|
7
|
+
private viewContainerRef;
|
|
8
|
+
constructor(compiler: Compiler, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, viewContainerRef: ViewContainerRef);
|
|
9
|
+
createModule<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(Module: Type<M>, injector?: Injector): Promise<NgModuleRef<M>>;
|
|
10
|
+
createEntryPoint<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(moduleRef: NgModuleRef<M>, injector?: Injector, viewContainerRef?: ViewContainerRef): Promise<ComponentRef<T>>;
|
|
11
|
+
createEntryPointFromModule<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(Module: Type<M>, injector?: Injector, viewContainerRef?: ViewContainerRef): Promise<ComponentRef<T>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComponentFactoryResolver, ErrorHandler, NgModuleRef, NgZone, OnDestroy } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { MicrozordNgCompilerService } from './microzord-ng-compiler.service';
|
|
4
|
+
export declare class MicrozordNgModuleDirective implements OnDestroy {
|
|
5
|
+
private ngZone;
|
|
6
|
+
private componentFactoryResolver;
|
|
7
|
+
private mzNgCompiler;
|
|
8
|
+
private errorHandler;
|
|
9
|
+
private name$;
|
|
10
|
+
private destroy$;
|
|
11
|
+
module: Observable<NgModuleRef<any> | null>;
|
|
12
|
+
constructor(ngZone: NgZone, componentFactoryResolver: ComponentFactoryResolver, mzNgCompiler: MicrozordNgCompilerService, errorHandler: ErrorHandler);
|
|
13
|
+
set name(moduleName: string | null);
|
|
14
|
+
private loadModuleAndBootstrap;
|
|
15
|
+
private destroyComponentAndModule;
|
|
16
|
+
ngOnDestroy(): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const complete: <T>(fn: (value: T) => void) => import("rxjs").OperatorFunction<T, T>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { AppRegistrationOptions } from '
|
|
1
|
+
import { AppRegistrationOptions } from '@microzord/core';
|
|
2
|
+
import { NgModuleRegistrationOptions } from '../types/ng-module';
|
|
2
3
|
export declare class RegistryService {
|
|
3
|
-
|
|
4
|
-
register(
|
|
4
|
+
registerMany(apps: ReadonlyArray<AppRegistrationOptions | NgModuleRegistrationOptions>): void;
|
|
5
|
+
register(options: AppRegistrationOptions | NgModuleRegistrationOptions): void;
|
|
5
6
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AppRegistrationOptions } from '@microzord/core';
|
|
2
2
|
import { InjectionToken } from '@angular/core';
|
|
3
|
-
|
|
4
|
-
export declare const MICROZORD_APPS: InjectionToken<AppRegistrationOptions[][]>;
|
|
3
|
+
import { NgModuleRegistrationOptions } from '../types/ng-module';
|
|
4
|
+
export declare const MICROZORD_APPS: InjectionToken<AppRegistrationOptions<Record<string, any>>[][]>;
|
|
5
|
+
export declare const MICROZORD_NG_MODULES: InjectionToken<NgModuleRegistrationOptions[][]>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Type } from '@angular/core';
|
|
2
|
+
import { EntityRegistrationOptions } from '@microzord/core';
|
|
3
|
+
export interface EntryPoint {
|
|
4
|
+
}
|
|
5
|
+
export interface MicrozordNgModule<T extends EntryPoint = EntryPoint> {
|
|
6
|
+
getEntryPoint(): Type<T>;
|
|
7
|
+
}
|
|
8
|
+
export declare type NgModuleRegistrationOptions = EntityRegistrationOptions<Type<MicrozordNgModule>>;
|
package/microzord-angular.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"
|
|
1
|
+
{"__symbolic":"module","version":4,"exports":[{"export":[{"name":"AppRegistrationOptions","as":"AppRegistrationOptions"}],"from":"@microzord/core"}],"metadata":{"MicrozordAppDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[microzordApp]:not(ng-container)"}]}],"members":{"hook":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}],"application":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":28,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":29,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":30,"character":26}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3},"arguments":["microzordApp"]}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"MicrozordAppModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MicrozordAppDirective"}],"exports":[{"__symbolic":"reference","name":"MicrozordAppDirective"}]}]}],"members":{}},"MicrozordNgModuleDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[microzordNgModule]","providers":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{"module":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":29,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":30,"character":38},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":32,"character":26}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3},"arguments":["microzordNgModule"]}]}],"loadModuleAndBootstrap":[{"__symbolic":"method"}],"destroyComponentAndModule":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"MicrozordNgModuleModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"MicrozordNgModuleDirective"}],"exports":[{"__symbolic":"reference","name":"MicrozordNgModuleDirective"}]}]}],"members":{}},"MicrozordHostModuleOptions":{"__symbolic":"interface"},"MicrozordHostModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"MicrozordAppModule"},{"__symbolic":"reference","name":"MicrozordNgModuleModule"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":5},"arguments":[{"__symbolic":"reference","name":"MICROZORD_APPS"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":5},"arguments":[{"__symbolic":"reference","name":"MICROZORD_NG_MODULES"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","module":"@microzord/core","name":"AppRegistrationOptions","line":19,"character":37}]}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"NgModuleRegistrationOptions"}]}]},{"__symbolic":"reference","name":"RegistryService"}]}]},"statics":{"register":{"__symbolic":"function","parameters":["apps","modules"],"value":{"ngModule":{"__symbolic":"reference","name":"MicrozordHostModule"},"providers":[{"__symbolic":"if","condition":{"__symbolic":"reference","name":"apps"},"thenExpression":{"provide":{"__symbolic":"reference","name":"MICROZORD_APPS"},"useValue":{"__symbolic":"reference","name":"apps"},"multi":true},"elseExpression":[]},{"__symbolic":"if","condition":{"__symbolic":"reference","name":"modules"},"thenExpression":{"provide":{"__symbolic":"reference","name":"MICROZORD_NG_MODULES"},"useValue":{"__symbolic":"reference","name":"modules"},"multi":true},"elseExpression":[]}]}}}},"RegistryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"registerMany":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"MICROZORD_APPS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":34},"arguments":["Microzord apps",{"__symbolic":"error","message":"Lambda not supported","line":7,"character":13,"module":"./lib/tokens/microzord-apps"}]},"MICROZORD_NG_MODULES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":40},"arguments":["Microzord Angular modules",{"__symbolic":"error","message":"Lambda not supported","line":14,"character":13,"module":"./lib/tokens/microzord-apps"}]},"EntryPoint":{"__symbolic":"interface"},"MicrozordNgModule":{"__symbolic":"interface"},"NgModuleRegistrationOptions":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":16,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":17,"character":38},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":21,"character":30}]}],"createModule":[{"__symbolic":"method"}],"createEntryPoint":[{"__symbolic":"method"}],"createEntryPointFromModule":[{"__symbolic":"method"}]}}},"origins":{"MicrozordAppDirective":"./lib/microzord-app/microzord-app.directive","MicrozordAppModule":"./lib/microzord-app/microzord-app.module","MicrozordNgModuleDirective":"./lib/microzord-module/microzord-ng-module.directive","MicrozordNgModuleModule":"./lib/microzord-module/microzord-ng-module.module","MicrozordHostModuleOptions":"./lib/microzord-host.module","MicrozordHostModule":"./lib/microzord-host.module","RegistryService":"./lib/services/registry.service","MICROZORD_APPS":"./lib/tokens/microzord-apps","MICROZORD_NG_MODULES":"./lib/tokens/microzord-apps","EntryPoint":"./lib/types/ng-module","MicrozordNgModule":"./lib/types/ng-module","NgModuleRegistrationOptions":"./lib/types/ng-module","ɵa":"./lib/microzord-module/microzord-ng-compiler.service"},"importAs":"@microzord/angular"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microzord/angular",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^12.0.0",
|
|
6
6
|
"@angular/core": "^12.0.0",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"tslib": "^2.1.0",
|
|
12
|
-
"@microzord/core": "1.0.0-alpha.
|
|
12
|
+
"@microzord/core": "1.0.0-alpha.2"
|
|
13
13
|
},
|
|
14
14
|
"publishConfig": {
|
|
15
15
|
"access": "public"
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, NgZone, Output } from '@angular/core';
|
|
2
|
-
import { bootstrapApp } from '@microzord/core';
|
|
3
|
-
import { NEVER, Observable, of, Subject } from 'rxjs';
|
|
4
|
-
import { filter, finalize, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
-
export class MicrozordDirective {
|
|
6
|
-
constructor(elementRef, ngZone) {
|
|
7
|
-
this.elementRef = elementRef;
|
|
8
|
-
this.ngZone = ngZone;
|
|
9
|
-
this.destroy$ = new Subject();
|
|
10
|
-
this.name$ = new Subject();
|
|
11
|
-
this.application = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap(name => name
|
|
12
|
-
? bootstrapApp(name, this.elementRef.nativeElement).pipe(switchMap(app => NEVER.pipe(startWith(app), finalize(() => {
|
|
13
|
-
app.destroy();
|
|
14
|
-
}))))
|
|
15
|
-
: of(null)), takeUntil(this.destroy$));
|
|
16
|
-
this.hook = this.application.pipe(filter((app => !!app)), switchMap(app => new Observable(subscriber => app.onHook(event => subscriber.next(event)))));
|
|
17
|
-
this.application.subscribe();
|
|
18
|
-
}
|
|
19
|
-
set name(appName) {
|
|
20
|
-
this.ngZone.runOutsideAngular(() => this.name$.next(appName));
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this.destroy$.next();
|
|
24
|
-
this.destroy$.complete();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
MicrozordDirective.decorators = [
|
|
28
|
-
{ type: Directive, args: [{
|
|
29
|
-
selector: '[microzord]:not(ng-container)',
|
|
30
|
-
},] }
|
|
31
|
-
];
|
|
32
|
-
MicrozordDirective.ctorParameters = () => [
|
|
33
|
-
{ type: ElementRef },
|
|
34
|
-
{ type: NgZone }
|
|
35
|
-
];
|
|
36
|
-
MicrozordDirective.propDecorators = {
|
|
37
|
-
hook: [{ type: Output }],
|
|
38
|
-
application: [{ type: Output }],
|
|
39
|
-
name: [{ type: Input, args: ['microzord',] }]
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=microzord.directive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microzord.directive.js","sourceRoot":"","sources":["../../../../../../libs/angular/src/lib/microzord/microzord.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAa,MAAM,EAAC,MAAM,eAAe,CAAC;AACtF,OAAO,EAAc,YAAY,EAA0B,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AACpD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAC,MAAM,gBAAgB,CAAC;AAKtF,MAAM,OAAO,kBAAkB;IAe7B,YAAoB,UAAsB,EAAU,MAAc;QAA9C,eAAU,GAAV,UAAU,CAAY;QAAU,WAAM,GAAN,MAAM,CAAQ;QAR1D,aAAQ,GAAG,IAAI,OAAO,EAAU,CAAC;QACjC,UAAK,GAAG,IAAI,OAAO,EAAU,CAAC;QAQpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAChC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,EAC1C,SAAS,CAAC,IAAI,CAAC,EAAE,CACf,IAAI;YACF,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CACpD,SAAS,CAAC,GAAG,CAAC,EAAE,CACd,KAAK,CAAC,IAAI,CACR,SAAS,CAAC,GAAG,CAAC,EACd,QAAQ,CAAC,GAAG,EAAE;gBACZ,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,CACH,CACF,CACF;YACH,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CACb,EACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC/B,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAyC,CAAC,EAC9D,SAAS,CACP,GAAG,CAAC,EAAE,CACJ,IAAI,UAAU,CAA0B,UAAU,CAAC,EAAE,CACnD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C,CACJ,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IApCD,IACI,IAAI,CAAC,OAAe;QACtB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAmCD,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;;;YAtDF,SAAS,SAAC;gBACT,QAAQ,EAAE,+BAA+B;aAC1C;;;YAPkB,UAAU;YAAS,MAAM;;;mBASzC,MAAM;0BAGN,MAAM;mBAMN,KAAK,SAAC,WAAW","sourcesContent":["import {Directive, ElementRef, Input, NgZone, OnDestroy, Output} from '@angular/core';\nimport {Application, bootstrapApp, MicrozordLifecycleEvent} from '@microzord/core';\nimport {NEVER, Observable, of, Subject} from 'rxjs';\nimport {filter, finalize, startWith, switchMap, takeUntil, tap} from 'rxjs/operators';\n\n@Directive({\n selector: '[microzord]:not(ng-container)',\n})\nexport class MicrozordDirective implements OnDestroy {\n @Output()\n hook: Observable<MicrozordLifecycleEvent>;\n\n @Output()\n application: Observable<Application | null>;\n\n private destroy$ = new Subject<string>();\n private name$ = new Subject<string>();\n\n @Input('microzord')\n set name(appName: string) {\n this.ngZone.runOutsideAngular(() => this.name$.next(appName));\n }\n\n constructor(private elementRef: ElementRef, private ngZone: NgZone) {\n this.application = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap(name =>\n name\n ? bootstrapApp(name, this.elementRef.nativeElement).pipe(\n switchMap(app =>\n NEVER.pipe(\n startWith(app),\n finalize(() => {\n app.destroy();\n }),\n ),\n ),\n )\n : of(null),\n ),\n takeUntil(this.destroy$),\n );\n\n this.hook = this.application.pipe(\n filter((app => !!app) as (app: unknown) => app is Application),\n switchMap(\n app =>\n new Observable<MicrozordLifecycleEvent>(subscriber =>\n app.onHook(event => subscriber.next(event)),\n ),\n ),\n );\n\n this.application.subscribe();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"MicrozordDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[microzord]:not(ng-container)"}]}],"members":{"hook":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":3}}]}],"application":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3},"arguments":["microzord"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":23,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":23,"character":62}]}],"ngOnDestroy":[{"__symbolic":"method"}]}}}}]
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { MicrozordDirective } from './microzord.directive';
|
|
3
|
-
export class MicrozordModule {
|
|
4
|
-
}
|
|
5
|
-
MicrozordModule.decorators = [
|
|
6
|
-
{ type: NgModule, args: [{
|
|
7
|
-
declarations: [MicrozordDirective],
|
|
8
|
-
exports: [MicrozordDirective],
|
|
9
|
-
},] }
|
|
10
|
-
];
|
|
11
|
-
//# sourceMappingURL=microzord.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"microzord.module.js","sourceRoot":"","sources":["../../../../../../libs/angular/src/lib/microzord/microzord.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAMzD,MAAM,OAAO,eAAe;;;YAJ3B,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;aAC9B","sourcesContent":["import {NgModule} from '@angular/core';\nimport {MicrozordDirective} from './microzord.directive';\n\n@NgModule({\n declarations: [MicrozordDirective],\n exports: [MicrozordDirective],\n})\nexport class MicrozordModule {}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"MicrozordModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","module":"./microzord.directive","name":"MicrozordDirective","line":4,"character":17}],"exports":[{"__symbolic":"reference","module":"./microzord.directive","name":"MicrozordDirective","line":5,"character":12}]}]}]}}}]
|