diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-06-14 01:21:11 +0800 | 
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-06-14 02:50:24 +0800 | 
| commit | 6e2894f2c917dfe6c5a03e6453be292118f4ef00 (patch) | |
| tree | f2fa78e2669ba38fadc88f1b1f33dcbca52335b2 /deno/mail-relay/aws | |
| parent | 8fe85fccf3881114202301ac986073564d5abd3f (diff) | |
| download | crupest-6e2894f2c917dfe6c5a03e6453be292118f4ef00.tar.gz crupest-6e2894f2c917dfe6c5a03e6453be292118f4ef00.tar.bz2 crupest-6e2894f2c917dfe6c5a03e6453be292118f4ef00.zip  | |
deno(mail-server): rename Logger and revise service creation.
Diffstat (limited to 'deno/mail-relay/aws')
| -rw-r--r-- | deno/mail-relay/aws/app.ts | 48 | 
1 files changed, 20 insertions, 28 deletions
diff --git a/deno/mail-relay/aws/app.ts b/deno/mail-relay/aws/app.ts index b7d0154..13db351 100644 --- a/deno/mail-relay/aws/app.ts +++ b/deno/mail-relay/aws/app.ts @@ -6,7 +6,7 @@ import { FetchHttpHandler } from "@smithy/fetch-http-handler";  // @ts-types="npm:@types/yargs"  import yargs from "yargs"; -import { Logger } from "@crupest/base/log"; +import { LogFileProvider } from "@crupest/base/log";  import { ConfigDefinition, ConfigProvider } from "@crupest/base/config";  import { CronTask } from "@crupest/base/cron"; @@ -155,60 +155,56 @@ function createCron(fetcher: AwsMailFetcher, consumer: AwsS3MailConsumer) {  function createBaseServices() {    const config = new ConfigProvider(PREFIX, CONFIG_DEFINITIONS);    Deno.mkdirSync(config.get("dataPath"), { recursive: true }); -  const logger = new Logger(); -  logger.externalLogDir = join(config.get("dataPath"), "log"); -  return { config, logger }; +  const logFileProvider = new LogFileProvider( +    join(config.get("dataPath"), "log"), +  ); +  return { config, logFileProvider };  }  function createAwsFetchOnlyServices() { -  const { config, logger } = createBaseServices(); +  const services = createBaseServices(); +  const { config } = services; +    const awsOptions = createAwsOptions({      user: config.get("awsUser"),      password: config.get("awsPassword"),      region: config.get("awsRegion"),    });    const fetcher = new AwsMailFetcher(awsOptions, config.get("awsMailBucket")); -  return { config, logger, awsOptions, fetcher }; + +  return { ...services, awsOptions, fetcher };  }  function createAwsRecycleOnlyServices() { -  const { config, logger, awsOptions, fetcher } = createAwsFetchOnlyServices(); +  const services = createAwsFetchOnlyServices(); +  const { config, logFileProvider } = services; -  const inbound = createInbound(logger, { +  const inbound = createInbound(logFileProvider, {      fallback: config.getList("inboundFallback"),      ldaPath: config.get("ldaPath"),      aliasFile: join(config.get("dataPath"), "aliases.csv"),      mailDomain: config.get("mailDomain"),    }); -    const recycler = (rawMail: string, _: unknown): Promise<void> =>      inbound.deliver({ mail: new Mail(rawMail) }).then(); -  return { config, logger, awsOptions, fetcher, inbound, recycler }; +  return { ...services, inbound, recycler };  }  function createAwsServices() { -  const { config, logger, inbound, awsOptions, fetcher, recycler } = -    createAwsRecycleOnlyServices(); +  const services = createAwsRecycleOnlyServices(); +  const { config, awsOptions } = services; +    const dbService = new DbService(join(config.get("dataPath"), "db.sqlite"));    const outbound = createOutbound(awsOptions, dbService); -  return { -    config, -    logger, -    inbound, -    dbService, -    awsOptions, -    fetcher, -    recycler, -    outbound, -  }; +  return { ...services, dbService, outbound };  }  function createServerServices() {    const services = createAwsServices();    const { config, outbound, inbound, fetcher } = services; -  const smtp = createSmtp(outbound); +  const smtp = createSmtp(outbound);    const hono = createHono(outbound, inbound);    setupAwsHono(hono, {      path: config.get("awsInboundPath"), @@ -220,11 +216,7 @@ function createServerServices() {      },    }); -  return { -    ...services, -    smtp, -    hono, -  }; +  return { ...services, smtp, hono };  }  function serve(cron: boolean = false) {  | 
