diff --git a/packages/rest/src/transform/transformers/node-transformer.ts b/packages/rest/src/transform/transformers/node-transformer.ts index ef42beb..5ed9930 100644 --- a/packages/rest/src/transform/transformers/node-transformer.ts +++ b/packages/rest/src/transform/transformers/node-transformer.ts @@ -10,7 +10,7 @@ export abstract class NodeTransformer { context: ts.TransformationContext, ): ts.Node { if (ts.isClassDeclaration(node)) { - return ClassTransformer.transform(project, source, ts.getOriginalNode(node) as ts.ClassDeclaration, context); + return ClassTransformer.transform(project, source, node as ts.ClassDeclaration, context); } return node; diff --git a/packages/rest/src/transform/transformers/processors/chain-route-processor.ts b/packages/rest/src/transform/transformers/processors/chain-route-processor.ts index 6880cbe..662e8d2 100644 --- a/packages/rest/src/transform/transformers/processors/chain-route-processor.ts +++ b/packages/rest/src/transform/transformers/processors/chain-route-processor.ts @@ -101,7 +101,7 @@ export abstract class ChainRouteProcessor { ); ts.setTextRange(recreatedNode, node); - ts.setOriginalNode(recreatedNode, node); + // ts.setOriginalNode(recreatedNode, node); return recreatedNode; } @@ -126,7 +126,7 @@ export abstract class ChainRouteProcessor { } private static parseJSDoc(_project: Project, method: ts.MethodDeclaration): RouteTags { - const docs = ts.getJSDocCommentsAndTags(ts.getOriginalNode(method)); + const docs = ts.getJSDocCommentsAndTags(method); const topLevel = docs[0]; if (!topLevel) { return {}; @@ -239,8 +239,8 @@ export abstract class ChainRouteProcessor { methodDeclaration: ts.MethodDeclaration, routeIndex: RouteIndex, ): { type: ts.Type; node: ts.TypeNode } { - const wrapped = tsp.createWrappedNode(methodDeclaration, { typeChecker: project.checker }); - const returnedTypeNode = wrapped.getReturnTypeNode()?.compilerNode; + const returnedTypeNode = methodDeclaration.type; + if (returnedTypeNode == null) { throw new TransformationError( "Endpoint is missing an explicit return type. Explicit return types are required for all endpoints to promote contract stability", diff --git a/packages/rest/src/transform/transformers/processors/controller-processor.ts b/packages/rest/src/transform/transformers/processors/controller-processor.ts index 7fc13ad..cfcc2a0 100644 --- a/packages/rest/src/transform/transformers/processors/controller-processor.ts +++ b/packages/rest/src/transform/transformers/processors/controller-processor.ts @@ -39,7 +39,7 @@ export abstract class ControllerProcessor { ); ts.setTextRange(recreatedNode, node); - ts.setOriginalNode(recreatedNode, node); + // ts.setOriginalNode(recreatedNode, node); return recreatedNode; } diff --git a/packages/test/src/controller.ts b/packages/test/src/controller.ts index 51f3c11..e9126fd 100644 --- a/packages/test/src/controller.ts +++ b/packages/test/src/controller.ts @@ -161,7 +161,7 @@ export class TestController { /** * Cool get route */ - @GetChain("/route/{cool}") + @GetChain("/route/:cool") public getRoute(chain: Nornir): Nornir { return chain .use(input => { @@ -188,7 +188,7 @@ export class TestController { * @deprecated * @operationId coolRoute */ - @PostChain("/route/{cool}") + @PostChain("/route/:cool") public postRoute( chain: Nornir, ): Nornir }> {