]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/helpers/utils/url.ts
Merge branch 'release/3.4.0' into develop
[github/Chocobozzz/PeerTube.git] / client / src / app / helpers / utils / url.ts
1 import { environment } from '../../../environments/environment'
2
3 function getAbsoluteAPIUrl () {
4 let absoluteAPIUrl = environment.hmr === true
5 ? 'http://localhost:9000'
6 : environment.apiUrl
7
8 if (!absoluteAPIUrl) {
9 // The API is on the same domain
10 absoluteAPIUrl = window.location.origin
11 }
12
13 return absoluteAPIUrl
14 }
15
16 function getAbsoluteEmbedUrl () {
17 let absoluteEmbedUrl = environment.originServerUrl
18 if (!absoluteEmbedUrl) {
19 // The Embed is on the same domain
20 absoluteEmbedUrl = window.location.origin
21 }
22
23 return absoluteEmbedUrl
24 }
25
26 // Thanks: https://gist.github.com/ghinda/8442a57f22099bdb2e34
27 function objectToFormData (obj: any, form?: FormData, namespace?: string) {
28 const fd = form || new FormData()
29 let formKey
30
31 for (const key of Object.keys(obj)) {
32 if (namespace) formKey = `${namespace}[${key}]`
33 else formKey = key
34
35 if (obj[key] === undefined) continue
36
37 if (Array.isArray(obj[key]) && obj[key].length === 0) {
38 fd.append(key, null)
39 continue
40 }
41
42 if (obj[key] !== null && typeof obj[key] === 'object' && !(obj[key] instanceof File)) {
43 objectToFormData(obj[key], fd, formKey)
44 } else {
45 fd.append(formKey, obj[key])
46 }
47 }
48
49 return fd
50 }
51
52 export {
53 objectToFormData,
54 getAbsoluteAPIUrl,
55 getAbsoluteEmbedUrl
56 }