Export functions instead of using class with only static members
Theres's no need to use a class all members are static and we never instantiate it — it's not Java :D
This commit is contained in:
parent
2385b5f5c8
commit
3c4317504e
|
@ -20,8 +20,8 @@ import * as browser from 'webextension-polyfill';
|
||||||
import { MessageKind, RedirectType } from './types';
|
import { MessageKind, RedirectType } from './types';
|
||||||
import constants from './constants';
|
import constants from './constants';
|
||||||
import Preferences from './preferences';
|
import Preferences from './preferences';
|
||||||
import InvidiousAPI from './invidious-api';
|
import * as InvidiousAPI from './invidious-api';
|
||||||
import PeertubeAPI from './peertube-api';
|
import * as PeertubeAPI from './peertube-api';
|
||||||
import { getPeertubeVideoURL } from './util';
|
import { getPeertubeVideoURL } from './util';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,27 +1,26 @@
|
||||||
import * as _ from 'lodash/fp';
|
import * as _ from 'lodash/fp';
|
||||||
import constants from './constants';
|
import constants from './constants';
|
||||||
|
|
||||||
export default class InvidiousAPI {
|
async function fetchAPI(action: string, params: any) {
|
||||||
private static async fetchAPI(action: string, params: any) {
|
const paramString = typeof params == 'string'
|
||||||
const paramString = typeof params == 'string'
|
? params
|
||||||
? params
|
: Object.keys(params).map(function(key) {
|
||||||
: Object.keys(params).map(function(key) {
|
return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
|
||||||
return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
|
}).join('&');
|
||||||
}).join('&');
|
|
||||||
|
|
||||||
return fetch(`${constants.invidiousAPI.url}/${action}/${paramString}`)
|
return fetch(`${constants.invidiousAPI.url}/${action}/${paramString}`)
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.catch(e => console.error(
|
.catch(e => console.error(
|
||||||
'An error occured while trying to fetch Invidious API used by PeerTubeify: '
|
'An error occured while trying to fetch Invidious API used by PeerTubeify: '
|
||||||
+ e.message
|
+ e.message
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getVideo(id: string) {
|
|
||||||
return this.fetchAPI(constants.invidiousAPI.videos, id);
|
export async function getVideo(id: string) {
|
||||||
}
|
return fetchAPI(constants.invidiousAPI.videos, id);
|
||||||
|
}
|
||||||
static async getChannel(ucid: string) {
|
|
||||||
return this.fetchAPI(constants.invidiousAPI.channels, ucid);
|
export async function getChannel(ucid: string) {
|
||||||
}
|
return fetchAPI(constants.invidiousAPI.channels, ucid);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,27 @@
|
||||||
import * as _ from 'lodash/fp';
|
import * as _ from 'lodash/fp';
|
||||||
import constants from './constants';
|
import constants from './constants';
|
||||||
|
|
||||||
export default class PeertubeAPI {
|
async function fetchAPI(path: string, query?: Object) {
|
||||||
private static async fetchAPI(path: string, query?: Object) {
|
const instance = _.getOr(constants.peertubeAPI.defaultInstance, 'searchInstance', await browser.storage.local.get()).toString();
|
||||||
const instance = _.getOr(constants.peertubeAPI.defaultInstance, 'searchInstance', await browser.storage.local.get()).toString();
|
|
||||||
|
|
||||||
let url = `https://${instance}/${constants.peertubeAPI.endpoint}/${path}`;
|
let url = `https://${instance}/${constants.peertubeAPI.endpoint}/${path}`;
|
||||||
|
|
||||||
if (query) {
|
if (query) {
|
||||||
url = url + '?' + Object.keys(query).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(query[key])).join('&');
|
url = url + '?' + Object.keys(query).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(query[key])).join('&');
|
||||||
}
|
|
||||||
|
|
||||||
return fetch(url)
|
|
||||||
.then(res => res.json())
|
|
||||||
.catch(e => console.error(
|
|
||||||
`An error occured while trying to fetch ${instance} API used by PeerTubeify: `
|
|
||||||
+ e.message
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getVideo(id: string) {
|
return fetch(url)
|
||||||
return this.fetchAPI('videos/' + id);
|
.then(res => res.json())
|
||||||
}
|
.catch(e => console.error(
|
||||||
|
`An error occured while trying to fetch ${instance} API used by PeerTubeify: `
|
||||||
static async searchVideo(query: Object) {
|
+ e.message
|
||||||
return this.fetchAPI('search/videos', query);
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getVideo(id: string) {
|
||||||
|
return fetchAPI('videos/' + id);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function searchVideo(query: Object) {
|
||||||
|
return fetchAPI('search/videos', query);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue