Cache Tags using Workers
Send Additional Cache Tags using Workers
addEventListener("fetch", (event) => {  event.respondWith(    handleRequest(event.request).catch(      (err) => new Response(err.stack, { status: 500 })    )  );
});
async function handleRequest(request) {  const requestUrl = new URL(request.url);  const params = requestUrl.searchParams;  const tags = params && params.has('tags')     ? params.get('tags').split(',')    : [];    const url = params && params.has('uri')    ? JSON.parse(params.get('uri'))    : '';    if (!url) {    const errorObject = {      error: "URL cannot be empty"    }    return new Response(JSON.stringify(errorObject), { status: 400 })  }
    const init = {    cf: {      cacheTags: tags    }  }      return fetch(url, init)    .then((result) => {      const cacheStatus = result.headers.get('cf-cache-status');      const lastModified = result.headers.get('last-modified');
      const response = {        cache: cacheStatus,        lastModified: lastModified      };      return new Response(JSON.stringify(response), { status: result.status })    })    .catch((err) => {      const errorObject = {        error: err.message      };
      return new Response(JSON.stringify(errorObject), { status: 500 })    });
}