refactor: replace io-ts with zod

This commit is contained in:
Dragory 2024-01-14 14:25:42 +00:00
parent fafaefa1fb
commit 28692962bc
No known key found for this signature in database
161 changed files with 1450 additions and 2105 deletions

View file

@ -5,7 +5,7 @@ import { GuildCases } from "../../data/GuildCases";
import { GuildLogs } from "../../data/GuildLogs";
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
import { Supporters } from "../../data/Supporters";
import { makeIoTsConfigParser, sendSuccessMessage } from "../../pluginUtils";
import { sendSuccessMessage } from "../../pluginUtils";
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
import { LogsPlugin } from "../Logs/LogsPlugin";
import { ModActionsPlugin } from "../ModActions/ModActionsPlugin";
@ -42,7 +42,7 @@ import { getUserInfoEmbed } from "./functions/getUserInfoEmbed";
import { hasPermission } from "./functions/hasPermission";
import { activeReloads } from "./guildReloads";
import { refreshMembersIfNeeded } from "./refreshMembers";
import { ConfigSchema, UtilityPluginType } from "./types";
import { UtilityPluginType, zUtilityConfig } from "./types";
const defaultOptions: PluginOptions<UtilityPluginType> = {
config: {
@ -117,11 +117,11 @@ export const UtilityPlugin = zeppelinGuildPlugin<UtilityPluginType>()({
showInDocs: true,
info: {
prettyName: "Utility",
configSchema: ConfigSchema,
configSchema: zUtilityConfig,
},
dependencies: () => [TimeAndDatePlugin, ModActionsPlugin, LogsPlugin],
configParser: makeIoTsConfigParser(ConfigSchema),
configParser: (input) => zUtilityConfig.parse(input),
defaultOptions,
// prettier-ignore

View file

@ -14,10 +14,9 @@ import { ArgsFromSignatureOrArray, GuildPluginData } from "knub";
import moment from "moment-timezone";
import { RegExpRunner, allowTimeout } from "../../RegExpRunner";
import { getBaseUrl, sendErrorMessage } from "../../pluginUtils";
import { MINUTES, multiSorter, renderUserUsername, sorter, trimLines } from "../../utils";
import { InvalidRegexError, MINUTES, inputPatternToRegExp, multiSorter, renderUserUsername, sorter, trimLines } from "../../utils";
import { asyncFilter } from "../../utils/async";
import { hasDiscordPermissions } from "../../utils/hasDiscordPermissions";
import { InvalidRegexError, inputPatternToRegExp } from "../../validatorUtils";
import { banSearchSignature } from "./commands/BanSearchCmd";
import { searchCmdSignature } from "./commands/SearchCmd";
import { getUserInfoEmbed } from "./functions/getUserInfoEmbed";

View file

@ -1,5 +1,5 @@
import * as t from "io-ts";
import { BasePluginType, guildPluginEventListener, guildPluginMessageCommand } from "knub";
import z from "zod";
import { RegExpRunner } from "../../RegExpRunner";
import { GuildArchives } from "../../data/GuildArchives";
import { GuildCases } from "../../data/GuildCases";
@ -7,39 +7,38 @@ import { GuildLogs } from "../../data/GuildLogs";
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
import { Supporters } from "../../data/Supporters";
export const ConfigSchema = t.type({
can_roles: t.boolean,
can_level: t.boolean,
can_search: t.boolean,
can_clean: t.boolean,
can_info: t.boolean,
can_server: t.boolean,
can_inviteinfo: t.boolean,
can_channelinfo: t.boolean,
can_messageinfo: t.boolean,
can_userinfo: t.boolean,
can_roleinfo: t.boolean,
can_emojiinfo: t.boolean,
can_snowflake: t.boolean,
can_reload_guild: t.boolean,
can_nickname: t.boolean,
can_ping: t.boolean,
can_source: t.boolean,
can_vcmove: t.boolean,
can_vckick: t.boolean,
can_help: t.boolean,
can_about: t.boolean,
can_context: t.boolean,
can_jumbo: t.boolean,
jumbo_size: t.Integer,
can_avatar: t.boolean,
info_on_single_result: t.boolean,
autojoin_threads: t.boolean,
export const zUtilityConfig = z.strictObject({
can_roles: z.boolean(),
can_level: z.boolean(),
can_search: z.boolean(),
can_clean: z.boolean(),
can_info: z.boolean(),
can_server: z.boolean(),
can_inviteinfo: z.boolean(),
can_channelinfo: z.boolean(),
can_messageinfo: z.boolean(),
can_userinfo: z.boolean(),
can_roleinfo: z.boolean(),
can_emojiinfo: z.boolean(),
can_snowflake: z.boolean(),
can_reload_guild: z.boolean(),
can_nickname: z.boolean(),
can_ping: z.boolean(),
can_source: z.boolean(),
can_vcmove: z.boolean(),
can_vckick: z.boolean(),
can_help: z.boolean(),
can_about: z.boolean(),
can_context: z.boolean(),
can_jumbo: z.boolean(),
jumbo_size: z.number(),
can_avatar: z.boolean(),
info_on_single_result: z.boolean(),
autojoin_threads: z.boolean(),
});
export type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
export interface UtilityPluginType extends BasePluginType {
config: TConfigSchema;
config: z.infer<typeof zUtilityConfig>;
state: {
logs: GuildLogs;
cases: GuildCases;