12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 'use strict'
- const assert = require('assert')
- const { URLSerializer } = require('../fetch/dataURL')
- const { isValidHeaderName } = require('../fetch/util')
- /**
- * @see https://url.spec.whatwg.org/#concept-url-equals
- * @param {URL} A
- * @param {URL} B
- * @param {boolean | undefined} excludeFragment
- * @returns {boolean}
- */
- function urlEquals (A, B, excludeFragment = false) {
- const serializedA = URLSerializer(A, excludeFragment)
- const serializedB = URLSerializer(B, excludeFragment)
- return serializedA === serializedB
- }
- /**
- * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262
- * @param {string} header
- */
- function fieldValues (header) {
- assert(header !== null)
- const values = []
- for (let value of header.split(',')) {
- value = value.trim()
- if (!value.length) {
- continue
- } else if (!isValidHeaderName(value)) {
- continue
- }
- values.push(value)
- }
- return values
- }
- module.exports = {
- urlEquals,
- fieldValues
- }
|