Module

x/oak/mod.ts>etag.ifNoneMatch

A middleware framework for handling HTTP with Deno 🐿️ 🦕
Extremely Popular
Go to Latest
function etag.ifNoneMatch
import { etag } from "https://dotland.deno.dev/x/oak@v13.2.1/mod.ts";
const { ifNoneMatch } = etag;

A helper function that takes the value from the If-None-Match header and a calculated etag for the target entity and returns false if the etag for the entity matches the supplied value, otherwise true.

See MDN's If-None-Match article for more information on how to use this function.

import {
  calculate,
  ifNoneMatch,
} from "https://deno.land/std@$STD_VERSION/http/etag.ts";
import { assert } from "https://deno.land/std@$STD_VERSION/assert/assert.ts"

const body = "hello deno!";

Deno.serve(async (req) => {
  const ifNoneMatchValue = req.headers.get("if-none-match");
  const etag = await calculate(body);
  assert(etag);
  if (!ifNoneMatch(ifNoneMatchValue, etag)) {
    return new Response(null, { status: 304, headers: { etag } });
  } else {
    return new Response(body, { status: 200, headers: { etag } });
  }
});

Parameters

value: string | null
etag: string | undefined

Returns

boolean