diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-06-10 19:07:50 +0800 | 
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-06-10 19:07:50 +0800 | 
| commit | e759291d4a1e6a162265c737608c26aea43537d0 (patch) | |
| tree | ebe00a3c234c3166ccd75d157f4d4aae6d0d4032 /deno | |
| parent | 7334e4fcf78544e07aee5046757885e721dcfd11 (diff) | |
| download | crupest-e759291d4a1e6a162265c737608c26aea43537d0.tar.gz crupest-e759291d4a1e6a162265c737608c26aea43537d0.tar.bz2 crupest-e759291d4a1e6a162265c737608c26aea43537d0.zip | |
chore(deno): prettier all.
Diffstat (limited to 'deno')
| -rw-r--r-- | deno/base/config.ts | 1 | ||||
| -rw-r--r-- | deno/base/log.ts | 1 | ||||
| -rw-r--r-- | deno/deno.json | 2 | ||||
| -rw-r--r-- | deno/mail-relay/aws/deliver.ts | 6 | ||||
| -rw-r--r-- | deno/mail-relay/db.ts | 45 | ||||
| -rw-r--r-- | deno/mail-relay/dovecot.ts | 15 | ||||
| -rw-r--r-- | deno/mail-relay/dumb-smtp-server.ts | 9 | ||||
| -rw-r--r-- | deno/mail-relay/mail.test.ts | 26 | ||||
| -rw-r--r-- | deno/mail-relay/mail.ts | 56 | ||||
| -rw-r--r-- | deno/service-manager/deno.json | 1 | ||||
| -rw-r--r-- | deno/service-manager/template.ts | 8 | 
11 files changed, 85 insertions, 85 deletions
| diff --git a/deno/base/config.ts b/deno/base/config.ts index 98722f6..8fce1d8 100644 --- a/deno/base/config.ts +++ b/deno/base/config.ts @@ -91,4 +91,3 @@ export class ConfigProvider<K extends string> {        .join("\n");    }  } - diff --git a/deno/base/log.ts b/deno/base/log.ts index 1a4942d..d0a5b80 100644 --- a/deno/base/log.ts +++ b/deno/base/log.ts @@ -161,4 +161,3 @@ export class Logger {      };    }  } - diff --git a/deno/deno.json b/deno/deno.json index 71ad398..2125808 100644 --- a/deno/deno.json +++ b/deno/deno.json @@ -1,5 +1,5 @@  { -  "workspace": [ "./base", "./service-manager", "./mail-relay" ], +  "workspace": ["./base", "./service-manager", "./mail-relay"],    "tasks": {      "compile:mail-relay": "deno task --cwd=mail-relay compile",      "compile:service-manager": "deno task --cwd=service-manager compile" diff --git a/deno/mail-relay/aws/deliver.ts b/deno/mail-relay/aws/deliver.ts index 3e1f162..9950e37 100644 --- a/deno/mail-relay/aws/deliver.ts +++ b/deno/mail-relay/aws/deliver.ts @@ -45,14 +45,12 @@ export class AwsMailDeliverer extends SyncMailDeliverer {        if (res.MessageId == null) {          this.#logger.warn("Aws send-email returns no message id.");        } else { -        context.result.awsMessageId = -          `${res.MessageId}@${this.#aws.region}.amazonses.com`; +        context.result.awsMessageId = `${res.MessageId}@${this.#aws.region}.amazonses.com`;        }        context.result.recipients.set("*", {          kind: "done", -        message: -          `Successfully called aws send-email, message id ${context.result.awsMessageId}.`, +        message: `Successfully called aws send-email, message id ${context.result.awsMessageId}.`,        });      } catch (cause) {        context.result.recipients.set("*", { diff --git a/deno/mail-relay/db.ts b/deno/mail-relay/db.ts index 9b05e32..807ecf6 100644 --- a/deno/mail-relay/db.ts +++ b/deno/mail-relay/db.ts @@ -20,19 +20,20 @@ class SqliteStatementAdapter implements SqliteStatement {    }    all(parameters: readonly unknown[]): unknown[] { -    return this.stmt.all(...parameters as sqlite.BindValue[]); +    return this.stmt.all(...(parameters as sqlite.BindValue[]));    }    iterate(parameters: readonly unknown[]): IterableIterator<unknown> { -    return this.stmt.iter(...parameters as sqlite.BindValue[]); +    return this.stmt.iter(...(parameters as sqlite.BindValue[]));    } -  run( -    parameters: readonly unknown[], -  ): { changes: number | bigint; lastInsertRowid: number | bigint } { +  run(parameters: readonly unknown[]): { +    changes: number | bigint; +    lastInsertRowid: number | bigint; +  } {      const { db } = this.stmt;      const totalChangesBefore = db.totalChanges; -    const changes = this.stmt.run(...parameters as sqlite.BindValue[]); +    const changes = this.stmt.run(...(parameters as sqlite.BindValue[]));      return {        changes: totalChangesBefore === db.totalChanges ? 0 : changes,        lastInsertRowid: db.lastInsertRowId, @@ -52,8 +53,7 @@ class SqliteDatabaseAdapter implements SqliteDatabase {    }  } -export class DbError extends Error { -} +export class DbError extends Error {}  interface AwsMessageIdMapTable {    id: Generated<number>; @@ -100,9 +100,9 @@ export class DbService {    constructor(public readonly path: string) {      this.#db = new sqlite.Database(path);      this.#kysely = new Kysely<Database>({ -      dialect: new SqliteDialect( -        { database: new SqliteDatabaseAdapter(this.#db) }, -      ), +      dialect: new SqliteDialect({ +        database: new SqliteDatabaseAdapter(this.#db), +      }),      });      this.#migrator = new Migrator({        db: this.#kysely, @@ -121,24 +121,27 @@ export class DbService {    async addMessageIdMap(      mail: Insertable<AwsMessageIdMapTable>,    ): Promise<number> { -    const inserted = await this.#kysely.insertInto("aws_message_id_map").values( -      mail, -    ).executeTakeFirstOrThrow(); +    const inserted = await this.#kysely +      .insertInto("aws_message_id_map") +      .values(mail) +      .executeTakeFirstOrThrow();      return Number(inserted.insertId!);    }    async messageIdToAws(messageId: string): Promise<string | null> { -    const row = await this.#kysely.selectFrom("aws_message_id_map").where( -      "message_id", -      "=", -      messageId, -    ).select("aws_message_id").executeTakeFirst(); +    const row = await this.#kysely +      .selectFrom("aws_message_id_map") +      .where("message_id", "=", messageId) +      .select("aws_message_id") +      .executeTakeFirst();      return row?.aws_message_id ?? null;    }    async messageIdFromAws(awsMessageId: string): Promise<string | null> { -    const row = await this.#kysely.selectFrom("aws_message_id_map") -      .where("aws_message_id", "=", awsMessageId).select("message_id") +    const row = await this.#kysely +      .selectFrom("aws_message_id_map") +      .where("aws_message_id", "=", awsMessageId) +      .select("message_id")        .executeTakeFirst();      return row?.message_id ?? null;    } diff --git a/deno/mail-relay/dovecot.ts b/deno/mail-relay/dovecot.ts index cb63766..124a82b 100644 --- a/deno/mail-relay/dovecot.ts +++ b/deno/mail-relay/dovecot.ts @@ -2,11 +2,7 @@ import { basename } from "@std/path";  import { Logger } from "@crupest/base/log"; -import { -  Mail, -  MailDeliverContext, -  MailDeliverer, -} from "./mail.ts"; +import { Mail, MailDeliverContext, MailDeliverer } from "./mail.ts";  export class DovecotMailDeliverer extends MailDeliverer {    readonly name = "dovecot"; @@ -38,9 +34,7 @@ export class DovecotMailDeliverer extends MailDeliverer {      for (const recipient of recipients) {        try {          const commandArgs = ["-d", recipient]; -        this.logger.info( -          `Run ${ldaBinName} ${commandArgs.join(" ")}...`, -        ); +        this.logger.info(`Run ${ldaBinName} ${commandArgs.join(" ")}...`);          const ldaCommand = new Deno.Command(ldaPath, {            args: commandArgs, @@ -50,9 +44,8 @@ export class DovecotMailDeliverer extends MailDeliverer {          });          const ldaProcess = ldaCommand.spawn(); -        using logFiles = await this.logger.createExternalLogStreamsForProgram( -          ldaBinName, -        ); +        using logFiles = +          await this.logger.createExternalLogStreamsForProgram(ldaBinName);          ldaProcess.stdout.pipeTo(logFiles.stdout);          ldaProcess.stderr.pipeTo(logFiles.stderr); diff --git a/deno/mail-relay/dumb-smtp-server.ts b/deno/mail-relay/dumb-smtp-server.ts index 66c2f7c..15cafa5 100644 --- a/deno/mail-relay/dumb-smtp-server.ts +++ b/deno/mail-relay/dumb-smtp-server.ts @@ -107,10 +107,7 @@ export class DumbSmtpServer {      }    } -  async serve(options: { -    hostname: string, -    port: number -  }) { +  async serve(options: { hostname: string; port: number }) {      const listener = Deno.listen(options);      this.#responses = createResponses(options.hostname, options.port);      this.#logger.info( @@ -121,7 +118,9 @@ export class DumbSmtpServer {        try {          await this.#handleConnection(conn);        } catch (cause) { -        this.#logger.error("One smtp connection session throws an error " + cause); +        this.#logger.error( +          "One smtp connection session throws an error " + cause, +        );        }      }    } diff --git a/deno/mail-relay/mail.test.ts b/deno/mail-relay/mail.test.ts index 6f3cd13..09cf8eb 100644 --- a/deno/mail-relay/mail.test.ts +++ b/deno/mail-relay/mail.test.ts @@ -67,33 +67,31 @@ describe("Mail", () => {    });    it("simple parse date", () => { -    expect(new Mail(mockMailStr).startSimpleParse().sections().headers().date()) -      .toEqual(new Date(mockDate)); +    expect( +      new Mail(mockMailStr).startSimpleParse().sections().headers().date(), +    ).toEqual(new Date(mockDate));    });    it("simple parse headers", () => {      expect(        new Mail(mockMailStr).startSimpleParse().sections().headers().fields, -    ).toEqual(mockHeaders.map( -      (h) => [h[0], " " + h[1].replaceAll("\n", "")], -    )); +    ).toEqual(mockHeaders.map((h) => [h[0], " " + h[1].replaceAll("\n", "")]));    });    it("parse recipients", () => {      const mail = new Mail(mockMailStr); -    expect([...mail.startSimpleParse().sections().headers().recipients()]) -      .toEqual([ -        ...mockToAddresses, -        mockCcAddress, -      ]); +    expect([ +      ...mail.startSimpleParse().sections().headers().recipients(), +    ]).toEqual([...mockToAddresses, mockCcAddress]);      expect([        ...mail.startSimpleParse().sections().headers().recipients({          domain: "example.com",        }), -    ]).toEqual([ -      ...mockToAddresses, -      mockCcAddress, -    ].filter((a) => a.endsWith("example.com"))); +    ]).toEqual( +      [...mockToAddresses, mockCcAddress].filter((a) => +        a.endsWith("example.com"), +      ), +    );    });    it("find all addresses", () => { diff --git a/deno/mail-relay/mail.ts b/deno/mail-relay/mail.ts index 8c2e067..8c977fe 100644 --- a/deno/mail-relay/mail.ts +++ b/deno/mail-relay/mail.ts @@ -4,12 +4,15 @@ import emailAddresses from "email-addresses";  import { Logger } from "@crupest/base/log"; -class MailSimpleParseError extends Error { } +class MailSimpleParseError extends Error {}  class MailSimpleParsedHeaders { -  #logger +  #logger; -  constructor(logger: Logger | undefined, public fields: [key:string, value: string][]) { +  constructor( +    logger: Logger | undefined, +    public fields: [key: string, value: string][], +  ) {      this.#logger = logger;    } @@ -71,10 +74,10 @@ class MailSimpleParsedSections {    eol: string;    sep: string; -  #logger +  #logger;    constructor(logger: Logger | undefined, raw: string) { -    this.#logger = logger +    this.#logger = logger;      const twoEolMatch = raw.match(/(\r?\n)(\r?\n)/);      if (twoEolMatch == null) { @@ -96,7 +99,7 @@ class MailSimpleParsedSections {    }    headers(): MailSimpleParsedHeaders { -    const headers = [] as [key:string, value: string][]; +    const headers = [] as [key: string, value: string][];      let field: string | null = null;      let lineNumber = 1; @@ -105,9 +108,7 @@ class MailSimpleParsedSections {        if (field == null) return;        const sepPos = field.indexOf(":");        if (sepPos === -1) { -        throw new MailSimpleParseError( -          `No ':' in the header line: ${field}`, -        ); +        throw new MailSimpleParseError(`No ':' in the header line: ${field}`);        }        headers.push([field.slice(0, sepPos).trim(), field.slice(sepPos + 1)]);        field = null; @@ -149,8 +150,8 @@ export class Mail {    }    simpleFindAllAddresses(): string[] { -    const re = /,?\<?([a-z0-9_'+\-\.]+\@[a-z0-9_'+\-\.]+)\>?,?/ig -    return [...this.raw.matchAll(re)].map(m => m[1]) +    const re = /,?\<?([a-z0-9_'+\-\.]+\@[a-z0-9_'+\-\.]+)\>?,?/gi; +    return [...this.raw.matchAll(re)].map((m) => m[1]);    }  } @@ -169,16 +170,21 @@ export class MailDeliverResult {    constructor(public mail: Mail) {}    hasError(): boolean { -    return this.recipients.size === 0 || -      this.recipients.values().some((r) => r.kind !== "done"); +    return ( +      this.recipients.size === 0 || +      this.recipients.values().some((r) => r.kind !== "done") +    );    }    [Symbol.for("Deno.customInspect")]() {      return [        `message: ${this.message}`, -      ...this.recipients.entries().map(([recipient, result]) => -        `${recipient} [${result.kind}]: ${result.message}` -      ), +      ...this.recipients +        .entries() +        .map( +          ([recipient, result]) => +            `${recipient} [${result.kind}]: ${result.message}`, +        ),      ].join("\n");    }  } @@ -204,7 +210,7 @@ export abstract class MailDeliverer {    preHooks: MailDeliverHook[] = [];    postHooks: MailDeliverHook[] = []; -  constructor(protected readonly logger: Logger) { } +  constructor(protected readonly logger: Logger) {}    protected abstract doDeliver(      mail: Mail, @@ -248,13 +254,19 @@ export abstract class MailDeliverer {  export abstract class SyncMailDeliverer extends MailDeliverer {    #last: Promise<void> = Promise.resolve(); -  override async deliver( -    options: { mail: Mail; recipients?: string[] }, -  ): Promise<MailDeliverResult> { -    this.logger.info("The mail deliverer is sync. Wait for last delivering done..."); +  override async deliver(options: { +    mail: Mail; +    recipients?: string[]; +  }): Promise<MailDeliverResult> { +    this.logger.info( +      "The mail deliverer is sync. Wait for last delivering done...", +    );      await this.#last;      const result = super.deliver(options); -    this.#last = result.then(() => {}, () => {}); +    this.#last = result.then( +      () => {}, +      () => {}, +    );      return result;    }  } diff --git a/deno/service-manager/deno.json b/deno/service-manager/deno.json index 2ba8394..9f30853 100644 --- a/deno/service-manager/deno.json +++ b/deno/service-manager/deno.json @@ -1,4 +1,3 @@ -  {    "version": "0.1.0",    "tasks": { diff --git a/deno/service-manager/template.ts b/deno/service-manager/template.ts index be6cb60..0b043a1 100644 --- a/deno/service-manager/template.ts +++ b/deno/service-manager/template.ts @@ -1,9 +1,9 @@  import { dirname, join, relative } from "@std/path";  import { copySync, existsSync, walkSync } from "@std/fs";  import { parse } from "@std/dotenv"; -import { distinct } from "@std/collections" +import { distinct } from "@std/collections";  // @ts-types="npm:@types/mustache" -import Mustache from "mustache" +import Mustache from "mustache";  Mustache.tags = ["@@", "@@"];  Mustache.escape = (value) => String(value); @@ -21,7 +21,7 @@ function getVariableKeys(original: string): string[] {  }  export function loadVariables(files: string[]): Record<string, string> { -  const vars: Record<string, string> = {} +  const vars: Record<string, string> = {};    for (const file of files) {      const text = Deno.readTextFileSync(file);      for (const [key, valueText] of Object.entries(parse(text))) { @@ -38,7 +38,7 @@ export function loadVariables(files: string[]): Record<string, string> {    return vars;  } -const TEMPLATE_FILE_EXT = ".template" +const TEMPLATE_FILE_EXT = ".template";  export class TemplateDir {    templates: { path: string; ext: string; text: string; vars: string[] }[] = []; | 
