3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-13 13:25:03 +00:00

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

@ -1,10 +1,9 @@
import { PluginOptions } from "knub";
import { GuildPingableRoles } from "../../data/GuildPingableRoles";
import { makeIoTsConfigParser } from "../../pluginUtils";
import { zeppelinGuildPlugin } from "../ZeppelinPluginBlueprint";
import { PingableRoleDisableCmd } from "./commands/PingableRoleDisableCmd";
import { PingableRoleEnableCmd } from "./commands/PingableRoleEnableCmd";
import { ConfigSchema, PingableRolesPluginType } from "./types";
import { PingableRolesPluginType, zPingableRolesConfig } from "./types";
const defaultOptions: PluginOptions<PingableRolesPluginType> = {
config: {
@ -25,10 +24,10 @@ export const PingableRolesPlugin = zeppelinGuildPlugin<PingableRolesPluginType>(
showInDocs: true,
info: {
prettyName: "Pingable roles",
configSchema: ConfigSchema,
configSchema: zPingableRolesConfig,
},
configParser: makeIoTsConfigParser(ConfigSchema),
configParser: (input) => zPingableRolesConfig.parse(input),
defaultOptions,
// prettier-ignore

View file

@ -1,15 +1,14 @@
import * as t from "io-ts";
import { BasePluginType, guildPluginEventListener, guildPluginMessageCommand } from "knub";
import z from "zod";
import { GuildPingableRoles } from "../../data/GuildPingableRoles";
import { PingableRole } from "../../data/entities/PingableRole";
export const ConfigSchema = t.type({
can_manage: t.boolean,
export const zPingableRolesConfig = z.strictObject({
can_manage: z.boolean(),
});
export type TConfigSchema = t.TypeOf<typeof ConfigSchema>;
export interface PingableRolesPluginType extends BasePluginType {
config: TConfigSchema;
config: z.infer<typeof zPingableRolesConfig>;
state: {
pingableRoles: GuildPingableRoles;