UNPKG

homebridge-soundtouch-plugins

Version:
23 lines (21 loc) 537 B
export const callbackify = ( task: (...taskArgs: any[]) => Promise<any> ): any => { return (...args: any[]) => { const onlyArgs: any[] = [] let callback: Function = undefined for (const arg of args) { if (typeof arg === 'function') { callback = arg break } onlyArgs.push(arg) } if (!callback) { throw new Error('Missing callback parameter!') } task(...onlyArgs) .then((data: any) => callback(undefined, data)) .catch((err: any) => callback(err)) } }