powertools-lambda-typescript icon indicating copy to clipboard operation
powertools-lambda-typescript copied to clipboard

Bug (Metrics): unable to build with tsc when not using @middy/core

Open rreddypally opened this issue 1 year ago • 0 comments

Bug description

The code doesn't compile using tsc when using the Metrics module without middy.

Expected Behavior

Should be able to use Metrics without the need to import middy when its not used. Unlike Logger importing the submodule via import { Metrics } from '@aws-lambda-powertools/metrics/lib/Metrics'; fails to compile too.

Current Behavior

Middy is required atleast as the dev dependency while compiling with tsc. This is not a problem when esbuild or ts-node is used.

Possible Solution

Steps to Reproduce

Steps:

  1. npm install and import Metrics using import { Metrics } from "@aws-lambda-powertools/metrics";
  2. Build project using tsc
  3. Expect this error Cannot find module '@middy/core' or its corresponding type declarations.

package.json

{
  "scripts": {
    "build": "npm i && tsc metrics-demo.ts"
  },
  "dependencies": {
    "@aws-lambda-powertools/metrics": "1.2.0",
    "@types/aws-lambda": "8.10.101"
    
  },
  "devDependencies": {
    "typescript": "4.7.4"
  }
}

metrics-demo

import { Metrics } from '@aws-lambda-powertools/metrics/lib/Metrics';

const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' });

tsconfig.json

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "target": "ES2021",
        "module": "CommonJS"
    }
}

Environment

  • Powertools version used: 1.2.1
  • Packaging format (Layers, npm): npm
  • AWS Lambda function runtime: node16
  • Debugging logs: n/a

Related issues, RFCs

https://github.com/awslabs/aws-lambda-powertools-typescript/issues/1068 https://github.com/awslabs/aws-lambda-powertools-typescript/issues/1080

rreddypally avatar Aug 28 '22 09:08 rreddypally