UNPKG

1.3 kBJavaScriptView Raw
1export const filenameWithoutLoaders = (filename = '') => {
2 var index = filename.lastIndexOf('!')
3
4 return index < 0 ? filename : filename.substr(index + 1)
5}
6
7export const filenameHasLoaders = (filename) => {
8 const actualFilename = filenameWithoutLoaders(filename)
9
10 return actualFilename !== filename
11}
12
13export const filenameHasSchema = (filename) => {
14 return /^[\w]+\:/.test(filename)
15}
16
17export const isFilenameAbsolute = (filename) => {
18 const actualFilename = filenameWithoutLoaders(filename)
19
20 if (actualFilename.indexOf('/') === 0) {
21 return true
22 }
23
24 return false
25}
26
27export const makeUrl = (filename, scheme, line, column) => {
28 let actualFilename = filenameWithoutLoaders(filename)
29
30 if (filenameHasSchema(filename)) {
31 return actualFilename
32 }
33
34 let url = `file://${actualFilename}`
35
36 if (scheme) {
37 url = `${scheme}://open?url=${url}`
38
39 if (line && actualFilename === filename) {
40 url = `${url}&line=${line}`
41
42 if (column) {
43 url = `${url}&column=${column}`
44 }
45 }
46 }
47
48 return url
49}
50
51export const makeLinkText = (filename, line, column) => {
52 let text = filenameWithoutLoaders(filename)
53
54 if (line && text === filename) {
55 text = `${text}:${line}`
56
57 if (column) {
58 text = `${text}:${column}`
59 }
60 }
61
62 return text
63}