diff --git a/package/signal/src/core.ts b/package/signal/src/core.ts new file mode 100644 index 000000000..5bed01e56 --- /dev/null +++ b/package/signal/src/core.ts @@ -0,0 +1,24 @@ +import {SignalObject} from './type'; + +/** + * Signal stack database. + */ +const signalStack: { + [SignalName in keyof VatrSignals]?: SignalObject; +} = {}; + +/** + * Access to signal option, Make new signal with default options if not exist. + */ +export function getSignalObject( + signalName: SignalName, +): SignalObject { + if (!signalStack[signalName]) { + signalStack[signalName] = { + disabled: false, + priorityListenerList: [], + listenerList: [], + }; + } + return signalStack[signalName] as unknown as SignalObject; +}