From c5279a37f3047ff8bc5c637201a322e7e3c3de0b Mon Sep 17 00:00:00 2001 From: Daniel Waxweiler Date: Fri, 5 Apr 2024 23:44:53 +0200 Subject: [PATCH] remove unused code and dependencies --- package-lock.json | 117 +---------------------- package.json | 4 +- source/front/graphql-wrapper.js | 78 --------------- source/front/object-hash-wrapper-test.js | 6 -- source/front/object-hash-wrapper.js | 5 - source/front/session-cache-test.js | 33 ------- source/front/session-cache.js | 27 ------ 7 files changed, 2 insertions(+), 268 deletions(-) delete mode 100644 source/front/graphql-wrapper.js delete mode 100644 source/front/object-hash-wrapper-test.js delete mode 100644 source/front/object-hash-wrapper.js delete mode 100644 source/front/session-cache-test.js delete mode 100644 source/front/session-cache.js diff --git a/package-lock.json b/package-lock.json index b946d94..8930444 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,7 @@ "license": "Apache-2.0", "dependencies": { "graphql": "16.8.1", - "graphql-request": "6.1.0", - "luxon": "3.4.4", - "object-hash": "3.0.0" + "luxon": "3.4.4" }, "devDependencies": { "@babel/core": "7.24.4", @@ -2232,14 +2230,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -5156,13 +5146,6 @@ "node": ">=10" } }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.7" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -8229,18 +8212,6 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, "node_modules/gulp": { "version": "4.0.2", "dev": true, @@ -10703,40 +10674,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -10882,13 +10819,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -16398,12 +16328,6 @@ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, "@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -18421,12 +18345,6 @@ "yaml": "^1.10.0" } }, - "cross-fetch": { - "version": "3.1.5", - "requires": { - "node-fetch": "2.6.7" - } - }, "cross-spawn": { "version": "7.0.3", "dev": true, @@ -20618,15 +20536,6 @@ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" }, - "graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "requires": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - } - }, "gulp": { "version": "4.0.2", "dev": true, @@ -22296,27 +22205,6 @@ "version": "1.0.0", "dev": true }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3" - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, "node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -22416,9 +22304,6 @@ } } }, - "object-hash": { - "version": "3.0.0" - }, "object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", diff --git a/package.json b/package.json index f257032..544395a 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,7 @@ "license": "Apache-2.0", "dependencies": { "graphql": "16.8.1", - "graphql-request": "6.1.0", - "luxon": "3.4.4", - "object-hash": "3.0.0" + "luxon": "3.4.4" }, "devDependencies": { "@babel/core": "7.24.4", diff --git a/source/front/graphql-wrapper.js b/source/front/graphql-wrapper.js deleted file mode 100644 index b4f2bea..0000000 --- a/source/front/graphql-wrapper.js +++ /dev/null @@ -1,78 +0,0 @@ -import SessionCache from './session-cache.js' -import { request } from 'graphql-request' -import DateTimeWrapper from './date-time-wrapper.js' - -export function getUpcomingEvents({ url, limit }) { - const query = ` - query ($limit: Int) { - events(limit: $limit) { - elements { - id, - title, - url, - beginsOn, - endsOn, - physicalAddress { - description, - locality - } - }, - total - } - } - ` - const dataInCache = SessionCache.get(sessionStorage, { - url, - query, - variables: { limit }, - }) - if (dataInCache !== null) { - return Promise.resolve(dataInCache) - } - return request(url, query, { limit }).then((data) => { - SessionCache.add(sessionStorage, { url, query, variables: { limit } }, data) - return Promise.resolve(data) - }) -} - -export function getUpcomingEventsByGroupName({ url, limit, groupName }) { - const query = ` - query ($afterDatetime: DateTime, $groupName: String!, $limit: Int) { - group(preferredUsername: $groupName) { - organizedEvents(afterDatetime: $afterDatetime, limit: $limit) { - elements { - id, - title, - url, - beginsOn, - endsOn, - physicalAddress { - description, - locality - } - }, - total - } - } - } - ` - const afterDatetime = DateTimeWrapper.getCurrentDatetimeAsString() - const dataInCache = SessionCache.get(sessionStorage, { - url, - query, - variables: { afterDatetime, groupName, limit }, - }) - if (dataInCache !== null) { - return Promise.resolve(dataInCache) - } - return request(url, query, { afterDatetime, groupName, limit }).then( - (data) => { - SessionCache.add( - sessionStorage, - { url, query, variables: { afterDatetime, groupName, limit } }, - data, - ) - return Promise.resolve(data) - }, - ) -} diff --git a/source/front/object-hash-wrapper-test.js b/source/front/object-hash-wrapper-test.js deleted file mode 100644 index d4bec83..0000000 --- a/source/front/object-hash-wrapper-test.js +++ /dev/null @@ -1,6 +0,0 @@ -import test from 'ava' -import hash from './object-hash-wrapper.js' - -test('#hash object', (t) => { - t.is(hash({ foo: 'bar' }), 'a75c05bdca7d704bdfcd761913e5a4e4636e956b') -}) diff --git a/source/front/object-hash-wrapper.js b/source/front/object-hash-wrapper.js deleted file mode 100644 index 262f85f..0000000 --- a/source/front/object-hash-wrapper.js +++ /dev/null @@ -1,5 +0,0 @@ -import objectHash from 'object-hash' - -export default function hash(object) { - return objectHash(object) -} diff --git a/source/front/session-cache-test.js b/source/front/session-cache-test.js deleted file mode 100644 index 03afadb..0000000 --- a/source/front/session-cache-test.js +++ /dev/null @@ -1,33 +0,0 @@ -import test from 'ava' -import SessionCache from './session-cache.js' - -const fakeStorage = { - elements: {}, - - clear() { - this.elements = {} - }, - - getItem(key) { - const value = this.elements[key] - if (value === undefined) return null - return value - }, - - setItem(key, value) { - this.elements[key] = value - }, -} - -test.afterEach(() => { - fakeStorage.clear() -}) - -test('#add & #get', (t) => { - SessionCache.add(fakeStorage, { a: 'b' }, { c: 'd' }) - t.deepEqual(SessionCache.get(fakeStorage, { a: 'b' }), { c: 'd' }) -}) - -test('#get no entry', (t) => { - t.is(SessionCache.get(fakeStorage, { a: 'bb' }), null) -}) diff --git a/source/front/session-cache.js b/source/front/session-cache.js deleted file mode 100644 index 937dab9..0000000 --- a/source/front/session-cache.js +++ /dev/null @@ -1,27 +0,0 @@ -import hash from './object-hash-wrapper.js' - -const MAX_AGE_IN_MS = 120000 - -export default class SessionCache { - static add(storage, parameters, data) { - const key = hash(parameters) - const timestamp = Date.now() - const value = { - data, - timestamp, - } - storage.setItem(key, JSON.stringify(value)) - } - - static get(storage, parameters) { - const key = hash(parameters) - const value = JSON.parse(storage.getItem(key)) - if ( - value && - value.timestamp && - value.timestamp > Date.now() - MAX_AGE_IN_MS - ) - return value.data - return null - } -}