VueTube/NUXT/plugins/renderers.js

34 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

// General utility functions for the renderers
class rendererUtils {
static getNavigationEndpoints(base) {
2022-05-02 04:42:56 +00:00
if (!base) return;
if (base.urlEndpoint) {
const params = new Proxy(new URLSearchParams(base.urlEndpoint.url), {
get: (searchParams, prop) => searchParams.get(prop),
});
if (params.q) return decodeURI(params.q);
2022-05-02 04:42:56 +00:00
else return new URL(base.urlEndpoint.url).pathname;
} else if (base.browseEndpoint) {
return base.browseEndpoint.canonicalBaseUrl;
} else if (base.watchEndpoint) {
return `/watch?v=${base.watchEndpoint.videoId}`;
} else if (base.navigationEndpoint) {
return base.navigationEndpoint.browseEndpoint.canonicalBaseUrl; //for now
2022-05-02 04:42:56 +00:00
} else if (base.searchEndpoint) {
return `/search?q=${encodeURI(base.searchEndpoint.query)}`;
}
2022-03-21 23:47:11 +00:00
}
static checkInternal(base) {
const tmp = document.createElement("a");
tmp.href = this.getNavigationEndpoints(base);
if (tmp.host !== window.location.host || !base.navigationEndpoint) {
return false;
} else {
return true;
}
}
}
export default rendererUtils;