refactor(package/callbacks): improve typings

This commit is contained in:
Luke
2022-12-12 16:29:03 +01:00
committed by Linden
parent 8abc416dad
commit da9b55fa84
2 changed files with 18 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
import { cache } from '../cache'; import { cache } from '../cache';
const activeEvents: Record<string, Function> = {}; const activeEvents: Record<string, (...args) => void> = {};
onNet(`__ox_cb_${cache.resource}`, (key: string, ...args: any) => { onNet(`__ox_cb_${cache.resource}`, (key: string, ...args: any) => {
const resolve = activeEvents[key]; const resolve = activeEvents[key];
@@ -21,7 +21,11 @@ export function eventTimer(eventName: string, delay: number | null) {
return true; return true;
} }
export function triggerServerCallback(eventName: string, delay: number | null, ...args: any) { export function triggerServerCallback<T = unknown>(
eventName: string,
delay: number | null,
...args: any
): Promise<T> | void {
if (!eventTimer(eventName, delay)) return; if (!eventTimer(eventName, delay)) return;
let key: string; let key: string;
@@ -32,13 +36,13 @@ export function triggerServerCallback(eventName: string, delay: number | null, .
emitNet(`__ox_cb_${eventName}`, cache.resource, key, ...args); emitNet(`__ox_cb_${eventName}`, cache.resource, key, ...args);
return new Promise((resolve) => { return new Promise<T>((resolve) => {
activeEvents[key] = resolve; activeEvents[key] = resolve;
}); });
} }
export function onServerCallback(eventName: string, cb: (...args: any) => any) { export function onServerCallback(eventName: string, cb: (...args) => any) {
onNet(`__ox_cb_${eventName}`, (resource: string, key: string, ...args: any) => { onNet(`__ox_cb_${eventName}`, (resource: string, key: string, ...args) => {
let response: any; let response: any;
try { try {

View File

@@ -1,13 +1,17 @@
import { cache } from '../cache'; import { cache } from '../cache';
const activeEvents: Record<string, Function> = {}; const activeEvents: Record<string, (...args) => void> = {};
onNet(`__ox_cb_${cache.resource}`, (key: string, ...args: any) => { onNet(`__ox_cb_${cache.resource}`, (key: string, ...args: any) => {
const resolve = activeEvents[key]; const resolve = activeEvents[key];
return resolve && resolve(...args); return resolve && resolve(...args);
}); });
export function triggerClientCallback(eventName: string, playerId: number, ...args: any) { export function triggerClientCallback<T = unknown>(
eventName: string,
playerId: number,
...args: any
): Promise<T> | void {
let key: string; let key: string;
do { do {
@@ -16,13 +20,13 @@ export function triggerClientCallback(eventName: string, playerId: number, ...ar
emitNet(`__ox_cb_${eventName}`, playerId, cache.resource, key, ...args); emitNet(`__ox_cb_${eventName}`, playerId, cache.resource, key, ...args);
return new Promise((resolve) => { return new Promise<T>((resolve) => {
activeEvents[key] = resolve; activeEvents[key] = resolve;
}); });
} }
export function onClientCallback(eventName: string, cb: (playerId: number, ...args: any) => any) { export function onClientCallback(eventName: string, cb: (playerId: number, ...args) => any) {
onNet(`__ox_cb_${eventName}`, (resource: string, key: string, ...args: any) => { onNet(`__ox_cb_${eventName}`, (resource: string, key: string, ...args) => {
const src = source; const src = source;
let response: any; let response: any;