moost 0.3.31 → 0.3.33
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/dist/index.cjs +24 -5
- package/dist/index.d.ts +21 -5
- package/dist/index.mjs +22 -8
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -568,6 +568,13 @@ function Provide(type, fn) {
|
|
|
568
568
|
return meta;
|
|
569
569
|
});
|
|
570
570
|
}
|
|
571
|
+
function Replace(type, newType) {
|
|
572
|
+
return getMoostMate().decorate(meta => {
|
|
573
|
+
meta.replace = meta.replace || {};
|
|
574
|
+
Object.assign(meta.replace, infact$1.createReplaceRegistry([type, newType]));
|
|
575
|
+
return meta;
|
|
576
|
+
});
|
|
577
|
+
}
|
|
571
578
|
function Inject(type) {
|
|
572
579
|
return getMoostMate().decorate('inject', type);
|
|
573
580
|
}
|
|
@@ -646,6 +653,7 @@ class Moost {
|
|
|
646
653
|
this.adapters = [];
|
|
647
654
|
this.controllersOverview = [];
|
|
648
655
|
this.provide = infact$1.createProvideRegistry([infact$1.Infact, getMoostInfact], [mate$1.Mate, getMoostMate]);
|
|
656
|
+
this.replace = {};
|
|
649
657
|
this.unregisteredControllers = [];
|
|
650
658
|
this.logger = options?.logger || getDefaultLogger('moost');
|
|
651
659
|
getMoostInfact().setLogger(this.getLogger('infact'));
|
|
@@ -695,18 +703,18 @@ class Moost {
|
|
|
695
703
|
newPrefix = _controller[0];
|
|
696
704
|
controller = _controller[1];
|
|
697
705
|
}
|
|
698
|
-
await this.bindController(controller, provide, this.options?.globalPrefix || '', newPrefix);
|
|
706
|
+
await this.bindController(controller, provide, this.replace, this.options?.globalPrefix || '', newPrefix);
|
|
699
707
|
}
|
|
700
708
|
this.unregisteredControllers = [];
|
|
701
709
|
}
|
|
702
|
-
async bindController(controller, provide, globalPrefix, replaceOwnPrefix) {
|
|
710
|
+
async bindController(controller, provide, replace, globalPrefix, replaceOwnPrefix) {
|
|
703
711
|
const mate = getMoostMate();
|
|
704
712
|
const classMeta = mate.read(controller);
|
|
705
713
|
const infact = getMoostInfact();
|
|
706
714
|
const isControllerConsructor = mate$1.isConstructor(controller);
|
|
707
715
|
const pipes = [...this.pipes, ...(classMeta?.pipes || [])].sort((a, b) => a.priority - b.priority);
|
|
708
716
|
let instance;
|
|
709
|
-
const infactOpts = { provide, customData: { pipes } };
|
|
717
|
+
const infactOpts = { provide, replace, customData: { pipes } };
|
|
710
718
|
if (isControllerConsructor &&
|
|
711
719
|
(classMeta?.injectable === 'SINGLETON' || classMeta?.injectable === true)) {
|
|
712
720
|
eventCore.createEventContext({
|
|
@@ -743,12 +751,14 @@ class Moost {
|
|
|
743
751
|
replaceOwnPrefix,
|
|
744
752
|
interceptors: Array.from(this.interceptors),
|
|
745
753
|
pipes,
|
|
746
|
-
provide: classMeta?.provide
|
|
754
|
+
provide: classMeta?.provide,
|
|
755
|
+
replace: classMeta?.replace,
|
|
747
756
|
logger: this.logger,
|
|
748
757
|
}));
|
|
749
758
|
if (classMeta && classMeta.importController) {
|
|
750
759
|
const prefix = typeof replaceOwnPrefix === 'string' ? replaceOwnPrefix : classMeta.controller?.prefix;
|
|
751
760
|
const mergedProvide = { ...provide, ...classMeta.provide };
|
|
761
|
+
const mergedReplace = { ...this.replace, ...classMeta.replace };
|
|
752
762
|
for (const ic of classMeta.importController) {
|
|
753
763
|
if (ic.typeResolver) {
|
|
754
764
|
const isConstr = mate$1.isConstructor(ic.typeResolver);
|
|
@@ -757,7 +767,7 @@ class Moost {
|
|
|
757
767
|
? ic.typeResolver
|
|
758
768
|
: isFunc
|
|
759
769
|
? await ic.typeResolver()
|
|
760
|
-
: ic.typeResolver, ic.provide ? { ...mergedProvide, ...ic.provide } : mergedProvide, `${globalPrefix}/${prefix || ''}`, ic.prefix);
|
|
770
|
+
: ic.typeResolver, ic.provide ? { ...mergedProvide, ...ic.provide } : mergedProvide, mergedReplace, `${globalPrefix}/${prefix || ''}`, ic.prefix);
|
|
761
771
|
}
|
|
762
772
|
}
|
|
763
773
|
}
|
|
@@ -814,6 +824,10 @@ class Moost {
|
|
|
814
824
|
this.provide = { ...this.provide, ...provide };
|
|
815
825
|
return this;
|
|
816
826
|
}
|
|
827
|
+
setReplaceRegistry(replace) {
|
|
828
|
+
this.replace = { ...this.replace, ...replace };
|
|
829
|
+
return this;
|
|
830
|
+
}
|
|
817
831
|
registerControllers(...controllers) {
|
|
818
832
|
this.unregisteredControllers.push(...controllers);
|
|
819
833
|
return this;
|
|
@@ -836,6 +850,10 @@ Object.defineProperty(exports, "createProvideRegistry", {
|
|
|
836
850
|
enumerable: true,
|
|
837
851
|
get: function () { return infact$1.createProvideRegistry; }
|
|
838
852
|
});
|
|
853
|
+
Object.defineProperty(exports, "createReplaceRegistry", {
|
|
854
|
+
enumerable: true,
|
|
855
|
+
get: function () { return infact$1.createReplaceRegistry; }
|
|
856
|
+
});
|
|
839
857
|
Object.defineProperty(exports, "getConstructor", {
|
|
840
858
|
enumerable: true,
|
|
841
859
|
get: function () { return mate$1.getConstructor; }
|
|
@@ -864,6 +882,7 @@ exports.Param = Param;
|
|
|
864
882
|
exports.Params = Params;
|
|
865
883
|
exports.Pipe = Pipe;
|
|
866
884
|
exports.Provide = Provide;
|
|
885
|
+
exports.Replace = Replace;
|
|
867
886
|
exports.Required = Required;
|
|
868
887
|
exports.Resolve = Resolve;
|
|
869
888
|
exports.Value = Value;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEventLogger } from '@wooksjs/event-core';
|
|
2
2
|
export { EventLogger, THook, useEventContext, useEventLogger } from '@wooksjs/event-core';
|
|
3
|
-
import { TProvideRegistry, Infact, TProvideFn } from '@prostojs/infact';
|
|
4
|
-
export { TProvideRegistry, createProvideRegistry } from '@prostojs/infact';
|
|
3
|
+
import { TProvideRegistry, Infact, TReplaceRegistry, TProvideFn } from '@prostojs/infact';
|
|
4
|
+
export { TProvideRegistry, createProvideRegistry, createReplaceRegistry } from '@prostojs/infact';
|
|
5
5
|
import { TConsoleBase } from '@prostojs/logger';
|
|
6
6
|
import * as _prostojs_mate from '@prostojs/mate';
|
|
7
7
|
import { TMateParamMeta, Mate } from '@prostojs/mate';
|
|
@@ -188,6 +188,7 @@ interface TMoostMetadata<H extends TObject = TEmpty> extends TCommonMetaFields,
|
|
|
188
188
|
handlers?: Array<TMoostHandler<H>>;
|
|
189
189
|
returnType?: TFunction;
|
|
190
190
|
provide?: TProvideRegistry;
|
|
191
|
+
replace?: TReplaceRegistry;
|
|
191
192
|
params: Array<TMateParamMeta & TMoostParamsMetadata>;
|
|
192
193
|
}
|
|
193
194
|
interface TMoostParamsMetadata extends TCommonMetaFields, TCommonMoostMeta {
|
|
@@ -255,6 +256,14 @@ declare function Pipe(handler: TPipeFn, priority?: TPipePriority): ClassDecorato
|
|
|
255
256
|
* @param fn - factory function for provided value
|
|
256
257
|
*/
|
|
257
258
|
declare function Provide(type: string | TClassConstructor, fn: TProvideFn): ClassDecorator;
|
|
259
|
+
/**
|
|
260
|
+
* ## Replace
|
|
261
|
+
* ### @Decorator
|
|
262
|
+
* Defines class to replace in DI
|
|
263
|
+
* @param type - class to replace
|
|
264
|
+
* @param newType - new class
|
|
265
|
+
*/
|
|
266
|
+
declare function Replace(type: TClassConstructor, newType: TClassConstructor): ClassDecorator;
|
|
258
267
|
/**
|
|
259
268
|
* ## Inject
|
|
260
269
|
* ### @Decorator
|
|
@@ -436,6 +445,7 @@ declare class Moost {
|
|
|
436
445
|
protected adapters: Array<TMoostAdapter<TAny>>;
|
|
437
446
|
protected controllersOverview: TControllerOverview[];
|
|
438
447
|
protected provide: TProvideRegistry;
|
|
448
|
+
protected replace: TReplaceRegistry;
|
|
439
449
|
protected unregisteredControllers: Array<TObject | TFunction | [string, TObject | TFunction]>;
|
|
440
450
|
constructor(options?: TMoostOptions | undefined);
|
|
441
451
|
/**
|
|
@@ -458,7 +468,7 @@ declare class Moost {
|
|
|
458
468
|
*/
|
|
459
469
|
init(): Promise<void>;
|
|
460
470
|
protected bindControllers(): Promise<void>;
|
|
461
|
-
protected bindController(controller: TFunction | TObject, provide: TProvideRegistry, globalPrefix: string, replaceOwnPrefix?: string): Promise<void>;
|
|
471
|
+
protected bindController(controller: TFunction | TObject, provide: TProvideRegistry, replace: TReplaceRegistry, globalPrefix: string, replaceOwnPrefix?: string): Promise<void>;
|
|
462
472
|
applyGlobalPipes(...items: Array<TPipeFn | TPipeData>): this;
|
|
463
473
|
protected globalInterceptorHandler?: () => Promise<InterceptorHandler>;
|
|
464
474
|
/**
|
|
@@ -470,11 +480,17 @@ declare class Moost {
|
|
|
470
480
|
getGlobalInterceptorHandler(): Promise<InterceptorHandler>;
|
|
471
481
|
applyGlobalInterceptors(...items: Array<TInterceptorData['handler'] | TInterceptorData>): this;
|
|
472
482
|
/**
|
|
473
|
-
* Register new
|
|
483
|
+
* Register new entries to provide as dependency injections
|
|
474
484
|
* @param provide - Provide Registry (use createProvideRegistry from '\@prostojs/infact')
|
|
475
485
|
* @returns
|
|
476
486
|
*/
|
|
477
487
|
setProvideRegistry(provide: TProvideRegistry): this;
|
|
488
|
+
/**
|
|
489
|
+
* Register replace classes to provide as dependency injections
|
|
490
|
+
* @param replace - Replace Registry (use createReplaceRegistry from '\@prostojs/infact')
|
|
491
|
+
* @returns
|
|
492
|
+
*/
|
|
493
|
+
setReplaceRegistry(replace: TReplaceRegistry): this;
|
|
478
494
|
/**
|
|
479
495
|
* Register controllers (similar to @ImportController decorator)
|
|
480
496
|
* @param controllers - list of target controllers (instances)
|
|
@@ -566,4 +582,4 @@ type TInterceptorClass = TClassFunction<TInterceptorFn>;
|
|
|
566
582
|
*/
|
|
567
583
|
declare function definePipeFn<T extends TObject = TEmpty>(fn: TPipeFn<T>, priority?: TPipePriority): TPipeFn<T>;
|
|
568
584
|
|
|
569
|
-
export { Circular, Const, ConstFactory, Controller, Description, Id, ImportController, Inherit, Inject, InjectEventLogger, Injectable, Intercept, InterceptorHandler, Label, Moost, Optional, Param, Params, Pipe, Provide, Required, Resolve, type TCallableClassFunction, type TClassConstructor, type TClassFunction, type TControllerOverview, type TInjectableScope, type TInterceptorAfter, type TInterceptorBefore, type TInterceptorClass, type TInterceptorData, type TInterceptorFn, type TInterceptorOnError, TInterceptorPriority, type TMoostAdapter, type TMoostAdapterOptions, type TMoostEventHandlerHookOptions, type TMoostEventHandlerOptions, type TMoostHandler, type TMoostMetadata, type TMoostOptions, type TMoostParamsMetadata, type TPipeData, type TPipeFn, type TPipeMetas, TPipePriority, Value, defineInterceptorFn, defineMoostEventHandler, definePipeFn, getInstanceOwnMethods, getInstanceOwnProps, getMoostInfact, getMoostMate, getNewMoostInfact, registerEventScope, resolvePipe, setControllerContext, useControllerContext };
|
|
585
|
+
export { Circular, Const, ConstFactory, Controller, Description, Id, ImportController, Inherit, Inject, InjectEventLogger, Injectable, Intercept, InterceptorHandler, Label, Moost, Optional, Param, Params, Pipe, Provide, Replace, Required, Resolve, type TCallableClassFunction, type TClassConstructor, type TClassFunction, type TControllerOverview, type TInjectableScope, type TInterceptorAfter, type TInterceptorBefore, type TInterceptorClass, type TInterceptorData, type TInterceptorFn, type TInterceptorOnError, TInterceptorPriority, type TMoostAdapter, type TMoostAdapterOptions, type TMoostEventHandlerHookOptions, type TMoostEventHandlerOptions, type TMoostHandler, type TMoostMetadata, type TMoostOptions, type TMoostParamsMetadata, type TPipeData, type TPipeFn, type TPipeMetas, TPipePriority, Value, defineInterceptorFn, defineMoostEventHandler, definePipeFn, getInstanceOwnMethods, getInstanceOwnProps, getMoostInfact, getMoostMate, getNewMoostInfact, registerEventScope, resolvePipe, setControllerContext, useControllerContext };
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEventId, useEventContext, useEventLogger, useRouteParams, createEventContext } from '@wooksjs/event-core';
|
|
2
2
|
export { EventLogger, useEventContext, useEventLogger } from '@wooksjs/event-core';
|
|
3
|
-
import { Infact, createProvideRegistry } from '@prostojs/infact';
|
|
4
|
-
export { createProvideRegistry } from '@prostojs/infact';
|
|
3
|
+
import { Infact, createProvideRegistry, createReplaceRegistry } from '@prostojs/infact';
|
|
4
|
+
export { createProvideRegistry, createReplaceRegistry } from '@prostojs/infact';
|
|
5
5
|
import { Mate, getConstructor, isConstructor } from '@prostojs/mate';
|
|
6
6
|
export { getConstructor, isConstructor } from '@prostojs/mate';
|
|
7
7
|
import { ProstoLogger, createConsoleTransort, coloredConsole } from '@prostojs/logger';
|
|
@@ -569,6 +569,13 @@ function Provide(type, fn) {
|
|
|
569
569
|
return meta;
|
|
570
570
|
});
|
|
571
571
|
}
|
|
572
|
+
function Replace(type, newType) {
|
|
573
|
+
return getMoostMate().decorate(meta => {
|
|
574
|
+
meta.replace = meta.replace || {};
|
|
575
|
+
Object.assign(meta.replace, createReplaceRegistry([type, newType]));
|
|
576
|
+
return meta;
|
|
577
|
+
});
|
|
578
|
+
}
|
|
572
579
|
function Inject(type) {
|
|
573
580
|
return getMoostMate().decorate('inject', type);
|
|
574
581
|
}
|
|
@@ -647,6 +654,7 @@ class Moost {
|
|
|
647
654
|
this.adapters = [];
|
|
648
655
|
this.controllersOverview = [];
|
|
649
656
|
this.provide = createProvideRegistry([Infact, getMoostInfact], [Mate, getMoostMate]);
|
|
657
|
+
this.replace = {};
|
|
650
658
|
this.unregisteredControllers = [];
|
|
651
659
|
this.logger = options?.logger || getDefaultLogger('moost');
|
|
652
660
|
getMoostInfact().setLogger(this.getLogger('infact'));
|
|
@@ -696,18 +704,18 @@ class Moost {
|
|
|
696
704
|
newPrefix = _controller[0];
|
|
697
705
|
controller = _controller[1];
|
|
698
706
|
}
|
|
699
|
-
await this.bindController(controller, provide, this.options?.globalPrefix || '', newPrefix);
|
|
707
|
+
await this.bindController(controller, provide, this.replace, this.options?.globalPrefix || '', newPrefix);
|
|
700
708
|
}
|
|
701
709
|
this.unregisteredControllers = [];
|
|
702
710
|
}
|
|
703
|
-
async bindController(controller, provide, globalPrefix, replaceOwnPrefix) {
|
|
711
|
+
async bindController(controller, provide, replace, globalPrefix, replaceOwnPrefix) {
|
|
704
712
|
const mate = getMoostMate();
|
|
705
713
|
const classMeta = mate.read(controller);
|
|
706
714
|
const infact = getMoostInfact();
|
|
707
715
|
const isControllerConsructor = isConstructor(controller);
|
|
708
716
|
const pipes = [...this.pipes, ...(classMeta?.pipes || [])].sort((a, b) => a.priority - b.priority);
|
|
709
717
|
let instance;
|
|
710
|
-
const infactOpts = { provide, customData: { pipes } };
|
|
718
|
+
const infactOpts = { provide, replace, customData: { pipes } };
|
|
711
719
|
if (isControllerConsructor &&
|
|
712
720
|
(classMeta?.injectable === 'SINGLETON' || classMeta?.injectable === true)) {
|
|
713
721
|
createEventContext({
|
|
@@ -744,12 +752,14 @@ class Moost {
|
|
|
744
752
|
replaceOwnPrefix,
|
|
745
753
|
interceptors: Array.from(this.interceptors),
|
|
746
754
|
pipes,
|
|
747
|
-
provide: classMeta?.provide
|
|
755
|
+
provide: classMeta?.provide,
|
|
756
|
+
replace: classMeta?.replace,
|
|
748
757
|
logger: this.logger,
|
|
749
758
|
}));
|
|
750
759
|
if (classMeta && classMeta.importController) {
|
|
751
760
|
const prefix = typeof replaceOwnPrefix === 'string' ? replaceOwnPrefix : classMeta.controller?.prefix;
|
|
752
761
|
const mergedProvide = { ...provide, ...classMeta.provide };
|
|
762
|
+
const mergedReplace = { ...this.replace, ...classMeta.replace };
|
|
753
763
|
for (const ic of classMeta.importController) {
|
|
754
764
|
if (ic.typeResolver) {
|
|
755
765
|
const isConstr = isConstructor(ic.typeResolver);
|
|
@@ -758,7 +768,7 @@ class Moost {
|
|
|
758
768
|
? ic.typeResolver
|
|
759
769
|
: isFunc
|
|
760
770
|
? await ic.typeResolver()
|
|
761
|
-
: ic.typeResolver, ic.provide ? { ...mergedProvide, ...ic.provide } : mergedProvide, `${globalPrefix}/${prefix || ''}`, ic.prefix);
|
|
771
|
+
: ic.typeResolver, ic.provide ? { ...mergedProvide, ...ic.provide } : mergedProvide, mergedReplace, `${globalPrefix}/${prefix || ''}`, ic.prefix);
|
|
762
772
|
}
|
|
763
773
|
}
|
|
764
774
|
}
|
|
@@ -815,10 +825,14 @@ class Moost {
|
|
|
815
825
|
this.provide = { ...this.provide, ...provide };
|
|
816
826
|
return this;
|
|
817
827
|
}
|
|
828
|
+
setReplaceRegistry(replace) {
|
|
829
|
+
this.replace = { ...this.replace, ...replace };
|
|
830
|
+
return this;
|
|
831
|
+
}
|
|
818
832
|
registerControllers(...controllers) {
|
|
819
833
|
this.unregisteredControllers.push(...controllers);
|
|
820
834
|
return this;
|
|
821
835
|
}
|
|
822
836
|
}
|
|
823
837
|
|
|
824
|
-
export { Circular, Const, ConstFactory, Controller, Description, Id, ImportController, Inherit, Inject, InjectEventLogger, Injectable, Intercept, InterceptorHandler, Label, Moost, Optional, Param, Params, Pipe, Provide, Required, Resolve, TInterceptorPriority, TPipePriority, Value, defineInterceptorFn, defineMoostEventHandler, definePipeFn, getInstanceOwnMethods, getInstanceOwnProps, getMoostInfact, getMoostMate, getNewMoostInfact, registerEventScope, resolvePipe, setControllerContext, useControllerContext };
|
|
838
|
+
export { Circular, Const, ConstFactory, Controller, Description, Id, ImportController, Inherit, Inject, InjectEventLogger, Injectable, Intercept, InterceptorHandler, Label, Moost, Optional, Param, Params, Pipe, Provide, Replace, Required, Resolve, TInterceptorPriority, TPipePriority, Value, defineInterceptorFn, defineMoostEventHandler, definePipeFn, getInstanceOwnMethods, getInstanceOwnProps, getMoostInfact, getMoostMate, getNewMoostInfact, registerEventScope, resolvePipe, setControllerContext, useControllerContext };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moost",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.33",
|
|
4
4
|
"description": "moost",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"prostojs"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@prostojs/infact": "^0.1.
|
|
34
|
+
"@prostojs/infact": "^0.1.14",
|
|
35
35
|
"@prostojs/mate": "^0.3.2",
|
|
36
36
|
"@prostojs/logger": "^0.4.0",
|
|
37
37
|
"@wooksjs/event-core": "^0.4.34",
|