Untitled
unknown
plain_text
9 months ago
1.5 kB
6
Indexable
export async function nodejsFetch(input: RequestInfo | URL, init?: RequestInit) {
const { url, method, headers, body } = processFetchInput(input, init);
return new Promise<CapacitorResponse>((resolve, reject) => {
let response: CapacitorResponse | undefined;
const reqid = Date.now() + Math.random().toString(36).substring(2);
NodeJS.whenReady().then(() => {
const cleanup = () => NodeJS.removeAllListeners(reqid);
NodeJS.addListener(reqid, (event) => {
try {
const [operationStatus, ...args] = event.args;
switch (operationStatus) {
case 'error':
cleanup();
reject(new Error(args[0]));
break;
case 'success':
response = new CapacitorResponse(args[0]);
break;
case 'done':
cleanup();
if (response) resolve(response);
else reject(new Error('No response received'));
break;
}
} catch (err) {
cleanup();
reject(err);
}
});
NodeJS.send({
eventName: 'fetch',
args: [reqid, url, method, headers, body],
});
}).catch(reject);
});
}Editor is loading...
Leave a Comment