feat: add lazy inject and websocket debug
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
19
packages/ws/src/debug.ts
Normal file
19
packages/ws/src/debug.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { getNamespacesMetadata, getNamespaceMetadata, getNamespaceListenerMetadata } from './utils'
|
||||
|
||||
export function getNamespaceInfo() {
|
||||
let namespaces = getNamespacesMetadata();
|
||||
console.log(namespaces)
|
||||
return namespaces.map(namespace => {
|
||||
let listenerMetadata = getNamespaceListenerMetadata(namespace.target);
|
||||
console.log(namespace, listenerMetadata)
|
||||
return {
|
||||
namespace: namespace.name,
|
||||
listeners: listenerMetadata.map(listener => {
|
||||
return {
|
||||
event: listener.name,
|
||||
method: listener.key,
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
import { inject, injectable, decorate } from "inversify";
|
||||
import { interfaces } from './interfaces'
|
||||
import { METADATA_KEY } from './constants'
|
||||
import { METADATA_KEY, TYPE } from './constants'
|
||||
import { getNamespaceListenerMetadata, getNamespacesMetadata } from './utils'
|
||||
import { provideNamed, fluentProvide } from "@cc-server/ioc/src";
|
||||
|
||||
/**
|
||||
* Socket.io Namespace
|
||||
@@ -16,6 +17,10 @@ export function namespace(name?: string, ...middleware: interfaces.Middleware[])
|
||||
target: target
|
||||
};
|
||||
decorate(injectable(), target);
|
||||
//decorate(fluentProvide(TYPE.Namespace)
|
||||
// .inSingletonScope()
|
||||
// .whenTargetNamed(target.constructor.name)
|
||||
// .done(), target);
|
||||
Reflect.defineMetadata(METADATA_KEY.namespace, currentMetadata, target);
|
||||
const previousMetadata: interfaces.NamespaceMetadata[] = getNamespacesMetadata();
|
||||
Reflect.defineMetadata(METADATA_KEY.namespace, [currentMetadata, ...previousMetadata], Reflect);
|
||||
|
||||
@@ -3,5 +3,7 @@ import * as io from 'socket.io'
|
||||
export * from './builder'
|
||||
export * from './decorators'
|
||||
export * from './interfaces'
|
||||
export * from './debug'
|
||||
export { TYPE } from './constants'
|
||||
export { getSocketContext } from './utils'
|
||||
export { io }
|
||||
|
||||
Reference in New Issue
Block a user