blob: cfb6ae025356ca454f5b977d54687cb49bc2c22a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
'use strict'
const { url: urlFn } = require('@metascraper/helpers')
/**
* Wrap a rule with validation and formatting logic.
*
* @param {Function} rule
* @return {Function} wrapped
*/
const wrap = rule => ({ htmlDom, url }) => {
const value = rule(htmlDom)
return urlFn(value, { url })
}
/**
* Rules.
*/
module.exports = () => ({
url: [
wrap($ => $('meta[property="og:url"]').attr('content')),
wrap($ => $('meta[name="twitter:url"]').attr('content')),
wrap($ => $('link[rel="canonical"]').attr('href')),
wrap($ => $('link[rel="alternate"][hreflang="x-default"]').attr('href')),
({ url }) => url
]
})
|