From bd57325911b9dd0fdedb87ee16d58958a7793b0b Mon Sep 17 00:00:00 2001 From: Petri Lehtinen Date: Mon, 11 Jan 2021 21:07:30 +0200 Subject: [PATCH] prettier: Use the default setting for arrowParens --- .prettierrc.json | 1 - package.json | 3 ++- src/cli.ts | 4 ++-- src/generate.ts | 30 ++++++++++++++++-------------- tests/test-routes.ts | 10 +++++----- 5 files changed, 25 insertions(+), 23 deletions(-) diff --git a/.prettierrc.json b/.prettierrc.json index 6cf95074..47cda19c 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,5 +1,4 @@ { - "arrowParens": "avoid", "semi": false, "singleQuote": true, "trailingComma": "es5", diff --git a/package.json b/package.json index 073375e0..0f741fa5 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ }, "scripts": { "build": "tsc", - "lint": "eslint '**/*.ts'", + "lint": "eslint '**/*.ts' && prettier --check \"**/*.{json,md}\"", + "lint:fix": "eslint --fix '**/*.ts' && prettier --write '**/*.{json,md}'", "test": "jest", "prepublishOnly": "yarn build" }, diff --git a/src/cli.ts b/src/cli.ts index 95d4d76c..6536b1b0 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -23,11 +23,11 @@ const outputFileName = (sourceFileName: string, ext: string): string => const main = () => { const args = parseArgs() - const sourceFiles = args._.map(x => x.toString()) + const sourceFiles = args._.map((x) => x.toString()) const ext = args.format === 'ts' ? '.openapi.ts' : '.json' const results = generate(sourceFiles, { strict: true }, { log }).map( - result => ({ + (result) => ({ ...result, outputFileName: outputFileName(result.fileName, ext), }) diff --git a/src/generate.ts b/src/generate.ts index afd25343..b2c24032 100644 --- a/src/generate.ts +++ b/src/generate.ts @@ -41,7 +41,7 @@ export const generate = ( if (!fileNames.includes(sourceFile.fileName)) continue if (sourceFile.isDeclarationFile) continue - ts.forEachChild(sourceFile, node => { + ts.forEachChild(sourceFile, (node) => { const paths = visit(context(checker, sourceFile, log, node), node) if (paths) { result.push({ fileName: sourceFile.fileName, paths }) @@ -63,7 +63,7 @@ const visit = ( const paths: OpenAPIV3.PathsObject = {} - argSymbols.forEach(symbol => { + argSymbols.forEach((symbol) => { const location = symbol.valueDeclaration const routeDeclaration = getRouteDeclaration( withLocation(ctx, location), @@ -92,7 +92,7 @@ const getRouterCallArgSymbols = ( const argSymbols = args .filter(ts.isIdentifier) - .map(arg => ctx.checker.getSymbolAtLocation(arg)) + .map((arg) => ctx.checker.getSymbolAtLocation(arg)) .filter(isDefined) if (argSymbols.length !== args.length) return @@ -280,7 +280,7 @@ const getResponseTypes = ( const responseDef = getResponseDefinition(ctx, responseType) if (responseDef) result[responseDef.status] = responseDef.response } else if (responseType.isUnion()) { - responseType.types.forEach(type => { + responseType.types.forEach((type) => { const responseDef = getResponseDefinition(ctx, type) if (responseDef) result[responseDef.status] = responseDef.response }) @@ -368,7 +368,7 @@ const typeToParameters = ( if (!type) return [] const props = ctx.checker.getPropertiesOfType(type) - return props.map(prop => ({ + return props.map((prop) => ({ name: prop.name, in: in_, required: in_ === 'path' ? true : !isOptional(prop), @@ -382,7 +382,7 @@ interface Headers { const typeToHeaders = (ctx: Context, type: ts.Type): Headers => { const result: Headers = {} const props = ctx.checker.getPropertiesOfType(type) - props.forEach(prop => { + props.forEach((prop) => { result[prop.name] = { required: !isOptional(prop), } @@ -401,13 +401,13 @@ const typeToSchema = ( let elems = type.types if (optional) { - elems = type.types.filter(elem => !isUndefinedType(elem)) + elems = type.types.filter((elem) => !isUndefinedType(elem)) } if (elems.some(isNullType)) { // One of the union elements is null nullable = { nullable: true } - elems = elems.filter(elem => !isNullType(elem)) + elems = elems.filter((elem) => !isNullType(elem)) } if (elems.every(isBooleanLiteralType)) { @@ -417,20 +417,20 @@ const typeToSchema = ( // All elements are number literals => enum return { type: 'number', - enum: elems.map(elem => elem.value), + enum: elems.map((elem) => elem.value), ...nullable, } } else if (elems.every(isStringLiteralType)) { // All elements are string literals => enum return { type: 'string', - enum: elems.map(elem => elem.value), + enum: elems.map((elem) => elem.value), ...nullable, } } else if (elems.length >= 2) { // 2 or more types remain => anyOf return { - anyOf: elems.map(elem => typeToSchema(ctx, elem)).filter(isDefined), + anyOf: elems.map((elem) => typeToSchema(ctx, elem)).filter(isDefined), ...nullable, } } else { @@ -442,16 +442,18 @@ const typeToSchema = ( if ( isObjectType(type) || - (type.isIntersection() && type.types.every(part => isObjectType(part))) + (type.isIntersection() && type.types.every((part) => isObjectType(part))) ) { const props = ctx.checker.getPropertiesOfType(type) return { type: 'object', - required: props.filter(prop => !isOptional(prop)).map(prop => prop.name), + required: props + .filter((prop) => !isOptional(prop)) + .map((prop) => prop.name), ...nullable, properties: Object.fromEntries( props - .map(prop => { + .map((prop) => { const propType = ctx.checker.getTypeOfSymbolAtLocation( prop, ctx.location diff --git a/tests/test-routes.ts b/tests/test-routes.ts index 16d6b892..fb82d73e 100644 --- a/tests/test-routes.ts +++ b/tests/test-routes.ts @@ -42,7 +42,7 @@ const requestBody: Route< > = route .post('/request-body') .use(Parser.body(codec)) - .handler(async request => { + .handler(async (request) => { if (request.body.optionalBool) { return Response.ok(request.body.str) } else { @@ -73,7 +73,7 @@ const noExplicitRouteType = route const unusedRequest: Route> = route .get('/unused-request') // eslint-disable-next-line @typescript-eslint/no-unused-vars - .handler(async request => { + .handler(async (request) => { return Response.ok('xyzzy') }) @@ -86,14 +86,14 @@ const queryCodec = t.intersection([ const query: Route | Response.BadRequest> = route .get('/query') .use(Parser.query(queryCodec)) - .handler(async request => { + .handler(async (request) => { return Response.ok(request.query.str) }) // Route params const routeParams: Route> = route .get('/user/:id(int)') - .handler(async request => { + .handler(async (request) => { return Response.ok({ id: request.routeParams.id }) }) @@ -105,7 +105,7 @@ const brandedRequestBody: Route< > = route .post('/branded-request-body') .use(Parser.body(brandedCodec)) - .handler(async request => { + .handler(async (request) => { return Response.ok(request.body.param) })