Module
x/opine/src/utils/compileETag.ts
Fast, minimalist web framework for Deno ported from ExpressJS.
Very Popular
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869import { etag as createETag } from "./etag.ts";
/** * Create an ETag generator function, generating ETags with * the given options. * * @param {object} options * @return {Function} generateETag function. * @private */function createETagGenerator(options: any): Function { return function generateETag(body: string | Uint8Array | Deno.FileInfo) { return createETag(body, options); };}
/** * Return strong ETag for `body`. * * @param {any} body * @param {string} [encoding] * @return {string} * @private */export const etag = createETagGenerator({ weak: false });
/** * Return weak ETag for `body`. * * @param {any} body * @param {string} [encoding] * @return {string} * @private */export const wetag = createETagGenerator({ weak: true });
/** * Check if `path` looks absolute. * * @param {String} path * @return {Boolean} * @private */export const compileETag = function (value: any) { let fn;
if (typeof value === "function") { return value; }
switch (value) { case true: fn = wetag; break; case false: break; case "strong": fn = etag; break; case "weak": fn = wetag; break; default: throw new TypeError(`unknown value for etag function: ${value}`); }
return fn;};