@slavmak2486/bx24ts
Version:
Library for bitrix24
57 lines (52 loc) • 2.09 kB
text/typescript
import { CallResult } from "./callResult";
import { batchCmdElement } from "./types/batchElement";
type BX24Rest={
callMethod(method:string,params:any,cb?:(res:CallResult)=>any):void,
callBatch<T extends batchCmdElement>(cmd:T, cb:(params:{[key in keyof T]:CallResult})=>void, haltOnError:boolean):void
}
export class BX24Local{
private BX24Rest:BX24Rest;
constructor(BX24Rest:BX24Rest){
this.BX24Rest = BX24Rest
}
callBatch<T extends batchCmdElement>(cmd:T, haltOnError?:boolean):Promise<{[key in keyof T]:CallResult}>
callBatch<T extends batchCmdElement>(cmd:T, cb:(params:{[key in keyof T]:CallResult})=>void):void
callBatch<T extends batchCmdElement>(cmd:T, cb:(params:{[key in keyof T]:CallResult})=>void, haltOnError:boolean):void
callBatch<T extends batchCmdElement>(
cmd:T,
cb?:((params:{[key in keyof T]:CallResult})=>void)|boolean,
haltOnError=false
):void|Promise<{[key in keyof T]:CallResult}>{
if (typeof cb === "function"){
this.BX24Rest.callBatch(cmd, cb as (params:any)=>void, haltOnError)
return;
}
haltOnError = typeof cb === "boolean" ? cb : haltOnError;
return new Promise((res,rej)=>{
try {
this.callBatch(cmd, result=>{
res(result);
});
} catch (error) {
rej(error);
}
});
}
callMethod(method:string, params:any):Promise<CallResult>;
callMethod(method:string, params:any, cb?:(params:CallResult)=>void):void;
callMethod(method:string, params:any, cb?:(params:CallResult)=>void):void|Promise<CallResult>{
if (typeof cb ==='function'){
this.BX24Rest.callMethod(method, params, cb);
return;
}
return new Promise((resolve, reject)=>{
try {
this.callMethod(method, params, result=>{
resolve(result);
});
} catch (error) {
reject(error);
}
})
}
}