update diagnostic and add types

This commit is contained in:
Lalle 2023-05-09 23:30:02 +02:00
parent 159b3cc760
commit 7cb3ec8b6e
No known key found for this signature in database
GPG Key ID: A6583D207A8F6B0D
13 changed files with 1638 additions and 2932 deletions

File diff suppressed because it is too large Load Diff

43
src/General/index.txt Normal file
View File

@ -0,0 +1,43 @@
selectRev: 0,
selectAll: false,
selectMode: false,
showHiddenThreads: false,
changed: false,
currentPage: 0,
currentSort: '',
navLinks: null,
selectSort: null,
selectSize: null,
lastLongOptions: null,
root: null,
button: null,
inputs: null,
pagelist: null,
search: '',
pageNum: 0,
req: null,
isReply: false,
isThread: false,
isClone: false,
enabled: false,
searchInput: null,
hideLabel: null,
lastLongInputs: null,
lastLongThresholds: null,
loaded: false,
liveThreadData: null,
pagesNum: 0,
ID: 0,
thread: null,
threadPosition: 0,
threadsNumPerPage: 0,
notice: null,
nodes: null,
nTimeout: 0,
replyData: null,
replyNodes: null,
sortedThreadIDs: null,
liveThreadDict: null,
parsedThreads: null,
liveThreadIDs: null,
initFinishedFired: false,

View File

@ -4,12 +4,7 @@ import $ from "../platform/$"
import { dict } from "../platform/helpers"
import QR from "../Posting/QR"
import Menu from "./Menu"
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
const DeleteLink = {
auto: [dict(), dict()],
@ -119,8 +114,7 @@ const DeleteLink = {
withCredentials: true,
onloadend() { return DeleteLink.load(link, post, fileOnly, this.response) },
form: $.formData(form)
}
)
})
},
load(link, post, fileOnly, resDoc) {

View File

@ -1,13 +1,8 @@
import { Conf,g } from "../globals/globals"
import { Conf, g } from "../globals/globals"
import ImageCommon from "../Images/ImageCommon"
import $ from "../platform/$"
import Menu from "./Menu"
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
const DownloadLink = {
init() {
if (!['index', 'thread'].includes(g.VIEW) || !Conf['Menu'] || !Conf['Download Link']) { return }
@ -24,9 +19,9 @@ const DownloadLink = {
return Menu.menu.addEntry({
el: a,
order: 100,
open({file}) {
open({ file }) {
if (!file) { return false }
a.href = file.url
a.href = file.url
a.download = file.name
return true
}

View File

@ -33,7 +33,7 @@ const FileInfo = {
const oldInfo = $.el('span', {className: 'fileText-original'})
$.prepend(this.file.link.parentNode, oldInfo)
$.add(oldInfo, [this.file.link.previousSibling, this.file.link, this.file.link.nextSibling])
$.add(oldInfo, this.file.link)
const info = $.el('span', {className: 'file-info'})
FileInfo.format(Conf['fileInfo'], this, info)

View File

@ -15,12 +15,12 @@ const Flash = {
initReady() {
if ($.hasStorage) {
return $.global(function () { if (JSON.parse(localStorage['4chan-settings'] || '{}').disableAll) { return window.SWFEmbed.init() } })
return $.global(function () { if (JSON.parse(localStorage['4chan-settings'] || '{}').disableAll) { return window.SWFEmbed.init() } }, 'SWFEmbed')
} else {
if (g.VIEW === 'thread') {
$.global(() => window.Main.tid = location.pathname.split(/\/+/)[3])
$.global(() => window.Main.tid = location.pathname.split(/\/+/)[3], 'Main')
}
return $.global(() => window.SWFEmbed.init())
return $.global(() => window.SWFEmbed.init(), 'SWFEmbed')
}
}
}

View File

@ -6,11 +6,7 @@ import $ from "../platform/$"
import $$ from "../platform/$$"
import ExpandComment from "./ExpandComment"
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
*/
const Fourchan = {
init() {
if ((g.SITE.software !== 'yotsuba') || !['index', 'thread', 'archive'].includes(g.VIEW)) { return }
@ -65,7 +61,7 @@ const Fourchan = {
}
}
}
, false))
, false), 'MathJax')
Callbacks.Post.push({
name: 'Parse [math] tags',
cb: Fourchan.math

View File

@ -1,4 +1,5 @@
import Callbacks from "../classes/Callbacks"
import Post from "../classes/Post"
import { g } from "../globals/globals"
import $ from "../platform/$"
@ -25,12 +26,12 @@ const IDHighlight = {
if (!this.isClone) { return IDHighlight.set(this) }
},
set(post) {
set(post: Post) {
const match = (post.info.uniqueID || post.info.capcode) === IDHighlight.uniqueID
return $[match ? 'addClass' : 'rmClass'](post.nodes.post, 'highlight')
},
click(post) {
click(post: Post) {
return function () {
const uniqueID = post.info.uniqueID || post.info.capcode
IDHighlight.uniqueID = IDHighlight.uniqueID === uniqueID ? null : uniqueID

View File

@ -6,6 +6,7 @@ import { Conf, g } from "../globals/globals"
import $ from "../platform/$"
const IDPostCount = {
thread: null as Thread,
init() {
if ((g.VIEW !== 'thread') || !Conf['Count Posts by ID']) { return }
Callbacks.Thread.push({

View File

@ -58,6 +58,7 @@ export default class Post {
})()
normalizedOriginal: any
indexRefreshSeen: any
callbacksExecuted: boolean
toString() { return this.ID }

View File

@ -1,23 +0,0 @@
class ShimSet {
elements: Element
size: number
constructor() {
this.elements
this.size = 0
}
has(value) {
return value in this.elements
}
add(value) {
if (this.elements[value]) { return }
this.elements[value] = true
return this.size++
}
delete(value) {
if (!this.elements[value]) { return }
delete this.elements[value]
return this.size--
}
}
if (!('Set' in window)) { window.Set = ShimSet }

View File

@ -14,6 +14,7 @@ declare global {
}
// interfaces might be incomplete
export interface BoardConfig {
code_tags: 1 | 0,
sjis_tags: string,
math_tags: string,
forced_anon: boolean,

View File

@ -239,7 +239,7 @@ $.ajax = (function () {
pageXHR = XMLHttpRequest
}
const r = (function (url: string, options = dict(), cb: Callbacks) {
const r = (function (url: string, options = dict(), cb?: (this: XMLHttpRequest, e: ProgressEvent) => void) {
if (options.responseType == null) { options.responseType = 'json' }
if (!options.type) { options.type = (options.form && 'post') || 'get' }
url = url.replace(/^((?:https?:)?\/\/(?:\w+\.)?(?:4chan|4channel|4cdn)\.org)\/adv\//, '$1//adv/')