File tree Expand file tree Collapse file tree 4 files changed +36
-21
lines changed Expand file tree Collapse file tree 4 files changed +36
-21
lines changed Original file line number Diff line number Diff line change 57
57
"dependencies" : {
58
58
"@metascraper/helpers" : " ~0.0.0" ,
59
59
"cheerio" : " ~1.0.0-rc.2" ,
60
+ "cosmiconfig" : " ~3.1.0" ,
60
61
"lodash" : " ~4.17.4" ,
61
62
"sanitize-html" : " ~1.16.1"
62
63
},
78
79
"coveralls" : " nyc report --reporter=text-lcov | coveralls" ,
79
80
"test" : " TZ=UTC NODE_ENV=test nyc mocha test"
80
81
},
81
- "license" : " MIT"
82
+ "license" : " MIT" ,
83
+ "standard" : {
84
+ "env" : [
85
+ " mocha"
86
+ ]
87
+ }
82
88
}
Original file line number Diff line number Diff line change 3
3
const { isUrl } = require ( '@metascraper/helpers' )
4
4
const { isEmpty } = require ( 'lodash' )
5
5
6
+ const loadRules = require ( './load-rules' )
6
7
const loadHTML = require ( './load-html' )
7
8
const getData = require ( './get-data' )
8
9
9
- const rules = [
10
- require ( 'metascraper-author' ) ,
11
- require ( 'metascraper-date' ) ,
12
- require ( 'metascraper-description' ) ,
13
- require ( 'metascraper-image' ) ,
14
- require ( 'metascraper-logo' ) ,
15
- require ( 'metascraper-publisher' ) ,
16
- require ( 'metascraper-title' ) ,
17
- require ( 'metascraper-url' )
18
- ]
19
-
20
10
module . exports = async ( { url, html } = { } ) => {
11
+ const rules = await loadRules ( )
12
+
21
13
if ( ! isUrl ( url ) ) throw new TypeError ( 'You need to provide a valid url.' )
22
14
if ( isEmpty ( html ) ) {
23
15
throw new TypeError ( 'You need to provide a valid HTML markup.' )
Original file line number Diff line number Diff line change
1
+ 'use strict'
2
+
3
+ const config = require ( 'cosmiconfig' ) ( 'metascraper' ) . load ( process . cwd ( ) )
4
+
5
+ module . exports = ( ) =>
6
+ Promise . resolve ( config ) . then (
7
+ configFile =>
8
+ configFile || [
9
+ require ( 'metascraper-author' ) ,
10
+ require ( 'metascraper-date' ) ,
11
+ require ( 'metascraper-description' ) ,
12
+ require ( 'metascraper-image' ) ,
13
+ require ( 'metascraper-logo' ) ,
14
+ require ( 'metascraper-publisher' ) ,
15
+ require ( 'metascraper-title' ) ,
16
+ require ( 'metascraper-url' )
17
+ ]
18
+ )
Original file line number Diff line number Diff line change @@ -21,12 +21,11 @@ it('html is required', async () => {
21
21
}
22
22
} )
23
23
24
- // it('plugins support', async () => {
25
- // const metascraper = createMetascraper({ plugins: [clearbitLogo] })
26
- // const url = 'https://facebook.com'
27
- // const html = '<div></div>'
28
- // const meta = await metascraper({ url, html })
29
- // should(meta.logo).be.equal(
30
- // 'https://logo.clearbit.com/facebook.com?size=128&format=png'
31
- // )
32
- // })
24
+ it ( 'loading custom rules' , async ( ) => {
25
+ const url = 'https://facebook.com'
26
+ const html = '<div></div>'
27
+ const meta = await metascraper ( { url, html } )
28
+ should ( meta . logo ) . be . equal (
29
+ 'https://logo.clearbit.com/facebook.com?size=128&format=png'
30
+ )
31
+ } )
You can’t perform that action at this time.
0 commit comments