refactor: clean code
This commit is contained in:
@@ -1,53 +1,58 @@
|
||||
import { z } from "zod";
|
||||
|
||||
export const accessTypeMap: Map<string, [string, string]> = new Map([
|
||||
["aliyun", ["common.provider.aliyun", "/imgs/providers/aliyun.svg"]],
|
||||
["tencent", ["common.provider.tencent", "/imgs/providers/tencent.svg"]],
|
||||
["huaweicloud", ["common.provider.huaweicloud", "/imgs/providers/huaweicloud.svg"]],
|
||||
["qiniu", ["common.provider.qiniu", "/imgs/providers/qiniu.svg"]],
|
||||
["aws", ["common.provider.aws", "/imgs/providers/aws.svg"]],
|
||||
["cloudflare", ["common.provider.cloudflare", "/imgs/providers/cloudflare.svg"]],
|
||||
["namesilo", ["common.provider.namesilo", "/imgs/providers/namesilo.svg"]],
|
||||
["godaddy", ["common.provider.godaddy", "/imgs/providers/godaddy.svg"]],
|
||||
["pdns", ["common.provider.pdns", "/imgs/providers/pdns.svg"]],
|
||||
["httpreq", ["common.provider.httpreq", "/imgs/providers/httpreq.svg"]],
|
||||
["local", ["common.provider.local", "/imgs/providers/local.svg"]],
|
||||
["ssh", ["common.provider.ssh", "/imgs/providers/ssh.svg"]],
|
||||
["webhook", ["common.provider.webhook", "/imgs/providers/webhook.svg"]],
|
||||
["k8s", ["common.provider.kubernetes", "/imgs/providers/k8s.svg"]],
|
||||
]);
|
||||
type AccessUsages = "apply" | "deploy" | "all";
|
||||
|
||||
export const getProviderInfo = (t: string) => {
|
||||
return accessTypeMap.get(t);
|
||||
type AccessProvider = {
|
||||
type: string;
|
||||
name: string;
|
||||
icon: string;
|
||||
usage: AccessUsages;
|
||||
};
|
||||
|
||||
export const accessFormType = z.union(
|
||||
export const accessProvidersMap: Map<AccessProvider["type"], AccessProvider> = new Map(
|
||||
[
|
||||
z.literal("aliyun"),
|
||||
z.literal("tencent"),
|
||||
z.literal("huaweicloud"),
|
||||
z.literal("qiniu"),
|
||||
z.literal("aws"),
|
||||
z.literal("cloudflare"),
|
||||
z.literal("namesilo"),
|
||||
z.literal("godaddy"),
|
||||
z.literal("pdns"),
|
||||
z.literal("httpreq"),
|
||||
z.literal("local"),
|
||||
z.literal("ssh"),
|
||||
z.literal("webhook"),
|
||||
z.literal("k8s"),
|
||||
["aliyun", "common.provider.aliyun", "/imgs/providers/aliyun.svg", "all"],
|
||||
["tencent", "common.provider.tencent", "/imgs/providers/tencent.svg", "all"],
|
||||
["huaweicloud", "common.provider.huaweicloud", "/imgs/providers/huaweicloud.svg", "all"],
|
||||
["qiniu", "common.provider.qiniu", "/imgs/providers/qiniu.svg", "deploy"],
|
||||
["aws", "common.provider.aws", "/imgs/providers/aws.svg", "apply"],
|
||||
["cloudflare", "common.provider.cloudflare", "/imgs/providers/cloudflare.svg", "apply"],
|
||||
["namesilo", "common.provider.namesilo", "/imgs/providers/namesilo.svg", "apply"],
|
||||
["godaddy", "common.provider.godaddy", "/imgs/providers/godaddy.svg", "apply"],
|
||||
["pdns", "common.provider.pdns", "/imgs/providers/pdns.svg", "apply"],
|
||||
["httpreq", "common.provider.httpreq", "/imgs/providers/httpreq.svg", "apply"],
|
||||
["local", "common.provider.local", "/imgs/providers/local.svg", "deploy"],
|
||||
["ssh", "common.provider.ssh", "/imgs/providers/ssh.svg", "deploy"],
|
||||
["webhook", "common.provider.webhook", "/imgs/providers/webhook.svg", "deploy"],
|
||||
["k8s", "common.provider.kubernetes", "/imgs/providers/k8s.svg", "deploy"],
|
||||
].map(([type, name, icon, usage]) => [type, { type, name, icon, usage: usage as AccessUsages }])
|
||||
);
|
||||
|
||||
export const accessTypeFormSchema = z.union(
|
||||
[
|
||||
z.literal("aliyun" as string),
|
||||
z.literal("tencent" as string),
|
||||
z.literal("huaweicloud" as string),
|
||||
z.literal("qiniu" as string),
|
||||
z.literal("aws" as string),
|
||||
z.literal("cloudflare" as string),
|
||||
z.literal("namesilo" as string),
|
||||
z.literal("godaddy" as string),
|
||||
z.literal("pdns" as string),
|
||||
z.literal("httpreq" as string),
|
||||
z.literal("local" as string),
|
||||
z.literal("ssh" as string),
|
||||
z.literal("webhook" as string),
|
||||
z.literal("k8s" as string),
|
||||
],
|
||||
{ message: "access.authorization.form.type.placeholder" }
|
||||
);
|
||||
|
||||
type AccessUsage = "apply" | "deploy" | "all";
|
||||
|
||||
export type Access = {
|
||||
id: string;
|
||||
name: string;
|
||||
configType: string;
|
||||
usage: AccessUsage;
|
||||
usage: AccessUsages;
|
||||
group?: string;
|
||||
config:
|
||||
| AliyunConfig
|
||||
@@ -141,30 +146,3 @@ export type WebhookConfig = {
|
||||
export type KubernetesConfig = {
|
||||
kubeConfig: string;
|
||||
};
|
||||
|
||||
export const getUsageByConfigType = (configType: string): AccessUsage => {
|
||||
switch (configType) {
|
||||
case "aliyun":
|
||||
case "tencent":
|
||||
case "huaweicloud":
|
||||
return "all";
|
||||
|
||||
case "qiniu":
|
||||
case "local":
|
||||
case "ssh":
|
||||
case "webhook":
|
||||
case "k8s":
|
||||
return "deploy";
|
||||
|
||||
case "aws":
|
||||
case "cloudflare":
|
||||
case "namesilo":
|
||||
case "godaddy":
|
||||
case "pdns":
|
||||
case "httpreq":
|
||||
return "apply";
|
||||
|
||||
default:
|
||||
return "all";
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user