[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