🕐

ObjectからCacheControlの文字列を生成する

2024/05/28に公開

このような文字列を何かしらの都合でObjectから生成したい場合。

'max-age=120,s-maxage=3600,stale-while-revalidate=345600,stale-if-error=345600'

このように書ける。

const params = {
  "max-age": 120,
  "s-maxage": 3600,
  "stale-while-revalidate": 345600,
  "stale-if-error": 345600,
}

return Object.entries(item)
  .map(([key, value]) => `${key}=${value}`)
  .join(",")

何かしらの理由でMapを使用したい場合はObjectに変換します。

const map = new Map<string, string>([
  ["max-age", "60"],
  ["s-maxage", "3600"],
  ["stale-while-revalidate", "345600"],
  ["stale-if-error", "345600"],
])

map.set("max-age", "120")

Array.from(map).entries())
  .map(([key, value]) => `${key}=${value}`)
  .join(",")

SearchParamsの場合

関係ないですがURLのSearchParamsの場合は専用のClassがあるのでこのようなコードは必要ありません。

new URLSearchParams({ a:"2", b:"4" }).toString() // "a=2&b=4"

Discussion