forked from fraserxu/electron-pdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathargs.js
36 lines (31 loc) · 831 Bytes
/
args.js
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
30
31
32
33
34
35
36
var assert = require('assert')
var assign = require('object-assign')
var path = require('path')
var url = require('url')
function encode (args) {
assert.strictEqual(typeof args, 'object', 'args must be an object')
// stringify the args
args = args ? encodeURIComponent(JSON.stringify(args)) : ''
return args
}
function urlWithArgs (urlOrFile, args) {
args = encode(args)
var u
if (urlOrFile.indexOf('http') === 0) {
var urlData = url.parse(urlOrFile)
var hash = urlData.hash || args ? args : undefined
u = url.format(assign(urlData, { hash: hash }))
} else { // presumably a file url
u = url.format({
protocol: 'file',
pathname: path.resolve(urlOrFile),
slashes: true,
hash: args
})
}
return u
}
module.exports = {
encode: encode,
urlWithArgs: urlWithArgs
}