mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 11:51:23 +00:00
refactor(line): dedupe config schema
This commit is contained in:
@@ -3,6 +3,22 @@ import { z } from "zod";
|
|||||||
const DmPolicySchema = z.enum(["open", "allowlist", "pairing", "disabled"]);
|
const DmPolicySchema = z.enum(["open", "allowlist", "pairing", "disabled"]);
|
||||||
const GroupPolicySchema = z.enum(["open", "allowlist", "disabled"]);
|
const GroupPolicySchema = z.enum(["open", "allowlist", "disabled"]);
|
||||||
|
|
||||||
|
const LineCommonConfigSchema = z.object({
|
||||||
|
enabled: z.boolean().optional(),
|
||||||
|
channelAccessToken: z.string().optional(),
|
||||||
|
channelSecret: z.string().optional(),
|
||||||
|
tokenFile: z.string().optional(),
|
||||||
|
secretFile: z.string().optional(),
|
||||||
|
name: z.string().optional(),
|
||||||
|
allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
||||||
|
groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
||||||
|
dmPolicy: DmPolicySchema.optional().default("pairing"),
|
||||||
|
groupPolicy: GroupPolicySchema.optional().default("allowlist"),
|
||||||
|
responsePrefix: z.string().optional(),
|
||||||
|
mediaMaxMb: z.number().optional(),
|
||||||
|
webhookPath: z.string().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
const LineGroupConfigSchema = z
|
const LineGroupConfigSchema = z
|
||||||
.object({
|
.object({
|
||||||
enabled: z.boolean().optional(),
|
enabled: z.boolean().optional(),
|
||||||
@@ -14,39 +30,13 @@ const LineGroupConfigSchema = z
|
|||||||
.strict();
|
.strict();
|
||||||
|
|
||||||
const LineAccountConfigSchema = z
|
const LineAccountConfigSchema = z
|
||||||
.object({
|
.extend({
|
||||||
enabled: z.boolean().optional(),
|
|
||||||
channelAccessToken: z.string().optional(),
|
|
||||||
channelSecret: z.string().optional(),
|
|
||||||
tokenFile: z.string().optional(),
|
|
||||||
secretFile: z.string().optional(),
|
|
||||||
name: z.string().optional(),
|
|
||||||
allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
||||||
groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
||||||
dmPolicy: DmPolicySchema.optional().default("pairing"),
|
|
||||||
groupPolicy: GroupPolicySchema.optional().default("allowlist"),
|
|
||||||
responsePrefix: z.string().optional(),
|
|
||||||
mediaMaxMb: z.number().optional(),
|
|
||||||
webhookPath: z.string().optional(),
|
|
||||||
groups: z.record(z.string(), LineGroupConfigSchema.optional()).optional(),
|
groups: z.record(z.string(), LineGroupConfigSchema.optional()).optional(),
|
||||||
})
|
})
|
||||||
.strict();
|
.strict();
|
||||||
|
|
||||||
export const LineConfigSchema = z
|
export const LineConfigSchema = z
|
||||||
.object({
|
.extend({
|
||||||
enabled: z.boolean().optional(),
|
|
||||||
channelAccessToken: z.string().optional(),
|
|
||||||
channelSecret: z.string().optional(),
|
|
||||||
tokenFile: z.string().optional(),
|
|
||||||
secretFile: z.string().optional(),
|
|
||||||
name: z.string().optional(),
|
|
||||||
allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
||||||
groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
||||||
dmPolicy: DmPolicySchema.optional().default("pairing"),
|
|
||||||
groupPolicy: GroupPolicySchema.optional().default("allowlist"),
|
|
||||||
responsePrefix: z.string().optional(),
|
|
||||||
mediaMaxMb: z.number().optional(),
|
|
||||||
webhookPath: z.string().optional(),
|
|
||||||
accounts: z.record(z.string(), LineAccountConfigSchema.optional()).optional(),
|
accounts: z.record(z.string(), LineAccountConfigSchema.optional()).optional(),
|
||||||
groups: z.record(z.string(), LineGroupConfigSchema.optional()).optional(),
|
groups: z.record(z.string(), LineGroupConfigSchema.optional()).optional(),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user