feat(All):Initial
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import { useSignal,useAddSignal,useAddOnceSignal,useDispatchSignal,useRemoveSignal,useSetSignalActive } from './useSignal';
|
||||
|
||||
export {
|
||||
useSignal,
|
||||
useAddSignal,
|
||||
useAddOnceSignal,
|
||||
useDispatchSignal,
|
||||
useRemoveSignal,
|
||||
useSetSignalActive
|
||||
};
|
||||
@@ -0,0 +1,111 @@
|
||||
import {SignalsRegister} from "@/utils/signals/signalRegister";
|
||||
|
||||
interface SignalMethods<T = any> {
|
||||
add(
|
||||
signalName: string,
|
||||
listener: (...params: T[]) => void,
|
||||
listenerContext?: any,
|
||||
priority?: Number
|
||||
): void;
|
||||
addOnce(
|
||||
signalName: string,
|
||||
listener: (...params: T[]) => void,
|
||||
listenerContext?: any,
|
||||
priority?: Number
|
||||
): void;
|
||||
dispatch(signalName: string, ...params: T[]): void;
|
||||
remove(signalName: string, listener: (...params: T[]) => void, context?: any): void;
|
||||
removeAll(signalName: string): void;
|
||||
setActive(signalName: string, active: boolean): void;
|
||||
halt(signalName: string): void;
|
||||
dispose(signalName: string): void;
|
||||
has(signalName: string, listener: (...params: T[]) => void, context?: any): boolean;
|
||||
}
|
||||
|
||||
export function useSignal(): SignalMethods {
|
||||
const add = (
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
listenerContext?: any,
|
||||
priority?: Number
|
||||
): void => {
|
||||
SignalsRegister[signalName].add(listener, listenerContext, priority);
|
||||
};
|
||||
|
||||
const addOnce = (
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
listenerContext?: any,
|
||||
priority?: number
|
||||
): void => {
|
||||
SignalsRegister[signalName].addOnce(listener, listenerContext, priority);
|
||||
};
|
||||
|
||||
const dispatch = (signalName: string, ...params: any): void => {
|
||||
SignalsRegister[signalName].dispatch(...params);
|
||||
};
|
||||
|
||||
const remove = (
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
context?: any
|
||||
): void => {
|
||||
SignalsRegister[signalName].remove(listener, context);
|
||||
};
|
||||
|
||||
const removeAll = (signalName: string): void => {
|
||||
SignalsRegister[signalName].removeAll();
|
||||
};
|
||||
|
||||
const setActive = (signalName: string, active: boolean): void => {
|
||||
SignalsRegister[signalName].active = active;
|
||||
};
|
||||
|
||||
const halt = (signalName: string): void => {
|
||||
SignalsRegister[signalName].halt();
|
||||
};
|
||||
|
||||
const dispose = (signalName: string): void => {
|
||||
SignalsRegister[signalName].dispose();
|
||||
};
|
||||
|
||||
const has = (
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
context?: any
|
||||
): boolean => {
|
||||
return SignalsRegister[signalName].has(listener, context);
|
||||
};
|
||||
|
||||
return { add, addOnce, dispatch, remove, removeAll, setActive, halt, dispose, has };
|
||||
}
|
||||
|
||||
export function useAddSignal(
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
listenerContext?: any,
|
||||
priority?: Number
|
||||
): void {
|
||||
SignalsRegister[signalName].add(listener, listenerContext, priority);
|
||||
}
|
||||
|
||||
export function useAddOnceSignal(
|
||||
signalName: string,
|
||||
listener: (...params: any) => void,
|
||||
listenerContext?: any,
|
||||
priority?: number
|
||||
){
|
||||
SignalsRegister[signalName].addOnce(listener, listenerContext, priority);
|
||||
}
|
||||
|
||||
export function useDispatchSignal(signalName: string, ...arg): void {
|
||||
SignalsRegister[signalName].dispatch(...arg);
|
||||
}
|
||||
|
||||
export function useRemoveSignal(signalName: string, listener: (...params: any) => void): void {
|
||||
SignalsRegister[signalName].remove(listener);
|
||||
}
|
||||
|
||||
export function useSetSignalActive(signalName: string, active: boolean): void{
|
||||
SignalsRegister[signalName].active = active;
|
||||
};
|
||||
Reference in New Issue
Block a user