Skip to content

Commit 8b04337

Browse files
committed
feat: support pass custom got opts
1 parent b79f87b commit 8b04337

File tree

5 files changed

+23
-8
lines changed

5 files changed

+23
-8
lines changed

packages/metascraper-iframe/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"@metascraper/helpers": "^5.9.5",
2222
"got": "~9.6.0",
2323
"lodash": "~4.17.15",
24-
"oembed-spec": "~1.1.8",
24+
"oembed-spec": "~1.2.0",
2525
"p-reflect": "~2.1.0"
2626
},
2727
"devDependencies": {

packages/metascraper-iframe/src/from-html.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ const jsonOembed = memoizeOne($ =>
99
$('link[type="application/json+oembed"]').attr('href')
1010
)
1111

12-
const fromHTML = async ({ url, meta, htmlDom, ...opts }) => {
12+
const fromHTML = gotOpts => async ({ url, meta, htmlDom, ...opts }) => {
1313
const oembedUrl = jsonOembed(htmlDom)
1414
if (!oembedUrl) return null
1515
const oembedUrlObj = new URL(oembedUrl)
1616
forEach(opts, (value, key) => oembedUrlObj.searchParams.append(key, value))
17-
const { value } = await pReflect(got(oembedUrlObj.toString(), { json: true }))
17+
const { value } = await pReflect(got(oembedUrlObj.toString(), gotOpts))
1818
return get(value, 'body.html', null)
1919
}
2020

packages/metascraper-iframe/src/from-provider.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ const findProvider = memoizeOne(oEmbed.findProvider)
99

1010
const { fetchProvider } = oEmbed
1111

12-
const fromProvider = async ({ url, meta, htmlDom, ...opts }) => {
12+
const fromProvider = gotOpts => async ({ url, meta, htmlDom, ...opts }) => {
1313
const provider = findProvider(url)
14-
const { value } = await pReflect(fetchProvider(provider, url, opts))
14+
const { value } = await pReflect(fetchProvider(provider, url, opts, gotOpts))
1515
return get(value, 'html', null)
1616
}
1717

packages/metascraper-iframe/src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ const test = memoizeOne(
1212
({ url, htmlDom: $ }) => htmlTest($) || providerTest(url)
1313
)
1414

15-
module.exports = () => {
16-
const rules = { iframe: [fromHTML, fromProvider] }
15+
module.exports = ({ gotOpts = { json: true, retry: 0 } } = {}) => {
16+
const rules = { iframe: [fromHTML(gotOpts), fromProvider(gotOpts)] }
1717
rules.test = test
1818
return rules
1919
}

packages/metascraper-iframe/test/index.js

+16-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('metascraper-iframe', () => {
3939
should(isValid).be.true()
4040
})
4141
})
42-
describe('iframe', () => {
42+
describe('get iframe', () => {
4343
describe('from common providers', () => {
4444
commonProviders.forEach(url => {
4545
it(url, async () => {
@@ -58,4 +58,19 @@ describe('metascraper-iframe', () => {
5858
should(meta.iframe).be.not.null()
5959
})
6060
})
61+
describe('opts', () => {
62+
it('pass custom got options', async () => {
63+
const cache = new Map()
64+
const gotOpts = { json: true, retry: 0, cache }
65+
66+
const html = await readFile(resolve(__dirname, 'fixtures/genially.html'))
67+
const url = 'https://view.genial.ly/5dc53cfa759d2a0f4c7db5f4'
68+
69+
const rules = [createMetascraperIframe({ gotOpts })]
70+
const metascraper = createMetascraper(rules)
71+
const meta = await metascraper({ url, html })
72+
should(meta.iframe).be.not.null()
73+
should(cache.size).be.equal(1)
74+
})
75+
})
6176
})

0 commit comments

Comments
 (0)