chore: lint

This commit is contained in:
naskya 2024-03-31 01:30:50 +09:00
parent 0d92fa303b
commit 25a1fa341a
No known key found for this signature in database
GPG Key ID: 712D413B3A9FED5C
35 changed files with 128 additions and 118 deletions

View File

@ -1,11 +1,11 @@
import type { entities } from "firefish-js";
import { defineAsyncComponent } from "vue";
import { i18n } from "./i18n";
import { apiUrl } from "@/config";
import { me } from "@/me";
import { alert, api, popup, popupMenu, waiting } from "@/os";
import { del, get, set } from "@/scripts/idb-proxy";
import { reloadChannel, unisonReload } from "@/scripts/unison-reload";
import type { entities } from "firefish-js";
import { defineAsyncComponent } from "vue";
import { i18n } from "./i18n";
// TODO: 他のタブと永続化されたstateを同期

View File

@ -166,21 +166,21 @@ const texts = computed(() => {
return angles;
});
let enabled = true,
majorGraduationColor = ref<string>(),
// let minorGraduationColor = $ref<string>();
sHandColor = ref<string>(),
mHandColor = ref<string>(),
hHandColor = ref<string>(),
nowColor = ref<string>(),
h = ref<number>(0),
m = ref<number>(0),
s = ref<number>(0),
hAngle = ref<number>(0),
mAngle = ref<number>(0),
sAngle = ref<number>(0),
disableSAnimate = ref(false),
sOneRound = false;
let enabled = true;
const majorGraduationColor = ref<string>();
// let minorGraduationColor = $ref<string>();
const sHandColor = ref<string>();
const mHandColor = ref<string>();
const hHandColor = ref<string>();
const nowColor = ref<string>();
const h = ref<number>(0);
const m = ref<number>(0);
const s = ref<number>(0);
const hAngle = ref<number>(0);
const mAngle = ref<number>(0);
const sAngle = ref<number>(0);
const disableSAnimate = ref(false);
let sOneRound = false;
function tick() {
const now = new Date();

View File

@ -128,20 +128,20 @@ const getColor = (i) => {
};
const now = new Date();
let chartInstance: Chart = null,
chartData: {
series: {
name: string;
type: "line" | "area";
color?: string;
dashed?: boolean;
hidden?: boolean;
data: {
x: number;
y: number;
}[];
let chartInstance: Chart = null;
let chartData: {
series: {
name: string;
type: "line" | "area";
color?: string;
dashed?: boolean;
hidden?: boolean;
data: {
x: number;
y: number;
}[];
} = null;
}[];
} = null;
const chartEl = ref<HTMLCanvasElement>(null);
const fetching = ref(true);

View File

@ -33,8 +33,8 @@ const rootEl = ref<HTMLDivElement>();
const zIndex = ref<number>(os.claimZIndex("high"));
onMounted(() => {
let left = props.ev.pageX + 1, // + 1
top = props.ev.pageY + 1; // + 1
let left = props.ev.pageX + 1; // + 1
let top = props.ev.pageY + 1; // + 1
const width = rootEl.value.offsetWidth;
const height = rootEl.value.offsetHeight;

View File

@ -64,8 +64,8 @@ const imgUrl = `${url}/proxy/image.webp?${query({
})}`;
const dialogEl = ref<InstanceType<typeof XModalWindow>>();
const imgEl = ref<HTMLImageElement>();
let cropper: Cropper | null = null,
loading = ref(true);
let cropper: Cropper | null = null;
const loading = ref(true);
const ok = async () => {
const promise = new Promise<entities.DriveFile>(async (res) => {

View File

@ -22,14 +22,14 @@
@load="onLoad"
/>
<i
class="alt-indicator"
:class="icon('ph-subtitles')"
v-if="alt && showAltIndicator"
v-tooltip.noLabel="
`${i18n.ts.alt}: ${
alt.length > 200 ? alt.trim().slice(0, 200) + '...' : alt.trim()
}`
"
class="alt-indicator"
:class="icon('ph-subtitles')"
></i>
</template>

View File

@ -168,10 +168,10 @@ function load() {
onMounted(load);
let currentRow = 0,
rowHeight = 0,
buffer = null,
isSeeking = false;
let currentRow = 0;
let rowHeight = 0;
let buffer = null;
const isSeeking = false;
function captionPopup() {
os.alert({

View File

@ -235,7 +235,8 @@ const align = () => {
const width = content.value!.offsetWidth;
const height = content.value!.offsetHeight;
let left, top;
let left;
let top;
const x = srcRect.left + (fixed.value ? 0 : window.pageXOffset);
const y = srcRect.top + (fixed.value ? 0 : window.pageYOffset);
@ -314,8 +315,8 @@ const align = () => {
left = 0;
}
let transformOriginX = "center",
transformOriginY = "center";
let transformOriginX = "center";
let transformOriginY = "center";
if (
top >=

View File

@ -310,7 +310,8 @@ const defaultReaction = ["⭐", "👍", "❤️"].includes(instance.defaultReact
? instance.defaultReaction
: "⭐";
let readObserver: IntersectionObserver | undefined, connection;
let readObserver: IntersectionObserver | undefined;
let connection;
onMounted(() => {
if (!props.notification.isRead) {

View File

@ -331,8 +331,8 @@ import { vibrate } from "@/scripts/vibrate";
import { langmap } from "@/scripts/langmap";
import {
detectLanguage,
isSupportedLang,
isSameLanguage,
isSupportedLang,
languageContains,
parentLanguage,
} from "@/scripts/language-utils";

View File

@ -45,7 +45,7 @@ const isRefreshing = ref(false);
const pullDistance = ref(0);
let disabled = false;
let supportPointerDesktop = false;
const supportPointerDesktop = false;
let startScreenY: number | null = null;
const rootEl = shallowRef<HTMLDivElement>();

View File

@ -79,8 +79,8 @@ const el = ref<HTMLElement>();
const width = ref(0);
const height = ref(0);
const colors = ["#eb6f92", "#9ccfd8", "#f6c177", "#f6c177", "#f6c177"];
let stop = false,
ro: ResizeObserver | undefined;
let stop = false;
let ro: ResizeObserver | undefined;
onMounted(() => {
if (!reducedMotion()) {

View File

@ -174,12 +174,12 @@ provide("inWindow", true);
const rootEl = ref<HTMLElement | null>();
const showing = ref(true);
let beforeClickedAt = 0,
maximized = ref(false),
unMaximizedTop = "",
unMaximizedLeft = "",
unMaximizedWidth = "",
unMaximizedHeight = "";
let beforeClickedAt = 0;
const maximized = ref(false);
let unMaximizedTop = "";
let unMaximizedLeft = "";
let unMaximizedWidth = "";
let unMaximizedHeight = "";
function close() {
showing.value = false;
@ -280,8 +280,8 @@ function onHeaderMousedown(evt: MouseEvent) {
const windowHeight = main.offsetHeight;
function move(x: number, y: number) {
let moveLeft = x - moveBaseX,
moveTop = y - moveBaseY;
let moveLeft = x - moveBaseX;
let moveTop = y - moveBaseY;
//
if (moveTop + windowHeight > browserHeight)

View File

@ -24,10 +24,10 @@ const props = withDefaults(
},
);
let ro: ResizeObserver,
root = ref<HTMLElement>(),
content = ref<HTMLElement>(),
margin = ref(0);
let ro: ResizeObserver;
const root = ref<HTMLElement>();
const content = ref<HTMLElement>();
const margin = ref(0);
const shouldSpacerMin = inject("shouldSpacerMin", false);
const adjust = (rect: { width: number; height: number }) => {

View File

@ -1,5 +1,5 @@
import { locale } from "@/config";
import { markRaw } from "vue";
import { locale } from "@/config";
class I18n<T extends Record<string, any>> {
public ts: T;

View File

@ -22,7 +22,6 @@ if (accounts) {
}
// #endregion
import { set } from "@/scripts/idb-proxy";
import {
computed,
createApp,
@ -31,6 +30,7 @@ import {
version as vueVersion,
watch,
} from "vue";
import { set } from "@/scripts/idb-proxy";
import { refreshAccount, signIn, signOut, updateAccount } from "@/account";
import components from "@/components";

View File

@ -1,5 +1,5 @@
import type { Account } from "@/account";
import { reactive } from "vue";
import type { Account } from "@/account";
const accountData = localStorage.getItem("account");

View File

@ -1,3 +1,4 @@
import { computed, reactive } from "vue";
import { ui } from "@/config";
import { i18n } from "@/i18n";
import { isSignedIn, me } from "@/me";
@ -5,7 +6,6 @@ import * as os from "@/os";
import icon from "@/scripts/icon";
import { search } from "@/scripts/search";
import { unisonReload } from "@/scripts/unison-reload";
import { computed, reactive } from "vue";
export const navbarItemDef = reactive({
notifications: {

View File

@ -1,10 +1,10 @@
// NIRAX --- A lightweight router
import { pleaseLogin } from "@/scripts/please-login";
import { safeURIDecode } from "@/scripts/safe-uri-decode";
import { EventEmitter } from "eventemitter3";
import type { Component, ShallowRef } from "vue";
import { shallowRef } from "vue";
import { safeURIDecode } from "@/scripts/safe-uri-decode";
import { pleaseLogin } from "@/scripts/please-login";
interface RouteDef {
path: string;
@ -93,8 +93,8 @@ export class Router extends EventEmitter<{
}
public resolve(path: string): Resolved | null {
let queryString: string | null = null,
hash: string | null = null;
let queryString: string | null = null;
let hash: string | null = null;
if (path[0] === "/") path = path.substring(1);
if (path.includes("#")) {
hash = path.substring(path.indexOf("#") + 1);

View File

@ -1,18 +1,18 @@
// TODO: なんでもかんでもos.tsに突っ込むのやめたいのでよしなに分割する
import MkDialog from "@/components/MkDialog.vue";
import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import { url, apiUrl } from "@/config";
import { me } from "@/me";
import type { MenuItem } from "@/types/menu";
import { EventEmitter } from "eventemitter3";
import { type entities, api as firefishApi } from "firefish-js";
import insertTextAtCursor from "insert-text-at-cursor";
import type { Component, Ref } from "vue";
import { defineAsyncComponent, markRaw, ref } from "vue";
import { i18n } from "./i18n";
import MkDialog from "@/components/MkDialog.vue";
import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import { apiUrl, url } from "@/config";
import { me } from "@/me";
import type { MenuItem } from "@/types/menu";
export const pendingApiRequestsCount = ref(0);
@ -776,8 +776,8 @@ type AwaitType<T> = T extends Promise<infer U>
: T extends (...args: any[]) => Promise<infer V>
? V
: T;
let openingEmojiPicker: AwaitType<ReturnType<typeof popup>> | null = null,
activeTextarea: HTMLTextAreaElement | HTMLInputElement | null = null;
let openingEmojiPicker: AwaitType<ReturnType<typeof popup>> | null = null;
let activeTextarea: HTMLTextAreaElement | HTMLInputElement | null = null;
export async function openEmojiPicker(
src?: HTMLElement,
opts,

View File

@ -4,11 +4,11 @@
</template>
<script lang="ts" setup>
import { defineAsyncComponent, onMounted, ref } from "vue";
import * as os from "@/os";
import { useRouter } from "@/router";
import { userPage } from "@/filters/user";
import { notePage } from "@/filters/note";
import { onMounted, ref, defineAsyncComponent } from "vue";
const XNotFound = defineAsyncComponent(() => import("./not-found.vue"));
const err = ref(false);

View File

@ -72,8 +72,8 @@ const headerTabs = computed(() => []);
const list = ref<typeof MkPagination | null>(null);
let isCached = false,
refreshTimer: number | null = null;
let isCached = false;
let refreshTimer: number | null = null;
const refresh = () => {
if (isCached) {

View File

@ -222,7 +222,10 @@ async function save() {
return lines;
};
let softMutes, softMLangs, hardMWords, hardMPatterns;
let softMutes;
let softMLangs;
let hardMWords;
let hardMPatterns;
try {
softMutes = parseSoftMutes(softMutedWords.value, i18n.ts._wordMute.soft);
softMLangs = parseMutedWords(softMutedLangs.value);

View File

@ -1,10 +1,10 @@
// PIZZAX --- A lightweight store
import { isSignedIn, me } from "@/me";
import type { Ref } from "vue";
import { onUnmounted, ref, watch } from "vue";
import { api } from "./os";
import { useStream } from "./stream";
import { isSignedIn, me } from "@/me";
type StateDef = Record<
string,

View File

@ -1,3 +1,4 @@
import { Interpreter, Parser, utils, values } from "@syuilo/aiscript";
import { inputText } from "@/os";
import { createAiScriptEnv } from "@/scripts/aiscript/api";
import {
@ -7,7 +8,6 @@ import {
postFormActions,
userActions,
} from "@/store";
import { Interpreter, Parser, utils, values } from "@syuilo/aiscript";
const parser = new Parser();
const pluginContexts = new Map<string, Interpreter>();

View File

@ -1,9 +1,9 @@
import type { AsyncComponentLoader } from "vue";
import { defineAsyncComponent, inject } from "vue";
import { isEmojiMod, isModerator, me } from "@/me";
import { Router } from "@/nirax";
import MkError from "@/pages/_error_.vue";
import MkLoading from "@/pages/_loading_.vue";
import type { AsyncComponentLoader } from "vue";
import { defineAsyncComponent, inject } from "vue";
const page = (loader: AsyncComponentLoader<any>) =>
defineAsyncComponent({

View File

@ -309,9 +309,9 @@ ChiptuneJsPlayer.prototype.createLibopenmptNode = async function (
}
return;
}
let framesRendered = 0,
ended = false,
error = false;
let framesRendered = 0;
let ended = false;
let error = false;
const currentPattern =
processNode.player.libopenmpt._openmpt_module_get_current_pattern(

View File

@ -2,7 +2,8 @@ import { acct } from "firefish-js";
import { host as localHost } from "@/config";
export async function genSearchQuery(v: any, q: string) {
let host: string, userId: string;
let host: string;
let userId: string;
if (q.split(" ").some((x) => x.startsWith("@"))) {
for (const at of q
.split(" ")

View File

@ -61,8 +61,8 @@ function parseSingleKaTeXMacro(src: string): [string, KaTeXMacro] {
currentPos = skipSpaces(currentPos);
while (currentPos < src.length - 1) {
let numbersignPos = -1,
isEscaped = false;
let numbersignPos = -1;
let isEscaped = false;
for (let i = currentPos; i < src.length - 1; ++i) {
if (src[i] !== "\\" && src[i] !== "#") {
@ -210,15 +210,15 @@ function expandKaTeXMacroOnce(
--maxNumberOfExpansions;
// search for a custom macro
let checkedPos = beginPos - 1,
macroName = "",
macroBackslashPos = 0,
// for macros w/o args: unused
// w/ args: the first open bracket ("(", "{", or "[") after cmd name
macroArgBeginPos = 0,
// for macros w/o args: the end of cmd name
// w/ args: the closing bracket of the last arg
macroArgEndPos = 0;
let checkedPos = beginPos - 1;
let macroName = "";
let macroBackslashPos = 0;
// for macros w/o args: unused
// w/ args: the first open bracket ("(", "{", or "[") after cmd name
let macroArgBeginPos = 0;
// for macros w/o args: the end of cmd name
// w/ args: the closing bracket of the last arg
let macroArgEndPos = 0;
while (checkedPos < endPos) {
checkedPos = src.indexOf("\\", checkedPos + 1);

View File

@ -1,6 +1,6 @@
import { supportedLangs } from "@/scripts/langmap";
import { detect } from "tinyld";
import * as mfm from "mfm-js";
import { supportedLangs } from "@/scripts/langmap";
export function detectLanguage(text: string): string {
const nodes = mfm.parse(text);

View File

@ -20,7 +20,8 @@ export function calcPopupPosition(
}
const calcPosWhenTop = () => {
let left: number, top: number;
let left: number;
let top: number;
if (props.anchorElement) {
left =
@ -41,7 +42,8 @@ export function calcPopupPosition(
};
const calcPosWhenBottom = () => {
let left: number, top: number;
let left: number;
let top: number;
if (props.anchorElement) {
left =
@ -66,7 +68,8 @@ export function calcPopupPosition(
};
const calcPosWhenLeft = () => {
let left: number, top: number;
let left: number;
let top: number;
if (props.anchorElement) {
left = rect.left + window.pageXOffset - contentWidth - props.innerMargin;
@ -87,7 +90,8 @@ export function calcPopupPosition(
};
const calcPosWhenRight = () => {
let left: number, top: number;
let left: number;
let top: number;
if (props.anchorElement) {
left =

View File

@ -2,8 +2,8 @@
* ()
*/
export function shuffle<T extends any[]>(array: T): T {
let currentIndex = array.length,
randomIndex;
let currentIndex = array.length;
let randomIndex;
// While there remain elements to shuffle.
while (currentIndex !== 0) {

View File

@ -6,13 +6,13 @@ export function useTooltip(
onShow: (showing: Ref<boolean>) => void,
delay = 300,
): void {
let isHovering = false,
// iOS(Androidも)では、要素をタップした直後に(おせっかいで)mouseoverイベントを発火させたりするため、それを無視するためのフラグ
// 無視しないと、画面に触れてないのにツールチップが出たりし、ユーザビリティが損なわれる
// TODO: 一度でもタップすると二度とマウスでツールチップ出せなくなるのをどうにかする 定期的にfalseに戻すとか...
shouldIgnoreMouseover = false,
timeoutId: number,
changeShowingState: (() => void) | null;
let isHovering = false;
// iOS(Androidも)では、要素をタップした直後に(おせっかいで)mouseoverイベントを発火させたりするため、それを無視するためのフラグ
// 無視しないと、画面に触れてないのにツールチップが出たりし、ユーザビリティが損なわれる
// TODO: 一度でもタップすると二度とマウスでツールチップ出せなくなるのをどうにかする 定期的にfalseに戻すとか...
let shouldIgnoreMouseover = false;
let timeoutId: number;
let changeShowingState: (() => void) | null;
const open = () => {
close();

View File

@ -1,7 +1,7 @@
import { url } from "@/config";
import { me } from "@/me";
import { Stream } from "firefish-js";
import { markRaw } from "vue";
import { url } from "@/config";
import { me } from "@/me";
let stream: Stream | null = null;
let timeoutHeartBeat: number | null = null;

View File

@ -1,6 +1,6 @@
import type { Theme } from "./scripts/theme";
import { isSignedIn, me } from "@/me";
import { api } from "@/os";
import type { Theme } from "./scripts/theme";
const lsCacheKey = isSignedIn ? `themes:${me.id}` : "";