remove unused code and dependencies
This commit is contained in:
parent
99e58d0382
commit
c5279a37f3
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)
|
||||
},
|
||||
)
|
||||
}
|
|
@ -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')
|
||||
})
|
|
@ -1,5 +0,0 @@
|
|||
import objectHash from 'object-hash'
|
||||
|
||||
export default function hash(object) {
|
||||
return objectHash(object)
|
||||
}
|
|
@ -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)
|
||||
})
|
|
@ -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
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue