[TikiWiki-commits] [Git][tikiwiki/tiki][master] [REF][REM] Replace axios with Ky and refactor Kanban.js

"Camile \(@camilevahviraki\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <69d8cab513b35_3b18dbd452b8@gitlab-sidekiq-low-urgency-cpu-bound-v2-79b46d665d-q4kgs.mail>

Camile pushed to branch master at Tiki Wiki CMS Groupware / Tiki


Commits:
22844dd6 by Camile at 2026-04-10T09:55:10+00:00
[REF][REM] Replace axios with Ky and refactor Kanban.js
---
* [REF][REM] Replace axios with Ky and refactor Kanban.js

See merge request tikiwiki/tiki!9987

- - - - -


3 changed files:

- package-lock.json
- src/js/vue-mf/kanban/package.json
- src/js/vue-mf/kanban/src/api/kanban.js


Changes:

=====================================
package-lock.json
=====================================
@@ -5497,7 +5497,9 @@
             "version": "0.4.0",
             "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
             "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
-            "license": "MIT"
+            "license": "MIT",
+            "optional": true,
+            "peer": true
         },
         "node_modules/autosize": {
             "version": "6.0.1",
@@ -5530,6 +5532,8 @@
             "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz",
             "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==",
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "dependencies": {
                 "follow-redirects": "^1.15.11",
                 "form-data": "^4.0.5",
@@ -5812,6 +5816,7 @@
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
             "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "es-errors": "^1.3.0",
@@ -6418,6 +6423,8 @@
             "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
             "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "dependencies": {
                 "delayed-stream": "~1.0.0"
             },
@@ -7812,6 +7819,8 @@
             "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
             "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "engines": {
                 "node": ">=0.4.0"
             }
@@ -7917,6 +7926,7 @@
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
             "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "call-bind-apply-helpers": "^1.0.1",
@@ -8183,6 +8193,7 @@
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
             "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+            "devOptional": true,
             "license": "MIT",
             "engines": {
                 "node": ">= 0.4"
@@ -8192,6 +8203,7 @@
             "version": "1.3.0",
             "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
             "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+            "devOptional": true,
             "license": "MIT",
             "engines": {
                 "node": ">= 0.4"
@@ -8236,6 +8248,7 @@
             "version": "1.1.1",
             "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
             "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "es-errors": "^1.3.0"
@@ -8249,6 +8262,8 @@
             "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
             "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "dependencies": {
                 "es-errors": "^1.3.0",
                 "get-intrinsic": "^1.2.6",
@@ -9035,6 +9050,8 @@
                 }
             ],
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "engines": {
                 "node": ">=4.0"
             },
@@ -9108,6 +9125,8 @@
             "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
             "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
             "license": "MIT",
