Skip to content

Commit

Permalink
fix(types): fix ProcedureListenerInfo
Browse files Browse the repository at this point in the history
fix #1
  • Loading branch information
leonardssh committed Dec 25, 2021
1 parent 9287426 commit 5b0316b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 28 deletions.
4 changes: 2 additions & 2 deletions src/@types/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// eslint-disable-next-line no-var
declare var mp: any;

declare interface BrowserMp {
declare interface Browser {
url: string;
execute: (code: string) => void;
[property: string]: any;
}

declare interface PlayerMp {
declare interface Player {
call: (eventName: string, args?: any[]) => void;
[property: string]: any;
}
2 changes: 1 addition & 1 deletion src/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ export function promiseTimeout(promise: Promise<any>, timeout?: number) {
return promise;
}

export function isBrowserValid(browser: BrowserMp): boolean {
export function isBrowserValid(browser: Browser): boolean {
try {
browser.url;
} catch (e) {
Expand Down
50 changes: 25 additions & 25 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import { getEnvironment, isBrowserValid, parseData, stringifyData, generateId, c

export type ProcedureListener = (args: any, info: ProcedureListenerInfo) => any;

export interface ProcedureListenerInfo {
export interface ProcedureListenerInfo<T = any, K = any> {
environment: string;
id?: string;
player?: PlayerMp;
browser?: BrowserMp;
player?: T;
browser?: K;
}

export interface CallOptions {
Expand Down Expand Up @@ -45,7 +45,7 @@ const glob = environment === 'cef' ? window : (global as any);
if (!glob[PROCESS_EVENT_PARTIAL]) {
glob.__rpcPartialData = {};

glob[PROCESS_EVENT_PARTIAL] = (player: PlayerMp | string | number, id: number, index: number, size: number | string, rawData?: string) => {
glob[PROCESS_EVENT_PARTIAL] = (player: Player | string | number, id: number, index: number, size: number | string, rawData?: string) => {
if (environment !== 'server') {
rawData = size as string;
size = index as number;
Expand Down Expand Up @@ -76,7 +76,7 @@ if (!glob[PROCESS_EVENT]) {
glob.__rpcPending = {};
glob.__rpcEvListeners = {};

glob[PROCESS_EVENT] = (player: PlayerMp | string, rawData?: string) => {
glob[PROCESS_EVENT] = (player: Player | string, rawData?: string) => {
if (environment !== 'server') {
rawData = player as string;
}
Expand All @@ -91,7 +91,7 @@ if (!glob[PROCESS_EVENT]) {
};

if (environment === 'server') {
info.player = player as PlayerMp;
info.player = player as Player;
}

const part = {
Expand Down Expand Up @@ -167,13 +167,13 @@ if (!glob[PROCESS_EVENT]) {
// set up internal pass-through events
register('__rpc:callServer', ([name, args, noRet], info) => _callServer(name, args, { fenv: info.environment, noRet }));
register('__rpc:callBrowsers', ([name, args, noRet], info) =>
_callBrowsers(null as unknown as PlayerMp, name, args, { fenv: info.environment, noRet })
_callBrowsers(null as unknown as Player, name, args, { fenv: info.environment, noRet })
);

// set up browser identifiers
glob.__rpcBrowsers = {};

const initBrowser = (browser: BrowserMp): void => {
const initBrowser = (browser: Browser): void => {
const id = generateId();

Object.keys(glob.__rpcBrowsers).forEach((key) => {
Expand Down Expand Up @@ -233,7 +233,7 @@ if (!glob[PROCESS_EVENT]) {
register(TRIGGER_EVENT, ([name, args], info) => callEvent(name, args, info));
}

function passEventToBrowser(browser: BrowserMp, data: Event, ignoreNotFound: boolean): void {
function passEventToBrowser(browser: Browser, data: Event, ignoreNotFound: boolean): void {
const raw = stringifyData(data);

browser.execute(
Expand All @@ -253,7 +253,7 @@ function callProcedure<T = any>(name: string, args: any, info: ProcedureListener
return Promise.resolve(listener(args, info));
}

function sendEventData(event: Event, player?: PlayerMp) {
function sendEventData(event: Event, player?: Player) {
const callEnvFunc = {
client: (event: string, ...args: any[]) => mp.events.callRemote(event, ...args),
server: (event: string, ...args: any[]) => player!.call(event, [...args])
Expand Down Expand Up @@ -387,7 +387,7 @@ export function callServer<T = any>(name: string, args?: any, options: CallOptio
return promiseTimeout(_callServer(name, args, extraData), options.timeout);
}

function _callClient<T = any>(player: PlayerMp, name: string, args?: any, extraData: any = {}): Promise<T> {
function _callClient<T = any>(player: Player, name: string, args?: any, extraData: any = {}): Promise<T> {
switch (environment) {
case 'client':
return call(name, args);
Expand Down Expand Up @@ -454,7 +454,7 @@ function _callClient<T = any>(player: PlayerMp, name: string, args?: any, extraD
* @param options - Any options.
* @returns The result from the procedure.
*/
export function callClient<T = any>(player: PlayerMp | string, name?: string | any, args?: any, options: CallOptions = {}): Promise<T> {
export function callClient<T = any>(player: Player | string, name?: string | any, args?: any, options: CallOptions = {}): Promise<T> {
switch (environment) {
case 'client': {
options = args || {};
Expand Down Expand Up @@ -507,10 +507,10 @@ export function callClient<T = any>(player: PlayerMp | string, name?: string | a
extraData.noRet = 1;
}

return promiseTimeout(_callClient(player as PlayerMp, name, args, extraData), options.timeout);
return promiseTimeout(_callClient(player as Player, name, args, extraData), options.timeout);
}

function _callBrowser<T = any>(browser: BrowserMp, name: string, args?: any, extraData: any = {}): Promise<T> {
function _callBrowser<T = any>(browser: Browser, name: string, args?: any, extraData: any = {}): Promise<T> {
return new Promise((resolve) => {
const id = generateId();

Expand All @@ -535,7 +535,7 @@ function _callBrowser<T = any>(browser: BrowserMp, name: string, args?: any, ext
});
}

function _callBrowsers<T = any>(player: PlayerMp, name: string, args?: any, extraData: any = {}): Promise<T> {
function _callBrowsers<T = any>(player: Player, name: string, args?: any, extraData: any = {}): Promise<T> {
switch (environment) {
case 'client': {
const browserId = glob.__rpcBrowserProcedures[name];
Expand All @@ -555,7 +555,7 @@ function _callBrowsers<T = any>(player: PlayerMp, name: string, args?: any, extr
return _callClient(player, '__rpc:callBrowsers', [name, args, Number(extraData.noRet)], extraData);

case 'cef':
return _callClient(null as unknown as PlayerMp, '__rpc:callBrowsers', [name, args, Number(extraData.noRet)], extraData);
return _callClient(null as unknown as Player, '__rpc:callBrowsers', [name, args, Number(extraData.noRet)], extraData);
}
}

Expand All @@ -570,7 +570,7 @@ function _callBrowsers<T = any>(player: PlayerMp, name: string, args?: any, extr
* @param options - Any options.
* @returns The result from the procedure.
*/
export function callBrowsers<T = any>(player: PlayerMp | string, name?: string | any, args?: any, options: CallOptions = {}): Promise<T> | undefined {
export function callBrowsers<T = any>(player: Player | string, name?: string | any, args?: any, options: CallOptions = {}): Promise<T> | undefined {
let promise;
const extraData: any = {};

Expand All @@ -591,7 +591,7 @@ export function callBrowsers<T = any>(player: PlayerMp | string, name?: string |
extraData.noRet = 1;
}

promise = _callBrowsers(null as unknown as PlayerMp, name, args, extraData);
promise = _callBrowsers(null as unknown as Player, name, args, extraData);
break;
}

Expand All @@ -606,7 +606,7 @@ export function callBrowsers<T = any>(player: PlayerMp | string, name?: string |
extraData.noRet = 1;
}

promise = _callBrowsers(player as PlayerMp, name, args, extraData);
promise = _callBrowsers(player as Player, name, args, extraData);
break;
}

Expand All @@ -628,7 +628,7 @@ export function callBrowsers<T = any>(player: PlayerMp | string, name?: string |
* @param options - Any options.
* @returns The result from the procedure.
*/
export function callBrowser<T = any>(browser: BrowserMp, name: string, args?: any, options: CallOptions = {}): Promise<T> {
export function callBrowser<T = any>(browser: Browser, name: string, args?: any, options: CallOptions = {}): Promise<T> {
if (environment !== 'client') {
return Promise.reject(`callBrowser can only be used in the client environment - ("${name}")`);
}
Expand Down Expand Up @@ -717,7 +717,7 @@ export function trigger(name: string, args?: any) {
* @param name - The name of the event.
* @param args - Any parameters for the event.
*/
export function triggerClient(player: PlayerMp | string, name?: string | any, args?: any) {
export function triggerClient(player: Player | string, name?: string | any, args?: any) {
switch (environment) {
case 'client': {
args = name;
Expand Down Expand Up @@ -756,7 +756,7 @@ export function triggerClient(player: PlayerMp | string, name?: string | any, ar
}
}

void _callClient(player as PlayerMp, TRIGGER_EVENT, [name, args], { noRet: 1 });
void _callClient(player as Player, TRIGGER_EVENT, [name, args], { noRet: 1 });
}

/**
Expand Down Expand Up @@ -784,7 +784,7 @@ export function triggerServer(name: string, args?: any) {
* @param name - The name of the event.
* @param args - Any parameters for the event.
*/
export function triggerBrowsers(player: PlayerMp | string, name?: string | any, args?: any) {
export function triggerBrowsers(player: Player | string, name?: string | any, args?: any) {
switch (environment) {
case 'client':
case 'cef': {
Expand All @@ -810,7 +810,7 @@ export function triggerBrowsers(player: PlayerMp | string, name?: string | any,
}
}

void _callClient(player as PlayerMp, TRIGGER_EVENT_BROWSERS, [name, args], { noRet: 1 });
void _callClient(player as Player, TRIGGER_EVENT_BROWSERS, [name, args], { noRet: 1 });
}

/**
Expand All @@ -822,7 +822,7 @@ export function triggerBrowsers(player: PlayerMp | string, name?: string | any,
* @param name - The name of the event.
* @param args - Any parameters for the event.
*/
export function triggerBrowser(browser: BrowserMp, name: string, args?: any) {
export function triggerBrowser(browser: Browser, name: string, args?: any) {
if (environment !== 'client') {
throw new Error(`callBrowser can only be used in the client environment - ("${name}")`);
}
Expand Down

0 comments on commit 5b0316b

Please sign in to comment.