UNPKG

nativescript-contacts-lite

Version:

NativeScript plugin providing pretty fast read-only access to the iOS and Android contact directory

60 lines (51 loc) 2.16 kB
let contacts = require("./contacts"); let helper = require("./contacts-helper"); exports.getContactsWorker = (fields,searchTerm=undefined,debug=false) => { return new Promise((resolve, reject) => { helper.handlePermission().then(() => { let worker = {}; if (global.TNS_WEBPACK) { let Worker = require("nativescript-worker-loader!./get-contacts-worker.js"); worker = new Worker; } else { worker = new Worker('./get-contacts-worker.js'); // relative for caller script path } worker.postMessage({ "searchTerm": (searchTerm==='') ? undefined : searchTerm, "fields": fields, "debug": debug }); worker.onmessage = ((event) => { if (event.data.type == 'log') { console.log(event.data.message); } else if (event.data.type == 'dump') { console.dump(event.data.message); } else if (event.data.type == 'error') { reject(event.data); } else if (event.data.type == 'result') { worker.terminate(); resolve(event.data.message); } }); worker.onerror = ((e) => { reject(e); }); }, (e) => { reject(e); }); // end of handlePermission }); // end of promise }; exports.getContacts = (fields,searchTerm=undefined,debug=false) => { return new Promise((resolve, reject) => { helper.handlePermission().then(() => { let result = contacts.getContactsFromBackend( fields, (searchTerm==='') ? undefined : searchTerm, debug, false // we are not running in a web worker ); if (result.type=="error") { reject(result.message); } else { resolve(result.message); } }, (e) => { reject(e); }); // end of handlePermission }); // end of promise }; exports.getContactById = (contactId,fields,debug=false) => { return new Promise((resolve, reject) => { helper.handlePermission().then(() => { let result = contacts.getContactFromBackendById(contactId,fields,debug); if (result.type=="error") { reject(result.message); } else { resolve(result.message); } }, (e) => { reject(e); }); // end of handlePermission }); // end of promise }