aboutsummaryrefslogtreecommitdiff
path: root/common/ajax.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-07-21 22:00:20 +0200
committerWojtek Kosior <koszko@koszko.org>2021-07-21 22:00:20 +0200
commitc483ae19e110ef5c1e539883a38fbc79b3dd4e4e (patch)
tree60298e3852ce74233eacc95c77a6e5cdc297418d /common/ajax.js
parent5c68551800e477db41ae6fe3a318b2ff2d7a9cb1 (diff)
downloadbrowser-extension-c483ae19e110ef5c1e539883a38fbc79b3dd4e4e.tar.gz
browser-extension-c483ae19e110ef5c1e539883a38fbc79b3dd4e4e.zip
add ability to query page content from repo and display it in the popup
Diffstat (limited to 'common/ajax.js')
-rw-r--r--common/ajax.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/common/ajax.js b/common/ajax.js
new file mode 100644
index 0000000..8082bbe
--- /dev/null
+++ b/common/ajax.js
@@ -0,0 +1,39 @@
+/**
+ * part of Hachette
+ * Wrapping XMLHttpRequest into a Promise.
+ *
+ * Copyright (C) 2021 Wojtek Kosior
+ * Redistribution terms are gathered in the `copyright' file.
+ */
+
+function ajax_callback()
+{
+ if (this.readyState == 4)
+ this.resolve_callback(this);
+}
+
+function initiate_ajax_request(resolve, reject, method, url)
+{
+ const xhttp = new XMLHttpRequest();
+ xhttp.resolve_callback = resolve;
+ xhttp.onreadystatechange = ajax_callback;
+ xhttp.open(method, url, true);
+ try {
+ xhttp.send();
+ } catch(e) {
+ console.log(e);
+ setTimeout(reject, 0);
+ }
+}
+
+function make_ajax_request(method, url)
+{
+ return new Promise((resolve, reject) =>
+ initiate_ajax_request(resolve, reject, method, url));
+}
+
+/*
+ * EXPORTS_START
+ * EXPORT make_ajax_request
+ * EXPORTS_END
+ */