UNPKG

@kit-data-manager/pid-component

Version:

The PID-Component is a web component that can be used to evaluate and display FAIR Digital Objects, PIDs, ORCiDs, and possibly other identifiers in a user-friendly way. It is easily extensible to support other identifier types.

59 lines (58 loc) 1.86 kB
/*! * * Copyright 2024 Karlsruhe Institute of Technology. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ let cacheInstance; async function open() { if ('caches' in self) { cacheInstance = await caches.open('pid-component'); } } export async function cachedFetch(url, init) { await open(); if (cacheInstance) { const response = await cacheInstance.match(url); if (response) { return response.json(); } else { let response; const parts = url.split('://'); if (parts[0] !== 'https') { response = await fetch(`https://${parts[1]}`, init); if (!response) { console.log(`404 for https://${parts[1]} - trying http://${parts[1]}`); response = await fetch(`http://${parts[1]}`, init); } } else { response = await fetch(url, init); } await cacheInstance.put(url, response.clone()); return response.json(); } } else { const response = await fetch(url, init); return response.json(); } } export async function clearCache() { if (cacheInstance) { await cacheInstance.delete('pid-component'); } } //# sourceMappingURL=DataCache.js.map