1
- const normalizeUrl = require ( 'normalize-url' )
2
1
const isUrl = require ( 'is-url' )
3
2
const LRU = require ( 'lru-cache' )
4
- const { extractCss} = require ( './_chromium' )
3
+ const { extractCss } = require ( './_chromium' )
5
4
6
5
const cssCache = new LRU ( {
7
6
max : 500 ,
8
7
maxAge : 60 * 1000 // 60 seconds
9
8
} )
10
9
11
10
module . exports = async ( req , res ) => {
12
- const url = normalizeUrl ( req . url . slice ( 1 ) , { stripWWW : false } )
11
+ const { url } = req . query
13
12
14
13
if ( ! isUrl ( url ) ) {
15
- res . statusCode = 406
16
- res . setHeader ( 'Content-Type' , 'application/json' )
14
+ res . statusCode = 400
17
15
18
16
return res . send ( {
19
17
message : `The provided URL \`${ url } \` is not valid`
@@ -26,12 +24,11 @@ module.exports = async (req, res) => {
26
24
const result = cssCache . get ( url )
27
25
28
26
if ( req . headers . accept === 'application/json' ) {
29
- res . setHeader ( 'Content-Type' , 'application/json' )
30
- return res . send ( result )
27
+ return res . json ( result )
31
28
}
32
29
33
30
res . setHeader ( 'Content-Type' , 'text/css' )
34
- const css = result . map ( ( { css} ) => css ) . join ( '\n' )
31
+ const css = result . map ( ( { css } ) => css ) . join ( '\n' )
35
32
return res . end ( css )
36
33
}
37
34
@@ -40,16 +37,14 @@ module.exports = async (req, res) => {
40
37
cssCache . set ( url , result )
41
38
42
39
if ( req . headers . accept === 'application/json' ) {
43
- res . setHeader ( 'Content-Type' , 'application/json' )
44
- return res . send ( result )
40
+ return res . json ( result )
45
41
}
46
42
47
43
res . setHeader ( 'Content-Type' , 'text/css' )
48
- const css = result . map ( ( { css} ) => css ) . join ( '\n' )
44
+ const css = result . map ( ( { css } ) => css ) . join ( '\n' )
49
45
return res . end ( css )
50
46
} catch ( error ) {
51
47
res . statusCode = 500
52
- res . setHeader ( 'Content-Type' , 'application/json' )
53
- return res . send ( { message : error . message } )
48
+ return res . json ( { message : error . message } )
54
49
}
55
50
}
0 commit comments