homebridge-soundtouch-plugins
Version:
Homebridge SoundTouch plugins
23 lines (21 loc) • 537 B
text/typescript
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))
}
}