import { attrsStr } from 'utils' import LRU from 'lru-cache' export default class MetaRenderer { constructor (nuxt) { this.nuxt = nuxt this.options = nuxt.options this.cache = LRU({}) } render ({ url = '/' }) { let head = this.cache.get(url) if (head) { return head } head = '' // Title if (typeof this.options.head.title === 'string') { head += `${this.options.head.title || ''}` } // Meta if (Array.isArray(this.options.head.meta)) { this.options.head.meta.forEach(meta => { head += `` }) } // Links if (Array.isArray(this.options.head.link)) { this.options.head.link.forEach(link => { head += `` }) } // Style if (Array.isArray(this.options.head.style)) { this.options.head.style.forEach(style => { head += `` }) } // Script if (Array.isArray(this.options.head.script)) { this.options.head.script.forEach(script => { head += `` }) } this.cache.set(url, head) return head } }