chore(types): strongly type BackgroundScriptContainer et al

This commit is contained in:
Max Baumann
2020-12-13 20:48:09 +01:00
parent d80dad7963
commit dde6b44005
3 changed files with 25 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
import * as CompileConfig from "../config.json";
import Config from "./config";
import { Registration } from "./types";
// Make the config public for debugging purposes
(<any> window).SB = Config;
@@ -90,7 +91,7 @@ chrome.runtime.onInstalled.addListener(function (object) {
*
* @param {JSON} options
*/
function registerFirefoxContentScript(options) {
function registerFirefoxContentScript(options: Registration) {
const oldRegistration = contentScriptRegistrations[options.id];
if (oldRegistration) oldRegistration.unregister();

View File

@@ -63,6 +63,21 @@ interface PreviewBarOption {
opacity: string
}
interface Registration {
message: string,
id: string,
allFrames: boolean,
js: browser.extensionTypes.ExtensionFileOrCode[],
css: browser.extensionTypes.ExtensionFileOrCode[],
matches: string[]
}
interface BackgroundScriptContainer {
registerFirefoxContentScript: (opts: Registration) => void,
unregisterFirefoxContentScript: (id: string) => void
}
type VideoID = string;
export {
@@ -74,5 +89,7 @@ export {
SponsorTime,
VideoID,
SponsorHideType,
PreviewBarOption
PreviewBarOption,
Registration,
BackgroundScriptContainer
};

View File

@@ -1,12 +1,12 @@
import Config from "./config";
import { CategorySelection, SponsorTime, FetchResponse } from "./types";
import { CategorySelection, SponsorTime, FetchResponse, BackgroundScriptContainer, Registration } from "./types";
import * as CompileConfig from "../config.json";
class Utils {
// Contains functions needed from the background script
backgroundScriptContainer: any = null;
backgroundScriptContainer: BackgroundScriptContainer | null = null;
// Used to add content scripts and CSS required
js = [
@@ -19,7 +19,7 @@ class Utils {
"popup.css"
];
constructor(backgroundScriptContainer?: any) {
constructor(backgroundScriptContainer?: BackgroundScriptContainer) {
this.backgroundScriptContainer = backgroundScriptContainer;
}
@@ -92,7 +92,7 @@ class Utils {
firefoxCSS.push({file});
}
const registration = {
const registration: Registration = {
message: "registerContentScript",
id: "invidious",
allFrames: true,