moost 0.3.31 → 0.3.32
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 +20 -5
- package/dist/index.d.ts +14 -4
- package/dist/index.mjs +18 -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
|
}
|
|
@@ -836,6 +846,10 @@ Object.defineProperty(exports, "createProvideRegistry", {
|
|
|
836
846
|
enumerable: true,
|
|
837
847
|
get: function () { return infact$1.createProvideRegistry; }
|
|
838
848
|
});
|
|
849
|
+
Object.defineProperty(exports, "createReplaceRegistry", {
|
|
850
|
+
enumerable: true,
|
|
851
|
+
get: function () { return infact$1.createReplaceRegistry; }
|
|
852
|
+
});
|
|
839
853
|
Object.defineProperty(exports, "getConstructor", {
|
|
840
854
|
enumerable: true,
|
|
841
855
|
get: function () { return mate$1.getConstructor; }
|
|
@@ -864,6 +878,7 @@ exports.Param = Param;
|
|
|
864
878
|
exports.Params = Params;
|
|
865
879
|
exports.Pipe = Pipe;
|
|
866
880
|
exports.Provide = Provide;
|
|
881
|
+
exports.Replace = Replace;
|
|
867
882
|
exports.Required = Required;
|
|
868
883
|
exports.Resolve = Resolve;
|
|
869
884
|
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
|
/**
|
|
@@ -566,4 +576,4 @@ type TInterceptorClass = TClassFunction<TInterceptorFn>;
|
|
|
566
576
|
*/
|
|
567
577
|
declare function definePipeFn<T extends TObject = TEmpty>(fn: TPipeFn<T>, priority?: TPipePriority): TPipeFn<T>;
|
|
568
578
|
|
|
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 };
|
|
579
|
+
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
|
}
|
|
@@ -821,4 +831,4 @@ class Moost {
|
|
|
821
831
|
}
|
|
822
832
|
}
|
|
823
833
|
|
|
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 };
|
|
834
|
+
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.32",
|
|
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",
|