From 2b276957f24f9f7197e6a1588b46284199524a7d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 10:09:11 +0000 Subject: [PATCH 1/2] Update dependency prettier to v3 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 94cfbd5..a4bf8d2 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "eslint-plugin-prettier": "4.2.1", "eslint-plugin-promise": "6.1.1", "npm-run-all2": "5.0.2", - "prettier": "2.8.8", + "prettier": "3.2.5", "ts-node": "10.9.2", "typescript": "5.4.5", "vitest": "1.4.0" diff --git a/yarn.lock b/yarn.lock index cdf717e..66a18be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2664,10 +2664,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@^29.7.0: version "29.7.0" From 092a47c9478d5274610344179a4cd1b1f2ffd3fe Mon Sep 17 00:00:00 2001 From: sksat Date: Thu, 2 May 2024 12:43:03 +0900 Subject: [PATCH 2/2] format with prettier v3 --- src/check.ts | 4 ++-- src/config.test.ts | 34 +++++++++++++++++----------------- src/config.ts | 20 ++++++++++---------- src/configFormat/jsonFormat.ts | 4 ++-- src/configFormat/yamlFormat.ts | 8 ++++---- src/configSchema.ts | 22 +++++++++++----------- src/github.ts | 18 +++++++++--------- src/index.ts | 12 ++++++------ src/types.ts | 2 +- src/util.ts | 10 +++++----- 10 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/check.ts b/src/check.ts index 811a0f6..e9bb604 100644 --- a/src/check.ts +++ b/src/check.ts @@ -48,7 +48,7 @@ assert(input, "--input or process.env.RULES_FILE is required"); const printSemDiag = ( filepath: string, - { range, msg, objPath, diagKind }: SemDiag + { range, msg, objPath, diagKind }: SemDiag, ) => { let semPos; if (objPath.length === 0) { @@ -152,7 +152,7 @@ if (!docResult.is_ok) { docResult.docRaw.value, e.diag.objPath, key.value, - candidates[0] + candidates[0], ); modified = true; } diff --git a/src/config.test.ts b/src/config.test.ts index a3017e8..dbc2de4 100644 --- a/src/config.test.ts +++ b/src/config.test.ts @@ -104,28 +104,28 @@ it("can match with readme rules", async () => { await expect(rules[2].test(obj)).resolves.toBeTruthy(); expect( mock, - "acquire team member the first time we need" + "acquire team member the first time we need", ).toHaveBeenCalledTimes(1); await expect( getMatchedProj( rules, { kind: WebhookEventKind.Issue, action: "assigned" }, - obj - ) + obj, + ), ).resolves.toEqual([1, 4]); await expect(rules[2].test(obj2)).resolves.toBeFalsy(); expect( mock, - "once called, it will not be called again" + "once called, it will not be called again", ).toHaveBeenCalledTimes(1); await expect( getMatchedProj( rules, { kind: WebhookEventKind.Issue, action: "assigned" }, - obj2 - ) + obj2, + ), ).resolves.toEqual([]); await expect(rules[3].test(obj3)).resolves.toBeFalsy(); @@ -137,8 +137,8 @@ it("can match with readme rules", async () => { getMatchedProj( rules, { kind: WebhookEventKind.PullRequest, action: "assigned" }, - obj4 - ) + obj4, + ), ).resolves.toEqual([9]); }); @@ -217,7 +217,7 @@ it("treat rules about issue and pr exclusively", () => { pr: - assigned project: 1`, - "issue rule on pr event" + "issue rule on pr event", ); }); @@ -253,8 +253,8 @@ it("can limit firing event", async () => { kind: WebhookEventKind.Issue, action: "assigned", }, - arg("assignee") - ) + arg("assignee"), + ), ).resolves.toEqual([1]); await expect( getMatchedProj( @@ -263,8 +263,8 @@ it("can limit firing event", async () => { kind: WebhookEventKind.Issue, action: "opened", }, - arg("assignee") - ) + arg("assignee"), + ), ).resolves.toEqual([1, 2]); await expect( getMatchedProj( @@ -273,8 +273,8 @@ it("can limit firing event", async () => { kind: WebhookEventKind.PullRequest, action: "opened", }, - arg("assignee") - ) + arg("assignee"), + ), ).resolves.toEqual([2]); await expect( getMatchedProj( @@ -283,7 +283,7 @@ it("can limit firing event", async () => { kind: WebhookEventKind.PullRequest, action: "assigned", }, - arg("assignee") - ) + arg("assignee"), + ), ).resolves.toEqual([]); }); diff --git a/src/config.ts b/src/config.ts index 9dffa3a..d1b0e34 100644 --- a/src/config.ts +++ b/src/config.ts @@ -94,7 +94,7 @@ interface Rule { export async function getMatchedProj( rules: Rule[], webhookEvent: WebhookEventAction, - obj: MatchArg + obj: MatchArg, ): Promise { const ruleMatchedProjectNumbers = await Promise.all( rules.map(async (rule) => { @@ -104,7 +104,7 @@ export async function getMatchedProj( } } return []; - }) + }), ); const targetProjs: TargetProj[] = ruleMatchedProjectNumbers.flat(); return filterTargetProjs(targetProjs); @@ -114,7 +114,7 @@ function filterTargetProjs(targetProjs: TargetProj[]): number[] { // lift `priority` from `TargetProjNumber` const targetProjsFlat = targetProjs.flatMap( ( - p: TargetProj + p: TargetProj, ): Array< | ({ kind: TargetProjKind.Number } & TargetProjNumber) | TargetProjOnly @@ -127,7 +127,7 @@ function filterTargetProjs(targetProjs: TargetProj[]): number[] { })); } return [p]; - } + }, ); // dictionary order (priority >> kind) targetProjsFlat.sort((a, b) => { @@ -172,13 +172,13 @@ function filterTargetProjs(targetProjs: TargetProj[]): number[] { export function processRulesV0( format: EitherFormat, filepath: string, - src: string + src: string, ): ParseResult { const { docResult, content, error } = parseFile( format, configSchema, filepath, - src + src, ); return { docResult, @@ -229,7 +229,7 @@ function parseFile>( format: EitherFormat, schema: Schema, filepath: string, - yaml: string + yaml: string, ): ParseResult { const result = format.parse(yaml); if (!result.is_ok) { @@ -336,13 +336,13 @@ function getWebhookEventTarget(parsed: RuleSchema): WebhookEventActionTarget { export function processRules( format: EitherFormat, filepath: string, - src: string + src: string, ): ParseResult { const { docResult, content, error } = parseFile( format, versionedSchema, filepath, - src + src, ); return { docResult, @@ -426,7 +426,7 @@ const extractSemDiag = (doc: Document, error: z.ZodError) => { if ( (issue.code === "invalid_union" && issue.unionErrors.every((e) => - e.errors.every((e) => e.message === "Required") + e.errors.every((e) => e.message === "Required"), )) || issue.message === "Required" ) { diff --git a/src/configFormat/jsonFormat.ts b/src/configFormat/jsonFormat.ts index 4066136..97318ed 100644 --- a/src/configFormat/jsonFormat.ts +++ b/src/configFormat/jsonFormat.ts @@ -10,7 +10,7 @@ import { import { type ObjPath } from "../types"; const parserGrammar = nearley.Grammar.fromCompiled( - grammar as nearley.CompiledRules + grammar as nearley.CompiledRules, ); export type JsonTagged = { @@ -215,7 +215,7 @@ function findDelegator(node: Value | null) { return (keyName: string): DocumentNode | null => { if (node?.type === "Object") { const key = node?.children.find( - (pair) => pair.key.value.toString() === keyName + (pair) => pair.key.value.toString() === keyName, )?.key; if (typeof key === "undefined") { return null; diff --git a/src/configFormat/yamlFormat.ts b/src/configFormat/yamlFormat.ts index 0a0ede8..8f714ff 100644 --- a/src/configFormat/yamlFormat.ts +++ b/src/configFormat/yamlFormat.ts @@ -24,7 +24,7 @@ type ParseResultWrapped = ParseResult, YamlTagged>; export class YamlFormat implements Format { parse( - s: string + s: string, ): ParseResultWrapped> { const lineCounter = new LineCounter(); const doc = YAML.parseDocument(s, { lineCounter, prettyErrors: true }); @@ -45,7 +45,7 @@ export class YamlFormat implements Format { export class YamlDocument implements Document { constructor( private readonly doc: YAML.Document.Parsed, - private readonly lineCounter: LineCounter + private readonly lineCounter: LineCounter, ) {} toJS() { @@ -77,7 +77,7 @@ export class YamlDocument implements Document { function toDocumentNode( node: YAML.ParsedNode, - lineCounter: LineCounter + lineCounter: LineCounter, ): DocumentNode & FindKey { return { loc: { @@ -92,7 +92,7 @@ function findDelegator(node: YAML.ParsedNode | null, lineCounter: LineCounter) { return (keyName: string) => { if (YAML.isMap(node)) { const key = node?.items.find( - (pair) => pair.key.toString() === keyName + (pair) => pair.key.toString() === keyName, )?.key; if (typeof key === "undefined") { return null; diff --git a/src/configSchema.ts b/src/configSchema.ts index 5218520..2851059 100644 --- a/src/configSchema.ts +++ b/src/configSchema.ts @@ -61,7 +61,7 @@ const composeEAsync = const y = flatten(f(x)); return await existsAsync( g, - async (g) => await existsAsync(y, async (y) => await g(y)) + async (g) => await existsAsync(y, async (y) => await g(y)), ); }; @@ -78,7 +78,7 @@ const composeAAsync = const y = flatten(f(x)); return await forallAsync( g, - async (g) => await existsAsync(y, async (y) => await g(y)) + async (g) => await existsAsync(y, async (y) => await g(y)), ); }; @@ -147,7 +147,7 @@ const numberParser = z.union([_number.transform(unit), _number.array()], { (i) => // i.code === z.ZodIssueCode.invalid_type is required because of type inference i.code === z.ZodIssueCode.invalid_type && - i.received === z.ZodParsedType.array + i.received === z.ZodParsedType.array, ) ) { // error is array of something @@ -239,7 +239,7 @@ const loginEq = return async (x: X & GetTeamMemberProp) => { const y = await p(x); return proj(x).some((g) => - y.some((y) => curryingStrictEq(g.login)(y.login)) + y.some((y) => curryingStrictEq(g.login)(y.login)), ); }; } @@ -258,7 +258,7 @@ const labelParser = stringish const issueSchema = z.object({ assignees: loginParser( - (x: Issue & GetTeamMemberProp) => x.assignees + (x: Issue & GetTeamMemberProp) => x.assignees, ).transform(extendEAsync((x: Issue & GetTeamMemberProp) => x)), labels: labelParser .transform(extendPropE()("labels")) @@ -274,10 +274,10 @@ const prSchema = z.object({ } else { return []; } - }) + }), ).transform(extendEAsync((x: PullRequest & GetTeamMemberProp) => x)), assignees: loginParser( - (x: PullRequest & GetTeamMemberProp) => x.assignees + (x: PullRequest & GetTeamMemberProp) => x.assignees, ).transform(extendEAsync((x: PullRequest & GetTeamMemberProp) => x)), labels: labelParser .transform(extendPropE()("labels")) @@ -363,7 +363,7 @@ const targetProjNumberSchema = _number return projectNumber; }), }) - .transform((x) => x.not) + .transform((x) => x.not), ); const targetProjSchema = targetProjNumberSchema @@ -387,7 +387,7 @@ const targetProjSchema = targetProjNumberSchema return r; }), }) - .transform((x) => x.only) + .transform((x) => x.only), ) .or( z @@ -400,7 +400,7 @@ const targetProjSchema = targetProjNumberSchema return r; }), }) - .transform((x) => x.reject) + .transform((x) => x.reject), ); const ruleSchema = payloadSchema @@ -411,7 +411,7 @@ const ruleSchema = payloadSchema .strict() .refine( (p) => typeof p.issue === "undefined" || typeof p.pr === "undefined", - "issue and pr cannot be specified together" + "issue and pr cannot be specified together", ) .refine((p) => { // issue rule diff --git a/src/github.ts b/src/github.ts index 48804fd..f11cc10 100644 --- a/src/github.ts +++ b/src/github.ts @@ -23,7 +23,7 @@ type User = Organization; async function fetchProjectIdCached( octokit: Octokit, login: string, - projectNumber: number + projectNumber: number, ): Promise<{ projectId: string; }> { @@ -50,7 +50,7 @@ async function fetchProjectIdCached( { login, projectNumber, - } + }, ); const projectId = projectV2.id; orgMap.set(projectNumber, projectId); @@ -78,7 +78,7 @@ async function fetchProjectIdCached( { login, projectNumber, - } + }, ); const projectId = projectV2.id; userMap.set(projectNumber, projectId); @@ -106,7 +106,7 @@ async function fetchProjectIdCached( { login, projectNumber, - } + }, ); } catch (error) { err = error; @@ -139,12 +139,12 @@ export async function addIssueToProject( octokit: Octokit, issueId: string, login: string, - projectNumber: number + projectNumber: number, ) { const { projectId } = await fetchProjectIdCached( octokit, login, - projectNumber + projectNumber, ); await octokit.graphql( `mutation($projectId: ID!, $contentId: ID!) { @@ -157,7 +157,7 @@ export async function addIssueToProject( { projectId, contentId: issueId, - } + }, ); } @@ -168,14 +168,14 @@ export interface GetTeamMemberProp { export async function getAllTeamMember( { octokit }: GetTeamMemberProp, organization: string, - teamSlug: string + teamSlug: string, ): Promise { const resp = await octokit.request( "GET /orgs/{org}/teams/{team_slug}/members", { org: organization, team_slug: teamSlug, - } + }, ); return resp.data ?? []; } diff --git a/src/index.ts b/src/index.ts index 7627761..0d3b7e1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -66,7 +66,7 @@ if ( const privateKey = fs.readFileSync( envInput.GITHUB_APP_PRIVATE_KEY_FILE, - "utf-8" + "utf-8", ); const rules = readAndParse(envInput.RULES_FILE, processRules)?.content ?? []; @@ -92,7 +92,7 @@ const app = new App({ async function determineDestination( webhookEvent: WebhookEventAction, - arg: MatchArg + arg: MatchArg, ): Promise> { const projectNumberSet = new Set(); @@ -190,7 +190,7 @@ const handleEvent = return await Promise.all( [...destinations].map(async (projectNumber) => { await addIssueToProject(w.octokit, nodeId, login, projectNumber); - }) + }), ); }; @@ -200,15 +200,15 @@ app.webhooks.on("issues.labeled", handleEvent(issuesEventPayloadToArg)); app.webhooks.on( "pull_request.opened", - handleEvent(pullRequestEventPayloadToArg) + handleEvent(pullRequestEventPayloadToArg), ); app.webhooks.on( "pull_request.assigned", - handleEvent(pullRequestEventPayloadToArg) + handleEvent(pullRequestEventPayloadToArg), ); app.webhooks.on( "pull_request.labeled", - handleEvent(pullRequestEventPayloadToArg) + handleEvent(pullRequestEventPayloadToArg), ); // eslint-disable-next-line @typescript-eslint/no-misused-promises diff --git a/src/types.ts b/src/types.ts index 35db26a..4e699bd 100644 --- a/src/types.ts +++ b/src/types.ts @@ -125,7 +125,7 @@ export type WebhookEventActionTarget = export const isTargetWebhookEvent = ( et: WebhookEventActionTarget, - event: WebhookEventAction + event: WebhookEventAction, ) => { switch (event.kind) { case WebhookEventKind.Issue: diff --git a/src/util.ts b/src/util.ts index 44d5869..e67d804 100644 --- a/src/util.ts +++ b/src/util.ts @@ -18,7 +18,7 @@ import { export const readAndParse = ( filepath: string | undefined, - parser: (format: EitherFormat, filepath: string, src: string) => T + parser: (format: EitherFormat, filepath: string, src: string) => T, ) => { if (typeof filepath === "undefined") { return null; @@ -37,7 +37,7 @@ export const readAndParse = ( default: assert( false, - "received unknown extension. please use `.json` or `.yaml` or `.yml`." + "received unknown extension. please use `.json` or `.yaml` or `.yml`.", ); } return parser(getFormat(formatKind), filepath, raw); @@ -47,7 +47,7 @@ export const renameProp = ( doc: YAML.Document.Parsed, path: ObjPath, oldProp: string, - newProp: string + newProp: string, ) => { const node = doc.getIn(path); assert(isMap(node)); @@ -65,7 +65,7 @@ export const doLogError = () => { emitter.on("semerror", ({ filepath, diags }: SemErrorPayload) => { const cat = path.basename(filepath); getLogger(cat).error( - "Some semantic errors occurred while validating config file. Below are reported:" + "Some semantic errors occurred while validating config file. Below are reported:", ); for (const diag of diags) { const _path = stringifyObjPath(diag.objPath); @@ -77,7 +77,7 @@ export const doLogError = () => { emitter.on("synerror", ({ filepath, diags }: SynErrorPayload) => { const cat = path.basename(filepath); getLogger(cat).error( - "Some syntactic errors occurred while validating config file. Below are reported:" + "Some syntactic errors occurred while validating config file. Below are reported:", ); for (const diag of diags) { const { range, msg } = diag;