Function ifNoneMatch

  • 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.

    Parameters

    • value: null | string

      the If-None-Match header value.

    • etag: undefined | string

      the ETag to check against.

    Returns boolean

    whether or not the parameters do not match.

    import {
    eTag,
    ifNoneMatch,
    } from "@std/http/etag";
    import { assert } from "@std/assert";

    const body = "hello deno!";

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