chore: lint

This commit is contained in:
naskya 2023-11-06 21:11:39 +09:00
parent 082cd3ac1d
commit 15e646c8b1
Signed by: naskya
GPG key ID: 164DFF24E2D40139
23 changed files with 85 additions and 88 deletions

View file

@ -1,7 +1,7 @@
import config from "@/config/index.js"; import config from "@/config/index.js";
import { import {
DB_MAX_NOTE_TEXT_LENGTH,
DB_MAX_IMAGE_COMMENT_LENGTH, DB_MAX_IMAGE_COMMENT_LENGTH,
DB_MAX_NOTE_TEXT_LENGTH,
} from "@/misc/hard-limits.js"; } from "@/misc/hard-limits.js";
export const MAX_NOTE_TEXT_LENGTH = Math.min( export const MAX_NOTE_TEXT_LENGTH = Math.min(

View file

@ -1,2 +1,2 @@
// rome-ignore lint/suspicious/noExplicitAny: i have no idea // biome-ignore lint/suspicious/noExplicitAny: i have no idea
type FIXME = any; type FIXME = any;

View file

@ -25,7 +25,8 @@ const assets = `${_dirname}/../../server/file/assets/`;
const MAX_BYTE_RANGES = 10; const MAX_BYTE_RANGES = 10;
const commonReadableHandlerGenerator = const commonReadableHandlerGenerator =
(ctx: Koa.Context) => (e: Error): void => { (ctx: Koa.Context) =>
(e: Error): void => {
serverLogger.error(e); serverLogger.error(e);
ctx.status = 500; ctx.status = 500;
ctx.set("Cache-Control", "max-age=300"); ctx.set("Cache-Control", "max-age=300");

View file

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

View file

@ -7,11 +7,11 @@ import "vite/modulepreload-polyfill";
import "@/style.scss"; import "@/style.scss";
import "@phosphor-icons/web/fill";
import "@phosphor-icons/web/bold"; import "@phosphor-icons/web/bold";
import "@phosphor-icons/web/regular";
import "@phosphor-icons/web/light";
import "@phosphor-icons/web/duotone"; import "@phosphor-icons/web/duotone";
import "@phosphor-icons/web/fill";
import "@phosphor-icons/web/light";
import "@phosphor-icons/web/regular";
// #region account indexedDB migration // #region account indexedDB migration
@ -32,28 +32,28 @@ import {
} from "vue"; } from "vue";
import { set } from "@/scripts/idb-proxy"; import { set } from "@/scripts/idb-proxy";
import widgets from "@/widgets"; import { login, refreshAccount, signout, updateAccount } from "@/account";
import directives from "@/directives";
import components from "@/components"; import components from "@/components";
import { host, lang, ui, version } from "@/config"; import { host, lang, ui, version } from "@/config";
import { applyTheme } from "@/scripts/theme"; import directives from "@/directives";
import { isDeviceDarkmode } from "@/scripts/is-device-darkmode";
import { i18n } from "@/i18n"; import { i18n } from "@/i18n";
import { alert, api, confirm, popup, post, toast } from "@/os";
import { stream } from "@/stream";
import * as sound from "@/scripts/sound";
import { login, refreshAccount, signout, updateAccount } from "@/account";
import { $i } from "@/reactiveAccount";
import { ColdDeviceStorage, defaultStore } from "@/store";
import { fetchInstance, instance } from "@/instance"; import { fetchInstance, instance } from "@/instance";
import { makeHotkey } from "@/scripts/hotkey"; import { alert, api, confirm, popup, post, toast } from "@/os";
import { search } from "@/scripts/search"; import { $i } from "@/reactiveAccount";
import { deviceKind } from "@/scripts/device-kind"; import { deviceKind } from "@/scripts/device-kind";
import { initializeSw } from "@/scripts/initialize-sw";
import { reloadChannel } from "@/scripts/unison-reload";
import { reactionPicker } from "@/scripts/reaction-picker";
import { getUrlWithoutLoginId } from "@/scripts/login-id";
import { getAccountFromId } from "@/scripts/get-account-from-id"; import { getAccountFromId } from "@/scripts/get-account-from-id";
import { makeHotkey } from "@/scripts/hotkey";
import { initializeSw } from "@/scripts/initialize-sw";
import { isDeviceDarkmode } from "@/scripts/is-device-darkmode";
import { getUrlWithoutLoginId } from "@/scripts/login-id";
import { reactionPicker } from "@/scripts/reaction-picker";
import { search } from "@/scripts/search";
import * as sound from "@/scripts/sound";
import { applyTheme } from "@/scripts/theme";
import { reloadChannel } from "@/scripts/unison-reload";
import { ColdDeviceStorage, defaultStore } from "@/store";
import { stream } from "@/stream";
import widgets from "@/widgets";
function checkForSplash() { function checkForSplash() {
const splash = document.getElementById("splash"); const splash = document.getElementById("splash");

View file

@ -1,5 +1,5 @@
import { computed, reactive } from "vue";
import type * as firefish from "firefish-js"; import type * as firefish from "firefish-js";
import { computed, reactive } from "vue";
import { api } from "./os"; import { api } from "./os";
// TODO: 他のタブと永続化されたstateを同期 // TODO: 他のタブと永続化されたstateを同期

View file

@ -1,11 +1,11 @@
import { computed, reactive } from "vue"; import { computed, reactive } from "vue";
import { $i } from "@/reactiveAccount";
import { search } from "@/scripts/search";
import * as os from "@/os";
import { i18n } from "@/i18n";
import { ui } from "@/config"; import { ui } from "@/config";
import { unisonReload } from "@/scripts/unison-reload"; import { i18n } from "@/i18n";
import * as os from "@/os";
import { $i } from "@/reactiveAccount";
import icon from "@/scripts/icon"; import icon from "@/scripts/icon";
import { search } from "@/scripts/search";
import { unisonReload } from "@/scripts/unison-reload";
export const navbarItemDef = reactive({ export const navbarItemDef = reactive({
notifications: { notifications: {

View file

@ -3,8 +3,8 @@
import { EventEmitter } from "eventemitter3"; import { EventEmitter } from "eventemitter3";
import type { Component, ShallowRef } from "vue"; import type { Component, ShallowRef } from "vue";
import { Ref, ref, shallowRef } from "vue"; import { Ref, ref, shallowRef } from "vue";
import { pleaseLogin } from "@/scripts/please-login";
import { safeURIDecode } from "@/scripts/safe-uri-decode"; import { safeURIDecode } from "@/scripts/safe-uri-decode";
import { pleaseLogin } from "@/scripts/please-login";
interface RouteDef { interface RouteDef {
path: string; path: string;
@ -112,7 +112,7 @@ export class Router extends EventEmitter<{
let parts = [..._parts]; let parts = [..._parts];
const props = new Map<string, string>(); const props = new Map<string, string>();
pathMatchLoop: for (const p of parsePath(route.path)) { for (const p of parsePath(route.path)) {
if (typeof p === "string") { if (typeof p === "string") {
if (p === parts[0]) { if (p === parts[0]) {
parts.shift(); parts.shift();
@ -128,7 +128,7 @@ export class Router extends EventEmitter<{
props.set(p.name, safeURIDecode(parts.join("/"))); props.set(p.name, safeURIDecode(parts.join("/")));
parts = []; parts = [];
} }
break pathMatchLoop; break;
} else { } else {
if (p.startsWith) { if (p.startsWith) {
if (parts[0] == null || !parts[0].startsWith(p.startsWith)) if (parts[0] == null || !parts[0].startsWith(p.startsWith))
@ -159,7 +159,7 @@ export class Router extends EventEmitter<{
child, child,
}; };
} else { } else {
continue forEachRouteLoop; continue;
} }
} }

View file

@ -1,18 +1,18 @@
// TODO: なんでもかんでもos.tsに突っ込むのやめたいのでよしなに分割する // TODO: なんでもかんでもos.tsに突っ込むのやめたいのでよしなに分割する
import { EventEmitter } from "eventemitter3";
import * as firefish from "firefish-js";
import insertTextAtCursor from "insert-text-at-cursor";
import type { Component, Ref } from "vue"; import type { Component, Ref } from "vue";
import { defineAsyncComponent, markRaw, ref } from "vue"; import { defineAsyncComponent, markRaw, ref } from "vue";
import { EventEmitter } from "eventemitter3";
import insertTextAtCursor from "insert-text-at-cursor";
import * as firefish from "firefish-js";
import { i18n } from "./i18n"; import { i18n } from "./i18n";
import { apiUrl, url } from "@/config";
import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkDialog from "@/components/MkDialog.vue"; import MkDialog from "@/components/MkDialog.vue";
import type { MenuItem } from "@/types/menu"; import MkPostFormDialog from "@/components/MkPostFormDialog.vue";
import MkToast from "@/components/MkToast.vue";
import MkWaitingDialog from "@/components/MkWaitingDialog.vue";
import { apiUrl, url } from "@/config";
import { $i } from "@/reactiveAccount"; import { $i } from "@/reactiveAccount";
import type { MenuItem } from "@/types/menu";
export const pendingApiRequestsCount = ref(0); export const pendingApiRequestsCount = ref(0);

View file

@ -5,7 +5,7 @@
/></template> /></template>
<MkSpacer :content-max="800"> <MkSpacer :content-max="800">
<div class="attachments-timeline"> <div class="attachments-timeline">
<XTimeline ref="tl" class="tl" src="file" :fileId="fileId" /> <XTimeline ref="tl" class="tl" src="file" :file-id="fileId" />
</div> </div>
</MkSpacer> </MkSpacer>
</MkStickyContainer> </MkStickyContainer>

View file

@ -21,6 +21,7 @@
import { defineAsyncComponent, nextTick, ref } from "vue"; import { defineAsyncComponent, nextTick, ref } from "vue";
import { Interpreter, Parser, utils } from "@syuilo/aiscript"; import { Interpreter, Parser, utils } from "@syuilo/aiscript";
import { v4 as uuid } from "uuid"; import { v4 as uuid } from "uuid";
import { compareVersions } from "compare-versions";
import FormTextarea from "@/components/form/textarea.vue"; import FormTextarea from "@/components/form/textarea.vue";
import FormButton from "@/components/MkButton.vue"; import FormButton from "@/components/MkButton.vue";
import FormInfo from "@/components/MkInfo.vue"; import FormInfo from "@/components/MkInfo.vue";
@ -29,7 +30,6 @@ import { ColdDeviceStorage } from "@/store";
import { unisonReload } from "@/scripts/unison-reload"; import { unisonReload } from "@/scripts/unison-reload";
import { i18n } from "@/i18n"; import { i18n } from "@/i18n";
import { definePageMetadata } from "@/scripts/page-metadata"; import { definePageMetadata } from "@/scripts/page-metadata";
import { compareVersions } from "compare-versions";
import icon from "@/scripts/icon"; import icon from "@/scripts/icon";
const code = ref<string>(); const code = ref<string>();

View file

@ -1,6 +1,6 @@
import { Interpreter, Parser, utils, values } from "@syuilo/aiscript"; import { Interpreter, Parser, utils, values } from "@syuilo/aiscript";
import { createAiScriptEnv } from "@/scripts/aiscript/api";
import { inputText } from "@/os"; import { inputText } from "@/os";
import { createAiScriptEnv } from "@/scripts/aiscript/api";
import { import {
noteActions, noteActions,
notePostInterruptors, notePostInterruptors,
@ -114,7 +114,10 @@ function createPluginEnv(opts) {
}); });
}), }),
"Plugin:register_page_view_interruptor": values.FN_NATIVE(([handler]) => { "Plugin:register_page_view_interruptor": values.FN_NATIVE(([handler]) => {
registerPageViewInterruptor({ pluginId: opts.plugin.id, handler }); registerPageViewInterruptor({
pluginId: opts.plugin.id,
handler,
});
}), }),
"Plugin:open_url": values.FN_NATIVE(([url]) => { "Plugin:open_url": values.FN_NATIVE(([url]) => {
window.open(url.value, "_blank"); window.open(url.value, "_blank");

View file

@ -1,12 +1,12 @@
import type { AsyncComponentLoader } from "vue"; import type { AsyncComponentLoader } from "vue";
import { defineAsyncComponent, inject } from "vue"; import { defineAsyncComponent, inject } from "vue";
import { Router } from "@/nirax";
import { iAmEmojiMod, iAmModerator } from "@/account"; import { iAmEmojiMod, iAmModerator } from "@/account";
import { $i } from "@/reactiveAccount";
import MkLoading from "@/pages/_loading_.vue";
import MkError from "@/pages/_error_.vue";
import { api } from "@/os";
import { ui } from "@/config"; import { ui } from "@/config";
import { Router } from "@/nirax";
import { api } from "@/os";
import MkError from "@/pages/_error_.vue";
import MkLoading from "@/pages/_loading_.vue";
import { $i } from "@/reactiveAccount";
function getGuestTimelineStatus() { function getGuestTimelineStatus() {
api("meta", { api("meta", {

View file

@ -88,7 +88,11 @@ export class Autocomplete {
const isHashtag = hashtagIndex !== -1; const isHashtag = hashtagIndex !== -1;
const isMfmTag = mfmTagIndex !== -1; const isMfmTag = mfmTagIndex !== -1;
const isEmoji = const isEmoji =
emojiIndex !== -1 && text.split(/:[a-z0-9_+\-]+:/).pop()!.includes(":"); emojiIndex !== -1 &&
text
.split(/:[a-z0-9_+\-]+:/)
.pop()!
.includes(":");
let opened = false; let opened = false;

View file

@ -430,11 +430,11 @@ interface Plugin {
ast: any[]; ast: any[];
} }
import darkTheme from "@/themes/d-rosepine.json5";
/** /**
* Storage for configuration information that does not need to be constantly loaded into memory (non-reactive) * Storage for configuration information that does not need to be constantly loaded into memory (non-reactive)
*/ */
import lightTheme from "@/themes/l-rosepinedawn.json5"; import lightTheme from "@/themes/l-rosepinedawn.json5";
import darkTheme from "@/themes/d-rosepine.json5";
export class ColdDeviceStorage { export class ColdDeviceStorage {
public static default = { public static default = {

View file

@ -1,7 +1,7 @@
import * as firefish from "firefish-js"; import * as firefish from "firefish-js";
import { markRaw } from "vue"; import { markRaw } from "vue";
import { $i } from "@/reactiveAccount";
import { url } from "@/config"; import { url } from "@/config";
import { $i } from "@/reactiveAccount";
export const stream = markRaw( export const stream = markRaw(
new firefish.Stream( new firefish.Stream(

View file

@ -28,12 +28,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref } from "vue"; import { ref } from "vue";
import { Interpreter, Parser, utils } from "@syuilo/aiscript"; import { Interpreter, Parser, utils } from "@syuilo/aiscript";
import { import { useWidgetPropsManager } from "./widget";
useWidgetPropsManager, import type {
WidgetComponentEmits, WidgetComponentEmits,
WidgetComponentExpose,
WidgetComponentProps, WidgetComponentProps,
} from "./widget"; } from "./widget";
import type { WidgetComponentExpose } from "./widget";
import type { GetFormResultType } from "@/scripts/form"; import type { GetFormResultType } from "@/scripts/form";
import * as os from "@/os"; import * as os from "@/os";
import MkContainer from "@/components/MkContainer.vue"; import MkContainer from "@/components/MkContainer.vue";

View file

@ -9,13 +9,13 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, onUnmounted, ref, watch } from "vue"; import { onMounted, onUnmounted, ref, watch } from "vue";
import { Interpreter, Parser } from "@syuilo/aiscript"; import { Interpreter, Parser } from "@syuilo/aiscript";
import { createAiScriptEnv } from "@/scripts/aiscript/api"; import { useWidgetPropsManager } from "./widget";
import { import type {
useWidgetPropsManager,
WidgetComponentEmits, WidgetComponentEmits,
WidgetComponentExpose,
WidgetComponentProps, WidgetComponentProps,
} from "./widget"; } from "./widget";
import type { WidgetComponentExpose } from "./widget"; import { createAiScriptEnv } from "@/scripts/aiscript/api";
import type { GetFormResultType } from "@/scripts/form"; import type { GetFormResultType } from "@/scripts/form";
import * as os from "@/os"; import * as os from "@/os";
import { $i } from "@/reactiveAccount"; import { $i } from "@/reactiveAccount";

View file

@ -32,15 +32,9 @@
"types": [ "types": [
"vite/client", "vite/client",
], ],
"lib": [ "lib": ["esnext", "dom"],
"esnext",
"dom"
],
"jsx": "preserve" "jsx": "preserve"
}, },
"compileOnSave": false, "compileOnSave": false,
"include": [ "include": ["./**/*.ts", "./**/*.vue"]
"./**/*.ts",
"./**/*.vue"
]
} }

View file

@ -11,30 +11,30 @@ import {
DetailedInstanceMetadata, DetailedInstanceMetadata,
DriveFile, DriveFile,
DriveFolder, DriveFolder,
FollowRequest,
Following, Following,
FollowingFolloweePopulated, FollowingFolloweePopulated,
FollowingFollowerPopulated, FollowingFollowerPopulated,
FollowRequest,
GalleryPost, GalleryPost,
Instance, Instance,
InstanceMetadata, InstanceMetadata,
LiteInstanceMetadata, LiteInstanceMetadata,
MeDetailed, MeDetailed,
MessagingMessage,
Note, Note,
NoteFavorite, NoteFavorite,
NoteReaction,
Notification,
OriginType, OriginType,
Page, Page,
ServerInfo, ServerInfo,
Signin,
Stats, Stats,
User, User,
UserDetailed, UserDetailed,
UserGroup, UserGroup,
UserList, UserList,
UserSorting, UserSorting,
Notification,
NoteReaction,
Signin,
MessagingMessage,
} from "./entities"; } from "./entities";
type TODO = Record<string, any> | null; type TODO = Record<string, any> | null;

View file

@ -1,8 +1,8 @@
import { Acct } from "./acct";
import { Endpoints } from "./api.types"; import { Endpoints } from "./api.types";
import * as consts from "./consts";
import Stream, { Connection } from "./streaming"; import Stream, { Connection } from "./streaming";
import { Channels } from "./streaming.types"; import { Channels } from "./streaming.types";
import { Acct } from "./acct";
import * as consts from "./consts";
export { Endpoints, Stream, Connection as ChannelConnection, Channels, Acct }; export { Endpoints, Stream, Connection as ChannelConnection, Channels, Acct };

View file

@ -27,9 +27,9 @@ export function urlQuery(
const params = Object.entries(obj) const params = Object.entries(obj)
.filter(([, v]) => (Array.isArray(v) ? v.length : v !== undefined)) .filter(([, v]) => (Array.isArray(v) ? v.length : v !== undefined))
.reduce( .reduce(
// rome-ignore lint/suspicious/noAssignInExpressions: <Used for key assigning> // biome-ignore lint/suspicious/noAssignInExpressions: <Used for key assigning>
// rome-ignore lint/style/noNonNullAssertion: <> // biome-ignore lint/style/noNonNullAssertion: <>
// rome-ignore lint/style/noCommaOperator: <> // biome-ignore lint/style/noCommaOperator: <>
(a, [k, v]) => ((a[k] = v!), a), (a, [k, v]) => ((a[k] = v!), a),
{} as Record<string, string | number | boolean>, {} as Record<string, string | number | boolean>,
); );

View file

@ -27,13 +27,8 @@
"node_modules/@types", "node_modules/@types",
"@types", "@types",
], ],
"lib": [ "lib": ["esnext", "webworker"]
"esnext",
"webworker"
]
}, },
"compileOnSave": false, "compileOnSave": false,
"include": [ "include": ["./**/*.ts", "./**/*.d.ts", "./**/*.tsx", "./**/*.vue"]
"./**/*.ts", "./**/*.d.ts", "./**/*.tsx", "./**/*.vue"
]
} }