+            "optional": true,
+            "peer": true,
             "dependencies": {
                 "asynckit": "^0.4.0",
                 "combined-stream": "^1.0.8",
@@ -9164,6 +9183,7 @@
             "version": "1.1.2",
             "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
             "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+            "devOptional": true,
             "license": "MIT",
             "funding": {
                 "url": "https://github.com/sponsors/ljharb"
@@ -9242,6 +9262,7 @@
             "version": "1.3.0",
             "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
             "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "call-bind-apply-helpers": "^1.0.2",
@@ -9266,6 +9287,7 @@
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
             "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "dunder-proto": "^1.0.1",
@@ -9798,6 +9820,7 @@
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
             "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+            "devOptional": true,
             "license": "MIT",
             "engines": {
                 "node": ">= 0.4"
@@ -9919,6 +9942,7 @@
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
             "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+            "devOptional": true,
             "license": "MIT",
             "engines": {
                 "node": ">= 0.4"
@@ -9931,6 +9955,7 @@
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
             "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "has-symbols": "^1.0.3"
@@ -9952,6 +9977,7 @@
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
             "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+            "devOptional": true,
             "license": "MIT",
             "dependencies": {
                 "function-bind": "^1.1.2"
@@ -11259,6 +11285,18 @@
                 "graceful-fs": "^4.1.11"
             }
         },
+        "node_modules/ky": {
+            "version": "1.14.3",
+            "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.3.tgz",
+            "integrity": "sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==",
+            "license": "MIT",
+            "engines": {
+                "node": ">=18"
+            },
+            "funding": {
+                "url": "https://github.com/sindresorhus/ky?sponsor=1"
+            }
+        },
         "node_modules/langium": {
             "version": "4.2.1",
             "resolved": "https://registry.npmjs.org/langium/-/langium-4.2.1.tgz",
@@ -11774,6 +11812,7 @@
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
             "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+            "devOptional": true,
             "license": "MIT",
             "engines": {
                 "node": ">= 0.4"
@@ -11905,6 +11944,7 @@
             "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
             "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
             "license": "MIT",
+            "peer": true,
             "engines": {
                 "node": ">= 0.6"
             }
@@ -11914,6 +11954,7 @@
             "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
             "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
             "license": "MIT",
+            "peer": true,
             "dependencies": {
                 "mime-db": "1.52.0"
             },
@@ -13322,7 +13363,9 @@
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
             "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
-            "license": "MIT"
+            "license": "MIT",
+            "optional": true,
+            "peer": true
         },
         "node_modules/pseudomap": {
             "version": "1.0.2",
@@ -17038,7 +17081,7 @@
             "dependencies": {
                 "@casl/ability": "^6.7.1",
                 "autosize": "^6.0.1",
-                "axios": "^1.7.5",
+                "ky": "^1.14.3",
                 "picoquery": "^2.5.0",
                 "vee-validate": "^4.13.1",
                 "vue-final-modal": "^4.5.4",


=====================================
src/js/vue-mf/kanban/package.json
=====================================
@@ -11,14 +11,13 @@
   },
   "dependenciesComment": {
     "@casl/ability": "Changelog: https://github.com/stalniy/casl/blob/master/packages/casl-ability/CHANGELOG.md",
-    "axios": "Changelog: https://github.com/axios/axios/blob/v1.x/CHANGELOG.md",
     "vee-validate": "Changelog:https://github.com/logaretm/vee-validate/blob/main/CHANGELOG.md",
     "vue3-perfect-scrollbar": "Changelog: https://github.com/mercs600/vue3-perfect-scrollbar/releases"
   },
   "dependencies": {
     "@casl/ability": "^6.7.1",
     "autosize": "^6.0.1",
-    "axios": "^1.7.5",
+    "ky": "^1.14.3",
     "picoquery": "^2.5.0",
     "vee-validate": "^4.13.1",
     "vue-final-modal": "^4.5.4",


=====================================
src/js/vue-mf/kanban/src/api/kanban.js
=====================================
@@ -1,80 +1,87 @@
-import axios from "axios";
+import ky from "ky";
 import { stringify } from "picoquery";
 import store from "../store";
 
 //Strip the last fragment of the path, and appends the api path.
-const baseUrl = location.protocol + "//" + location.host + location.pathname.replace(/\/[^/]*$/, "") + "/api";
-//console.log("LOCATION:",location);
-const api = axios.create({
-    baseURL: baseUrl,
+const baseUrl = location.protocol + "//" + location.host + location.pathname.replace(/\/[^/]*$/, "") + "/api/";
+
+const api = ky.create({
+    prefixUrl: baseUrl,
+});
+
+const authHeaders = () => ({
+    Authorization: `Bearer ${store.getters.getAccessToken}`,
 });
-// axios.defaults.headers.common = { 'Authorization': `Bearer ${store.getters.getAccessToken}` };
+
+async function request(method, url, options = {}) {
+    try {
+        const data = await api(url, { method, ...options }).json();
+        return { data };
+    } catch (err) {
+        if (err.response) {
+            try {
+                err.response.data = await err.response.json();
+            } catch {
+                err.response.data = {};
+            }
+        }
+        throw err;
+    }
+}
 
 // Add api method here
 export default {
     createBoard: function ({ trackerId, itemId }, payload) {
-        return api.post(`/trackers/${trackerId}/`, stringify(payload), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("post", `trackers/${trackerId}/`, {
+            body: stringify(payload),
+            headers: authHeaders(),
         });
     },
     createItem: function ({ trackerId }, payload) {
         // Sample
         // fields[fieldPermName]=value&fields[anotherFieldPermName]=anotherValue
-        return api.post(`/trackers/${trackerId}/items`, stringify(payload, { encode: false }), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("post", `trackers/${trackerId}/items`, {
+            body: stringify(payload, { encode: false }),
+            headers: authHeaders(),
         });
     },
     getItem: function ({ trackerId, itemId }, payload) {
-        return api.get(`/trackers/${trackerId}/items/${itemId}`, stringify(payload), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("get", `trackers/${trackerId}/items/${itemId}`, {
+            searchParams: payload,
+            headers: authHeaders(),
         });
     },
     setItem: function ({ trackerId, itemId }, payload) {
-        return api.post(`/trackers/${trackerId}/items/${itemId}`, stringify(payload, { encode: false }), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("post", `trackers/${trackerId}/items/${itemId}`, {
+            body: stringify(payload, { encode: false }),
+            headers: authHeaders(),
         });
     },
     deleteItem: function ({ trackerId, itemId }) {
-        return api.delete(`/trackers/${trackerId}/items/${itemId}`, {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("delete", `trackers/${trackerId}/items/${itemId}`, {
+            headers: authHeaders(),
         });
     },
     getField: function ({ trackerId, fieldId }, payload) {
-        return api.get(`/trackers/${trackerId}/fields/${fieldId}`, stringify(payload), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("get", `trackers/${trackerId}/fields/${fieldId}`, {
+            searchParams: payload,
+            headers: authHeaders(),
         });
     },
     setField: function ({ trackerId, fieldId }, payload) {
-        return api.post(`/trackers/${trackerId}/fields/${fieldId}`, stringify(payload), {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("post", `trackers/${trackerId}/fields/${fieldId}`, {
+            body: stringify(payload),
+            headers: authHeaders(),
         });
     },
     deleteField: function ({ trackerId, fieldId }) {
-        return api.delete(`/trackers/${trackerId}/fields/${fieldId}`, {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("delete", `trackers/${trackerId}/fields/${fieldId}`, {
+            headers: authHeaders(),
         });
     },
     getUsers: function () {
-        return api.get(`/users`, {
-            headers: {
-                Authorization: `Bearer ${store.getters.getAccessToken}`,
-            },
+        return request("get", `users`, {
+            headers: authHeaders(),
         });
     },
 };



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/22844dd66a154df04bdd8090d06a9256bd2fee6f

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/22844dd66a154df04bdd8090d06a9256bd2fee6f
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.