From 7bb8f446bffbab9ecf6b8ee790653960d1d72928 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Sun, 17 Jan 2021 12:56:37 -0500 Subject: [PATCH] Fix type issues --- src/config.ts | 6 +++--- src/types.ts | 42 ++++++++++++++---------------------------- 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/config.ts b/src/config.ts index c64800e8..4eb3e43d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,5 +1,5 @@ import * as CompileConfig from "../config.json"; -import { CategorySelection, CategorySkipOption, PreviewBarOption, SponsorTime, StorageChangesObject } from "./types"; +import { CategorySelection, CategorySkipOption, PreviewBarOption, SponsorTime, StorageChangesObject, UnEncodedSegmentTimes as UnencodedSegmentTimes } from "./types"; import Utils from "./utils"; const utils = new Utils(); @@ -247,7 +247,7 @@ const Config: SBObject = { * * @param data */ -function encodeStoredItem(data: T): T | Array<[string, Array]> { +function encodeStoredItem(data: T): T | UnencodedSegmentTimes { // if data is SBMap convert to json for storing if(!(data instanceof SBMap)) return data; return Array.from(data.entries()).filter((element) => element[1] === []); // Remove empty entries @@ -265,7 +265,7 @@ function decodeStoredItem(id: string, data: T): T | SBMap void, dontShowNoticeAgain: () => void, @@ -22,34 +22,34 @@ interface ContentContainer { } } -interface FetchResponse { +export interface FetchResponse { responseText: string, status: number, ok: boolean } -interface VideoDurationResponse { +export interface VideoDurationResponse { duration: number; } -enum CategorySkipOption { +export enum CategorySkipOption { ShowOverlay, ManualSkip, AutoSkip } -interface CategorySelection { +export interface CategorySelection { name: string; option: CategorySkipOption } -enum SponsorHideType { +export enum SponsorHideType { Visible = undefined, Downvoted = 1, MinimumDuration } -interface SponsorTime { +export interface SponsorTime { segment: number[]; UUID: string; @@ -58,13 +58,13 @@ interface SponsorTime { hidden?: SponsorHideType; } -interface PreviewBarOption { +export interface PreviewBarOption { color: string, opacity: string } -interface Registration { +export interface Registration { message: string, id: string, allFrames: boolean, @@ -73,12 +73,12 @@ interface Registration { matches: string[] } -interface BackgroundScriptContainer { +export interface BackgroundScriptContainer { registerFirefoxContentScript: (opts: Registration) => void, unregisterFirefoxContentScript: (id: string) => void } -interface VideoInfo { +export interface VideoInfo { responseContext: { serviceTrackingParams: Array<{service: string, params: Array<{key: string, value: string}>}>, webResponseContextExtensionData: { @@ -154,22 +154,8 @@ interface VideoInfo { messages: unknown; } -type VideoID = string; +export type VideoID = string; -type StorageChangesObject = { [key: string]: chrome.storage.StorageChange }; +export type StorageChangesObject = { [key: string]: chrome.storage.StorageChange }; -export { - FetchResponse, - VideoDurationResponse, - ContentContainer, - CategorySelection, - CategorySkipOption, - SponsorTime, - VideoID, - SponsorHideType, - PreviewBarOption, - Registration, - BackgroundScriptContainer, - VideoInfo, - StorageChangesObject, -}; +export type UnEncodedSegmentTimes = [string, SponsorTime[]][]; \ No newline at end of file