]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/helpers/utils/url.ts
Add video filters to common video pages
[github/Chocobozzz/PeerTube.git] / client / src / app / helpers / utils / url.ts
CommitLineData
dd24f1bb
C
1import { environment } from '../../../environments/environment'
2
3// Thanks: https://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
4function getParameterByName (name: string, url: string) {
5 if (!url) url = window.location.href
6 name = name.replace(/[[\]]/g, '\\$&')
7
8 const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)')
9 const results = regex.exec(url)
10
11 if (!results) return null
12 if (!results[2]) return ''
13
14 return decodeURIComponent(results[2].replace(/\+/g, ' '))
15}
16
17function getAbsoluteAPIUrl () {
18 let absoluteAPIUrl = environment.hmr === true
19 ? 'http://localhost:9000'
20 : environment.apiUrl
21
22 if (!absoluteAPIUrl) {
23 // The API is on the same domain
24 absoluteAPIUrl = window.location.origin
25 }
26
27 return absoluteAPIUrl
28}
29
30function getAbsoluteEmbedUrl () {
31 let absoluteEmbedUrl = environment.originServerUrl
32 if (!absoluteEmbedUrl) {
33 // The Embed is on the same domain
34 absoluteEmbedUrl = window.location.origin
35 }
36
37 return absoluteEmbedUrl
38}
39
40// Thanks: https://gist.github.com/ghinda/8442a57f22099bdb2e34
41function objectToFormData (obj: any, form?: FormData, namespace?: string) {
42 const fd = form || new FormData()
43 let formKey
44
45 for (const key of Object.keys(obj)) {
46 if (namespace) formKey = `${namespace}[${key}]`
47 else formKey = key
48
49 if (obj[key] === undefined) continue
50
51 if (Array.isArray(obj[key]) && obj[key].length === 0) {
52 fd.append(key, null)
53 continue
54 }
55
56 if (obj[key] !== null && typeof obj[key] === 'object' && !(obj[key] instanceof File)) {
57 objectToFormData(obj[key], fd, formKey)
58 } else {
59 fd.append(formKey, obj[key])
60 }
61 }
62
63 return fd
64}
65
66export {
67 getParameterByName,
68 objectToFormData,
69 getAbsoluteAPIUrl,
70 getAbsoluteEmbedUrl
71}