demo___customer_pitch-c4152739-a50b-4b5b-9d4d-0561461666d9.zip-extract/_dependencies/npm/fresh-0.5.2/index.js

Path
demo___customer_pitch-c4152739-a50b-4b5b-9d4d-0561461666d9.zip-extract/_dependencies/npm/fresh-0.5.2/index.js
Status
scanned
Type
file
Name
index.js
Extension
.js
Programming language
JavaScript
Mime type
text/plain
File type
ASCII text
Tag

      
    
Rootfs path

      
    
Size
2711 (2.6 KB)
MD5
57dbafb6c310ce7063690f5688acedd5
SHA1
cfc0704230b5d08c39f9847f7e1e808369b4110e
SHA256
85b46ce10c4fba71fb41666586572277f626bbc698266026372941b5267bfb60
SHA512

      
    
SHA1_git
d154f5a7d23975af101646b65e74abf8490f50a5
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
index.js | 2.6 KB |

/*! * fresh * Copyright(c) 2012 TJ Holowaychuk * Copyright(c) 2016-2017 Douglas Christopher Wilson * MIT Licensed */ 'use strict' /** * RegExp to check for no-cache token in Cache-Control. * @private */ var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/ /** * Module exports. * @public */ module.exports = fresh /** * Check freshness of the response using request and response headers. * * @param {Object} reqHeaders * @param {Object} resHeaders * @return {Boolean} * @public */ function fresh (reqHeaders, resHeaders) { // fields var modifiedSince = reqHeaders['if-modified-since'] var noneMatch = reqHeaders['if-none-match'] // unconditional request if (!modifiedSince && !noneMatch) { return false } // Always return stale when Cache-Control: no-cache // to support end-to-end reload requests // https://tools.ietf.org/html/rfc2616#section-14.9.4 var cacheControl = reqHeaders['cache-control'] if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) { return false } // if-none-match if (noneMatch && noneMatch !== '*') { var etag = resHeaders['etag'] if (!etag) { return false } var etagStale = true var matches = parseTokenList(noneMatch) for (var i = 0; i < matches.length; i++) { var match = matches[i] if (match === etag || match === 'W/' + etag || 'W/' + match === etag) { etagStale = false break } } if (etagStale) { return false } } // if-modified-since if (modifiedSince) { var lastModified = resHeaders['last-modified'] var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince)) if (modifiedStale) { return false } } return true } /** * Parse an HTTP Date into a number. * * @param {string} date * @private */ function parseHttpDate (date) { var timestamp = date && Date.parse(date) // istanbul ignore next: guard against date.js Date.parse patching return typeof timestamp === 'number' ? timestamp : NaN } /** * Parse a HTTP token list. * * @param {string} str * @private */ function parseTokenList (str) { var end = 0 var list = [] var start = 0 // gather tokens for (var i = 0, len = str.length; i < len; i++) { switch (str.charCodeAt(i)) { case 0x20: /* */ if (start === end) { start = end = i + 1 } break case 0x2c: /* , */ list.push(str.substring(start, end)) start = end = i + 1 break default: end = i + 1 break } } // final token list.push(str.substring(start, end)) return list }
Detected license expression
mit
Detected license expression (SPDX)
MIT
Percentage of license text
0.65
Copyrights
- end_line: 3
  copyright: Copyright (c) 2012 TJ Holowaychuk
  start_line: 3
- end_line: 4
  copyright: Copyright (c) 2016-2017 Douglas Christopher Wilson
  start_line: 4
Holders
- holder: TJ Holowaychuk
  end_line: 3
  start_line: 3
- holder: Douglas Christopher Wilson
  end_line: 4
  start_line: 4
Authors

      
    
License detections License expression License expression SPDX
mit-4e7803e6-e54b-c9ca-bcd2-bee9755c0dd7 mit MIT
URL Start line End line
https://tools.ietf.org/html/rfc2616#section-14.9.4 45 45
Package URL License Primary language
pkg:npm/acme-demo-app@1.0.0 JavaScript
pkg:npm/fresh@0.5.2 mit JavaScript