Spaces:
Sleeping
Sleeping
File size: 2,292 Bytes
fdcb5fa |
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import { DEFAULT_API_DOMAIN, DEFAULT_DOMAIN, TEST_DOMAIN_MAPPINGS } from './constants';
function getSafeUnicode(c) {
const unicode = `000${c.charCodeAt(0).toString(16)}`.slice(-4);
return `\\u${unicode}`;
}
export const baseApiUrl = (subdomain, domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => {
if (!domainDelimiter) {
return `https://${domain}/2/`;
}
if (domain !== DEFAULT_API_DOMAIN && TEST_DOMAIN_MAPPINGS[subdomain] !== undefined) {
subdomain = TEST_DOMAIN_MAPPINGS[subdomain];
domainDelimiter = '-';
}
return `https://${subdomain}${domainDelimiter}${domain}/2/`;
};
export const OAuth2AuthorizationUrl = (domain = DEFAULT_DOMAIN) => {
if (domain !== DEFAULT_DOMAIN) {
domain = `meta-${domain}`;
}
return `https://${domain}/oauth2/authorize`;
};
export const OAuth2TokenUrl = (domain = DEFAULT_API_DOMAIN, domainDelimiter = '.') => {
let subdomain = 'api';
if (domain !== DEFAULT_API_DOMAIN) {
subdomain = TEST_DOMAIN_MAPPINGS[subdomain];
domainDelimiter = '-';
}
return `https://${subdomain}${domainDelimiter}${domain}/oauth2/token`;
};
// source https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/m-p/173823/highlight/true#M6786
export function httpHeaderSafeJson(args) {
return JSON.stringify(args).replace(/[\u007f-\uffff]/g, getSafeUnicode);
}
export function getTokenExpiresAtDate(expiresIn) {
return new Date(Date.now() + (expiresIn * 1000));
}
/* global WorkerGlobalScope */
export function isWindowOrWorker() {
return (
(
typeof WorkerGlobalScope !== 'undefined'
&& self instanceof WorkerGlobalScope // eslint-disable-line no-restricted-globals
)
|| (
typeof module === 'undefined'
|| typeof window !== 'undefined'
)
);
}
export function isBrowserEnv() {
return typeof window !== 'undefined';
}
export function isWorkerEnv() {
return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; // eslint-disable-line no-restricted-globals
}
export function createBrowserSafeString(toBeConverted) {
const convertedString = toBeConverted.toString('base64')
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '');
return convertedString;
}
|