@foblex/ng-mediator
Version:
A mediator library for Angular facilitating a clean architecture with a better command-query separation.
36 lines • 4.43 kB
JavaScript
import { NgModule } from '@angular/core';
import { F_FEATURE_TOKEN, FMediator } from './f-mediator';
import { Pipeline } from './pipeline';
import * as i0 from "@angular/core";
export class FMediatorModule {
static forRoot() {
return {
ngModule: FMediatorModule,
providers: [FMediator]
};
}
static forFeature(requestType, validatorType, handlerType) {
return {
ngModule: FMediatorModule,
providers: [
validatorType,
handlerType,
{
provide: F_FEATURE_TOKEN,
useFactory: (validator, handler) => {
return new Pipeline(requestType.name, validator, handler);
},
deps: [validatorType, handlerType],
multi: true
}
]
};
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FMediatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: FMediatorModule }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FMediatorModule }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FMediatorModule, decorators: [{
type: NgModule
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tZWRpYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1tZWRpYXRvci9zcmMvbGliL21lZGlhdG9yL2YtbWVkaWF0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxlQUFlO0lBRW5CLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUUsQ0FBRSxTQUFTLENBQUU7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUN0QixXQUEyQixFQUMzQixhQUF3RCxFQUN4RCxXQUF1RDtRQUV2RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNULGFBQWE7Z0JBQ2IsV0FBVztnQkFDWDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLENBQUMsU0FBOEMsRUFBRSxPQUE2QyxFQUFFLEVBQUU7d0JBQzVHLE9BQU8sSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQzVELENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBRTtvQkFDcEMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTdCVSxlQUFlOytHQUFmLGVBQWU7K0dBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGX0ZFQVRVUkVfVE9LRU4sIEZNZWRpYXRvciB9IGZyb20gJy4vZi1tZWRpYXRvcic7XG5pbXBvcnQgeyBQaXBlbGluZSB9IGZyb20gJy4vcGlwZWxpbmUnO1xuaW1wb3J0IHsgSVJlcXVlc3QsIElSZXF1ZXN0SGFuZGxlciB9IGZyb20gJy4uL2NxcnMnO1xuaW1wb3J0IHsgRlZhbGlkYXRvckJhc2UgfSBmcm9tICcuL3ZhbGlkYXRvcic7XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgRk1lZGlhdG9yTW9kdWxlIHtcblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGTWVkaWF0b3JNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEZNZWRpYXRvck1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogWyBGTWVkaWF0b3IgXVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZvckZlYXR1cmU8VFJlcXVlc3QgZXh0ZW5kcyBJUmVxdWVzdDxUUmVzcG9uc2U+LCBUUmVzcG9uc2U+KFxuICAgIHJlcXVlc3RUeXBlOiBUeXBlPFRSZXF1ZXN0PixcbiAgICB2YWxpZGF0b3JUeXBlOiBUeXBlPEZWYWxpZGF0b3JCYXNlPFRSZXF1ZXN0LCBUUmVzcG9uc2U+PixcbiAgICBoYW5kbGVyVHlwZTogVHlwZTxJUmVxdWVzdEhhbmRsZXI8VFJlcXVlc3QsIFRSZXNwb25zZT4+XG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Rk1lZGlhdG9yTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGTWVkaWF0b3JNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdmFsaWRhdG9yVHlwZSxcbiAgICAgICAgaGFuZGxlclR5cGUsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBGX0ZFQVRVUkVfVE9LRU4sXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHZhbGlkYXRvcjogRlZhbGlkYXRvckJhc2U8VFJlcXVlc3QsIFRSZXNwb25zZT4sIGhhbmRsZXI6IElSZXF1ZXN0SGFuZGxlcjxUUmVxdWVzdCwgVFJlc3BvbnNlPikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQaXBlbGluZShyZXF1ZXN0VHlwZS5uYW1lLCB2YWxpZGF0b3IsIGhhbmRsZXIpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogWyB2YWxpZGF0b3JUeXBlLCBoYW5kbGVyVHlwZSBdLFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=