diff --git a/extension/background.ts b/extension/background.ts index 89d625e..1eadb24 100644 --- a/extension/background.ts +++ b/extension/background.ts @@ -1,9 +1,9 @@ -var browser = browser || chrome; +var browser : Browser = browser || chrome; -var PENDING_SUBMISSIONS = ':PENDING_SUBMISSIONS' -var MIGRATION = ':MIGRATION' +const PENDING_SUBMISSIONS = ':PENDING_SUBMISSIONS' +const MIGRATION = ':MIGRATION' -var CURRENT_VERSION = 100018; +const CURRENT_VERSION = 100018; // If a user labels one of these URLs, they're making a mistake. Ignore the label. // This list includes: @@ -232,7 +232,7 @@ var badIdentifiersArray = [ 'youtube.com/redirect', 'youtube.com/watch', ]; -var badIdentifiers = {}; +var badIdentifiers : {[id: string]: true} = {}; badIdentifiersArray.forEach(x => badIdentifiers[x] = true); var lastSubmissionError = null; @@ -287,9 +287,9 @@ browser.storage.local.get(['overrides', 'accepted', 'installationId'], v => { } }) -var bloomFilters = []; +const bloomFilters : BloomFilter[] = []; -function loadBloomFilter(name) { +function loadBloomFilter(name: string) { var url = browser.extension.getURL('data/' + name + '.dat'); fetch(url).then(response => { @@ -341,7 +341,7 @@ loadBloomFilter('t-friendly'); -function createContextMenu(text, id) { +function createContextMenu(text: string, id: ContextMenuCommand) { browser.contextMenus.create({ id: id, title: text, diff --git a/extension/content.ts b/extension/content.ts index fa9cbde..fd87914 100644 --- a/extension/content.ts +++ b/extension/content.ts @@ -1,4 +1,4 @@ -var browser = browser || chrome; +var browser : Browser = browser || chrome; var hostname = typeof (location) != 'undefined' ? location.hostname : ''; if (hostname.startsWith('www.')) { @@ -15,7 +15,7 @@ function fixupSiteStyles() { if (hostname == 'reddit.com') { myself = document.querySelector('#header-bottom-right .user a'); if (!myself) { - var m = document.querySelector('#USER_DROPDOWN_ID'); + var m : any = document.querySelector('#USER_DROPDOWN_ID'); if (m) { m = [...m.querySelectorAll('*')].filter(x => x.childNodes.length == 1 && x.firstChild.nodeType == 3).map(x => x.textContent)[0] if (m) myself = 'reddit.com/user/' + m; @@ -23,7 +23,7 @@ function fixupSiteStyles() { } } if (hostname == 'facebook.com') { - var m = document.querySelector("[id^='profile_pic_header_']") + var m : any = document.querySelector("[id^='profile_pic_header_']") if (m) myself = 'facebook.com/' + captureRegex(m.id, /header_(\d+)/); } if (hostname == 'medium.com') { diff --git a/extension/definitions.d.ts b/extension/definitions.d.ts new file mode 100644 index 0000000..4ef7c93 --- /dev/null +++ b/extension/definitions.d.ts @@ -0,0 +1,6 @@ +declare class BloomFilter { + constructor(data: Uint32Array, k: number); + test(key: string): boolean; + name: string; +} +type ContextMenuCommand = 'mark-t-friendly' | 'mark-transphobic' | 'mark-none' | 'help'; diff --git a/extension/help.ts b/extension/help.ts index f0dc3ff..7c9dad2 100644 --- a/extension/help.ts +++ b/extension/help.ts @@ -1,4 +1,4 @@ -var browser = browser || chrome; +var browser : Browser = browser || chrome; document.getElementById('cancelButton').addEventListener('click', () => { diff --git a/extension/webextensions.d.ts b/extension/webextensions.d.ts new file mode 100644 index 0000000..e972bb8 --- /dev/null +++ b/extension/webextensions.d.ts @@ -0,0 +1,18 @@ +declare type Browser = { + + runtime: { + + } + + storage: { + local: BrowserStorage + } + extension: { + + } +} +declare type BrowserStorage = { + +} +declare var browser : Browser; +declare var chrome : Browser; \ No newline at end of file