From 94d0730e6c71be0dedfa7795079af70f743d4a01 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 14:16:28 +0200 Subject: [PATCH 01/15] feat(logger): add esm build output --- .gitignore | 3 +- packages/logger/README.md | 36 +++++++++---------- packages/logger/package.json | 24 ++++++++++--- .../logger/scripts/buildExportPackageJson.js | 19 ++++++++++ packages/logger/src/Logger.ts | 16 ++++++--- .../src/config/EnvironmentVariablesService.ts | 2 +- packages/logger/src/config/index.ts | 4 +-- packages/logger/src/formatter/LogFormatter.ts | 6 ++-- .../src/formatter/LogFormatterInterface.ts | 4 +-- .../src/formatter/PowertoolsLogFormatter.ts | 8 ++--- packages/logger/src/formatter/index.ts | 6 ++-- packages/logger/src/index.ts | 6 ++-- packages/logger/src/log/LogItem.ts | 4 +-- packages/logger/src/log/LogItemInterface.ts | 2 +- packages/logger/src/log/index.ts | 4 +-- packages/logger/src/middleware/index.ts | 2 +- packages/logger/src/middleware/middy.ts | 4 +-- packages/logger/src/types/Logger.ts | 6 ++-- .../logger/src/types/formats/PowertoolsLog.ts | 2 +- packages/logger/src/types/formats/index.ts | 2 +- packages/logger/src/types/index.ts | 4 +-- packages/logger/tests/tsconfig.json | 17 ++++----- packages/logger/tsconfig.esm.json | 9 +++++ packages/logger/tsconfig.json | 16 ++++----- packages/logger/typedoc.json | 7 ++-- tsconfig.cjs.json | 3 ++ tsconfig.esm.json | 8 +++++ 27 files changed, 139 insertions(+), 85 deletions(-) create mode 100644 packages/logger/scripts/buildExportPackageJson.js create mode 100644 packages/logger/tsconfig.esm.json create mode 100644 tsconfig.cjs.json create mode 100644 tsconfig.esm.json diff --git a/.gitignore b/.gitignore index 3f1196546a..82e57f76bd 100644 --- a/.gitignore +++ b/.gitignore @@ -49,4 +49,5 @@ site tmp # TS build files -tsconfig.tsbuildinfo \ No newline at end of file +tsconfig.tsbuildinfo +tsconfig.esm.tsbuildinfo \ No newline at end of file diff --git a/packages/logger/README.md b/packages/logger/README.md index d895f34c94..6c209e2246 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -27,10 +27,10 @@ You can use the library in both TypeScript and JavaScript code bases. ## Features -* **[Tracer](https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions -* **[Logger](https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context -* **[Metrics](https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) -* **[Parameters](https://docs.powertools.aws.dev/lambda-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM, Secrets Manager, AppConfig, and DynamoDB +- **[Tracer](https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions +- **[Logger](https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context +- **[Metrics](https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) +- **[Parameters](https://docs.powertools.aws.dev/lambda-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM, Secrets Manager, AppConfig, and DynamoDB ## Getting started @@ -38,7 +38,7 @@ Find the complete project's [documentation here](https://docs.powertools.aws.dev ### Installation -The Powertools for AWS Lambda (TypeScript) utilities follow a modular approach, similar to the official [AWS SDK v3 for JavaScript](https://github.com/aws/aws-sdk-js-v3). +The Powertools for AWS Lambda (TypeScript) utilities follow a modular approach, similar to the official [AWS SDK v3 for JavaScript](https://github.com/aws/aws-sdk-js-v3). Each TypeScript utility is installed as standalone npm package. @@ -60,8 +60,8 @@ Or refer to the installation guide of each utility: ### Examples -* [CDK](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/cdk) -* [SAM](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/sam) +- [CDK](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/cdk) +- [SAM](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/sam) ### Serverless TypeScript Demo application @@ -79,8 +79,8 @@ Help us prioritize upcoming functionalities or utilities by [upvoting existing R ## Connect -* **Powertools for AWS Lambda on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)** -* **Email**: aws-lambda-powertools-feedback@amazon.com +- **Powertools for AWS Lambda on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)** +- **Email**: aws-lambda-powertools-feedback@amazon.com ## How to support Powertools for AWS Lambda (TypeScript)? @@ -90,15 +90,15 @@ Knowing which companies are using this library is important to help prioritize t The following companies, among others, use Powertools: -* [Hashnode](https://hashnode.com/) -* [Trek10](https://www.trek10.com/) -* [Elva](https://elva-group.com) -* [globaldatanet](https://globaldatanet.com/) -* [Bailey Nelson](https://www.baileynelson.com.au) -* [Perfect Post](https://www.perfectpost.fr) -* [Sennder](https://sennder.com/) -* [Certible](https://www.certible.com/) -* [tecRacer GmbH & Co. KG](https://www.tecracer.com/) +- [Hashnode](https://hashnode.com/) +- [Trek10](https://www.trek10.com/) +- [Elva](https://elva-group.com) +- [globaldatanet](https://globaldatanet.com/) +- [Bailey Nelson](https://www.baileynelson.com.au) +- [Perfect Post](https://www.perfectpost.fr) +- [Sennder](https://sennder.com/) +- [Certible](https://www.certible.com/) +- [tecRacer GmbH & Co. KG](https://www.tecracer.com/) ### Sharing your work diff --git a/packages/logger/package.json b/packages/logger/package.json index 787115f387..0d58a3f909 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -16,10 +16,13 @@ "test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e", "test:e2e": "jest --group=e2e", "watch": "jest --watch --group=unit", - "build": "tsc --build --force", + "build:cjs": "tsc --build --force", + "build:esm": "tsc --project tsconfig.esm.json", + "build": "npm run build:esm & npm run build:cjs", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", "prebuild": "rimraf ./lib", + "postbuild": "node ./scripts/buildExportPackageJson.js", "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { @@ -27,8 +30,21 @@ }, "homepage": "https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/logger#readme", "license": "MIT-0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", + "type": "module", + "exports": { + "node": { + "require": { + "types": "./lib/index.d.ts", + "default": "./lib/cjs/index.js" + }, + "import": { + "types": "./lib/index.d.ts", + "default": "./lib/esm/index.js" + } + } + }, + "types": "./lib/cjs/index.d.ts", + "main": "./lib/cjs/index.js", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", "@types/lodash.merge": "^4.6.7" @@ -64,4 +80,4 @@ "serverless", "nodejs" ] -} \ No newline at end of file +} diff --git a/packages/logger/scripts/buildExportPackageJson.js b/packages/logger/scripts/buildExportPackageJson.js new file mode 100644 index 0000000000..a2b0a2de60 --- /dev/null +++ b/packages/logger/scripts/buildExportPackageJson.js @@ -0,0 +1,19 @@ +import { writeFileSync } from 'node:fs'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +const cjsPackageJson = '{ "type": "commonjs" }'; +writeFileSync( + join(__dirname, '..', 'lib', 'cjs', 'package.json'), + cjsPackageJson, + 'utf-8' +); + +const esmPackageJson = '{ "type": "module" }'; +writeFileSync( + join(__dirname, '..', 'lib', 'esm', 'package.json'), + esmPackageJson, + 'utf-8' +); diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index f2973119a0..f825af8d66 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -2,11 +2,17 @@ import { randomInt } from 'node:crypto'; import { Console } from 'node:console'; import type { Context, Handler } from 'aws-lambda'; import { Utility } from '@aws-lambda-powertools/commons'; -import { LogFormatterInterface, PowertoolsLogFormatter } from './formatter'; -import { LogItem } from './log'; +import { + LogFormatterInterface, + PowertoolsLogFormatter, +} from './formatter/index.js'; +import { LogItem } from './log/index.js'; import merge from 'lodash.merge'; -import { ConfigServiceInterface, EnvironmentVariablesService } from './config'; -import { LogJsonIndent } from './types'; +import { + ConfigServiceInterface, + EnvironmentVariablesService, +} from './config/index.js'; +import { LogJsonIndent } from './types/index.js'; import type { ClassThatLogs, Environment, @@ -20,7 +26,7 @@ import type { LogLevelThresholds, PowertoolLogData, HandlerOptions, -} from './types'; +} from './types/index.js'; /** * ## Intro diff --git a/packages/logger/src/config/EnvironmentVariablesService.ts b/packages/logger/src/config/EnvironmentVariablesService.ts index 7b62cabaa4..71b0dabab9 100644 --- a/packages/logger/src/config/EnvironmentVariablesService.ts +++ b/packages/logger/src/config/EnvironmentVariablesService.ts @@ -1,4 +1,4 @@ -import { ConfigServiceInterface } from './ConfigServiceInterface'; +import { ConfigServiceInterface } from './ConfigServiceInterface.js'; import { EnvironmentVariablesService as CommonEnvironmentVariablesService } from '@aws-lambda-powertools/commons'; /** diff --git a/packages/logger/src/config/index.ts b/packages/logger/src/config/index.ts index 11fd37677e..b2c0ee3fbc 100644 --- a/packages/logger/src/config/index.ts +++ b/packages/logger/src/config/index.ts @@ -1,2 +1,2 @@ -export * from './ConfigServiceInterface'; -export * from './EnvironmentVariablesService'; +export * from './ConfigServiceInterface.js'; +export * from './EnvironmentVariablesService.js'; diff --git a/packages/logger/src/formatter/LogFormatter.ts b/packages/logger/src/formatter/LogFormatter.ts index 2106d6bc73..e7a6b083f2 100644 --- a/packages/logger/src/formatter/LogFormatter.ts +++ b/packages/logger/src/formatter/LogFormatter.ts @@ -1,6 +1,6 @@ -import { LogFormatterInterface } from '.'; -import { LogAttributes, UnformattedAttributes } from '../types'; -import { LogItem } from '../log'; +import { LogFormatterInterface } from './index.js'; +import { LogAttributes, UnformattedAttributes } from '../types/index.js'; +import { LogItem } from '../log/index.js'; /** * Typeguard to monkey patch Error to add a cause property. diff --git a/packages/logger/src/formatter/LogFormatterInterface.ts b/packages/logger/src/formatter/LogFormatterInterface.ts index 0fe1dd9909..a06eee4133 100644 --- a/packages/logger/src/formatter/LogFormatterInterface.ts +++ b/packages/logger/src/formatter/LogFormatterInterface.ts @@ -1,5 +1,5 @@ -import { LogAttributes, UnformattedAttributes } from '../types'; -import { LogItem } from '../log'; +import { LogAttributes, UnformattedAttributes } from '../types/index.js'; +import { LogItem } from '../log/index.js'; /** * @interface diff --git a/packages/logger/src/formatter/PowertoolsLogFormatter.ts b/packages/logger/src/formatter/PowertoolsLogFormatter.ts index 0460ed48a4..e64e92d5ee 100644 --- a/packages/logger/src/formatter/PowertoolsLogFormatter.ts +++ b/packages/logger/src/formatter/PowertoolsLogFormatter.ts @@ -1,7 +1,7 @@ -import { LogFormatter } from '.'; -import { LogAttributes, UnformattedAttributes } from '../types'; -import { PowertoolsLog } from '../types/formats'; -import { LogItem } from '../log'; +import { LogFormatter } from './index.js'; +import { LogAttributes, UnformattedAttributes } from '../types/index.js'; +import { PowertoolsLog } from '../types/formats/index.js'; +import { LogItem } from '../log/index.js'; /** * This class is used to transform a set of log key-value pairs diff --git a/packages/logger/src/formatter/index.ts b/packages/logger/src/formatter/index.ts index ef5d7b16d8..64dda701f7 100644 --- a/packages/logger/src/formatter/index.ts +++ b/packages/logger/src/formatter/index.ts @@ -1,3 +1,3 @@ -export * from './LogFormatter'; -export * from './LogFormatterInterface'; -export * from './PowertoolsLogFormatter'; +export * from './LogFormatter.js'; +export * from './LogFormatterInterface.js'; +export * from './PowertoolsLogFormatter.js'; diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index 43bcdb04e0..fa9b688f64 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -1,3 +1,3 @@ -export * from './Logger'; -export * from './middleware'; -export * from './formatter'; +export * from './Logger.js'; +export * from './middleware/index.js'; +export * from './formatter/index.js'; diff --git a/packages/logger/src/log/LogItem.ts b/packages/logger/src/log/LogItem.ts index 00a66ec786..777cda649f 100644 --- a/packages/logger/src/log/LogItem.ts +++ b/packages/logger/src/log/LogItem.ts @@ -1,6 +1,6 @@ import merge from 'lodash.merge'; -import { LogItemInterface } from '.'; -import { LogAttributes } from '../types'; +import { LogItemInterface } from './index.js'; +import { LogAttributes } from '../types/index.js'; class LogItem implements LogItemInterface { private attributes: LogAttributes = {}; diff --git a/packages/logger/src/log/LogItemInterface.ts b/packages/logger/src/log/LogItemInterface.ts index cb6113b9d5..e1afaa4a52 100644 --- a/packages/logger/src/log/LogItemInterface.ts +++ b/packages/logger/src/log/LogItemInterface.ts @@ -1,4 +1,4 @@ -import { LogAttributes } from '../types'; +import { LogAttributes } from '../types/index.js'; interface LogItemInterface { addAttributes(attributes: LogAttributes): void; diff --git a/packages/logger/src/log/index.ts b/packages/logger/src/log/index.ts index 6a3bee0c47..ff4f686683 100644 --- a/packages/logger/src/log/index.ts +++ b/packages/logger/src/log/index.ts @@ -1,2 +1,2 @@ -export * from './LogItem'; -export * from './LogItemInterface'; +export * from './LogItem.js'; +export * from './LogItemInterface.js'; diff --git a/packages/logger/src/middleware/index.ts b/packages/logger/src/middleware/index.ts index cfe9900b37..5b7583438e 100644 --- a/packages/logger/src/middleware/index.ts +++ b/packages/logger/src/middleware/index.ts @@ -1 +1 @@ -export * from './middy'; +export * from './middy.js'; diff --git a/packages/logger/src/middleware/middy.ts b/packages/logger/src/middleware/middy.ts index f68ea4a8e6..c84aef3203 100644 --- a/packages/logger/src/middleware/middy.ts +++ b/packages/logger/src/middleware/middy.ts @@ -1,5 +1,5 @@ -import { Logger } from '../Logger'; -import { HandlerOptions, LogAttributes } from '../types'; +import { Logger } from '../Logger.js'; +import { HandlerOptions, LogAttributes } from '../types/index.js'; import { LOGGER_KEY } from '@aws-lambda-powertools/commons/lib/middleware'; import type { MiddlewareLikeObj, diff --git a/packages/logger/src/types/Logger.ts b/packages/logger/src/types/Logger.ts index d5d464fe17..c0c6edc9b4 100644 --- a/packages/logger/src/types/Logger.ts +++ b/packages/logger/src/types/Logger.ts @@ -4,14 +4,14 @@ import { SyncHandler, } from '@aws-lambda-powertools/commons'; import { Handler } from 'aws-lambda'; -import { ConfigServiceInterface } from '../config'; -import { LogFormatterInterface } from '../formatter'; +import { ConfigServiceInterface } from '../config/index.js'; +import { LogFormatterInterface } from '../formatter/index.js'; import { Environment, LogAttributes, LogAttributesWithMessage, LogLevel, -} from './Log'; +} from './Log.js'; type ClassThatLogs = { [key in Exclude, 'silent'>]: ( diff --git a/packages/logger/src/types/formats/PowertoolsLog.ts b/packages/logger/src/types/formats/PowertoolsLog.ts index fa360fef59..7af2e1cd25 100644 --- a/packages/logger/src/types/formats/PowertoolsLog.ts +++ b/packages/logger/src/types/formats/PowertoolsLog.ts @@ -1,4 +1,4 @@ -import type { LogAttributes, LogLevel } from '..'; +import type { LogAttributes, LogLevel } from '../index.js'; type PowertoolsLog = LogAttributes & { /** diff --git a/packages/logger/src/types/formats/index.ts b/packages/logger/src/types/formats/index.ts index 5a828a385f..e7bc861c9d 100644 --- a/packages/logger/src/types/formats/index.ts +++ b/packages/logger/src/types/formats/index.ts @@ -1 +1 @@ -export * from './PowertoolsLog'; +export * from './PowertoolsLog.js'; diff --git a/packages/logger/src/types/index.ts b/packages/logger/src/types/index.ts index dc74795384..cf795baf28 100644 --- a/packages/logger/src/types/index.ts +++ b/packages/logger/src/types/index.ts @@ -1,2 +1,2 @@ -export * from './Log'; -export * from './Logger'; +export * from './Log.js'; +export * from './Logger.js'; diff --git a/packages/logger/tests/tsconfig.json b/packages/logger/tests/tsconfig.json index 5654b3e15f..45ba862a85 100644 --- a/packages/logger/tests/tsconfig.json +++ b/packages/logger/tests/tsconfig.json @@ -1,11 +1,8 @@ { - "extends": "../tsconfig.json", - "compilerOptions": { - "rootDir": "../", - "noEmit": true - }, - "include": [ - "../src/**/*", - "./**/*", - ] -} \ No newline at end of file + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "../", + "noEmit": true + }, + "include": ["../src/**/*", "./**/*"] +} diff --git a/packages/logger/tsconfig.esm.json b/packages/logger/tsconfig.esm.json new file mode 100644 index 0000000000..a78be21539 --- /dev/null +++ b/packages/logger/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.esm.json", + "compilerOptions": { + "baseUrl": ".", + "outDir": "./lib/esm", + "rootDir": "./src" + }, + "include": ["./src/**/*"] +} diff --git a/packages/logger/tsconfig.json b/packages/logger/tsconfig.json index 1cb9d72773..6b64decffb 100644 --- a/packages/logger/tsconfig.json +++ b/packages/logger/tsconfig.json @@ -1,10 +1,8 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./lib", - "rootDir": "./src", - }, - "include": [ - "./src/**/*" - ], -} \ No newline at end of file + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib/cjs/", + "rootDir": "./src" + }, + "include": ["./src/**/*"] +} diff --git a/packages/logger/typedoc.json b/packages/logger/typedoc.json index 3a1fad0dcf..bf0eba2a17 100644 --- a/packages/logger/typedoc.json +++ b/packages/logger/typedoc.json @@ -1,8 +1,5 @@ { "extends": ["../../typedoc.base.json"], - "entryPoints": [ - "./src/index.ts", - "./src/types" - ], + "entryPoints": ["./src/index.ts", "./src/types"], "readme": "README.md" -} \ No newline at end of file +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 0000000000..fc8520e737 --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,3 @@ +{ + "extends": "./tsconfig.json" +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 0000000000..4c11bfc0ab --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", // TODO: experiment with bundler & esnext + "noEmitHelpers": true /* Disable generating custom helper functions like '__extends' in compiled output. */ + } +} From 3bc0f1fab34b6766a1aa6d4dd17d8fca7dac6be6 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 15:17:03 +0200 Subject: [PATCH 02/15] fix(Logger): Remove barrel files update references --- packages/logger/src/Logger.ts | 48 +++++++++---------- packages/logger/src/config/index.ts | 2 - packages/logger/src/formatter/LogFormatter.ts | 7 +-- .../src/formatter/LogFormatterInterface.ts | 5 +- .../src/formatter/PowertoolsLogFormatter.ts | 9 ++-- packages/logger/src/formatter/index.ts | 3 -- packages/logger/src/index.ts | 8 ++-- packages/logger/src/log/LogItem.ts | 8 ++-- packages/logger/src/log/LogItemInterface.ts | 2 +- packages/logger/src/log/index.ts | 2 - packages/logger/src/middleware/index.ts | 1 - packages/logger/src/middleware/middy.ts | 3 +- packages/logger/src/types/Logger.ts | 4 +- .../logger/src/types/formats/PowertoolsLog.ts | 2 +- packages/logger/src/types/formats/index.ts | 1 - packages/logger/src/types/index.ts | 2 - packages/logger/tests/unit/Logger.test.ts | 16 +++---- .../EnvironmentVariablesService.test.ts | 2 +- .../formatter/PowertoolsLogFormatter.test.ts | 5 +- .../tests/unit/middleware/middy.test.ts | 14 +++--- 20 files changed, 68 insertions(+), 76 deletions(-) delete mode 100644 packages/logger/src/config/index.ts delete mode 100644 packages/logger/src/formatter/index.ts delete mode 100644 packages/logger/src/log/index.ts delete mode 100644 packages/logger/src/middleware/index.ts delete mode 100644 packages/logger/src/types/formats/index.ts delete mode 100644 packages/logger/src/types/index.ts diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index f825af8d66..087cd63a1f 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -2,32 +2,29 @@ import { randomInt } from 'node:crypto'; import { Console } from 'node:console'; import type { Context, Handler } from 'aws-lambda'; import { Utility } from '@aws-lambda-powertools/commons'; -import { - LogFormatterInterface, - PowertoolsLogFormatter, -} from './formatter/index.js'; -import { LogItem } from './log/index.js'; -import merge from 'lodash.merge'; -import { - ConfigServiceInterface, - EnvironmentVariablesService, -} from './config/index.js'; -import { LogJsonIndent } from './types/index.js'; +import { PowertoolsLogFormatter } from './formatter/PowertoolsLogFormatter.js'; +import { LogFormatterInterface } from './formatter/LogFormatterInterface.js'; +import { LogItem } from './log/LogItem.js'; +//import merge from 'lodash.merge'; +import { ConfigServiceInterface } from './config/ConfigServiceInterface.js'; +import { EnvironmentVariablesService } from './config/EnvironmentVariablesService.js'; +import { LogJsonIndent } from './types/Logger.js'; import type { - ClassThatLogs, Environment, + LogAttributes, + LogLevel, + LogLevelThresholds, +} from './types/Log.js'; +import type { + ClassThatLogs, HandlerMethodDecorator, LambdaFunctionContext, - LogAttributes, ConstructorOptions, LogItemExtraInput, LogItemMessage, - LogLevel, - LogLevelThresholds, PowertoolLogData, HandlerOptions, -} from './types/index.js'; - +} from './types/Logger.js'; /** * ## Intro * The Logger utility provides an opinionated logger with output structured as JSON. @@ -216,7 +213,7 @@ class Logger extends Utility implements ClassThatLogs { * @returns {void} */ public addPersistentLogAttributes(attributes?: LogAttributes): void { - merge(this.persistentLogAttributes, attributes); + Object.assign(this.persistentLogAttributes!, attributes); } /** @@ -244,7 +241,7 @@ class Logger extends Utility implements ClassThatLogs { }; const parentsPowertoolsLogData = this.getPowertoolLogData(); const childLogger = this.createLogger( - merge(parentsOptions, parentsPowertoolsLogData, options) + Object.assign(parentsOptions, parentsPowertoolsLogData, options) ); const parentsPersistentLogAttributes = this.getPersistentLogAttributes(); @@ -602,7 +599,7 @@ class Logger extends Utility implements ClassThatLogs { ...attributesArray: Array> ): void { attributesArray.forEach((attributes: Partial) => { - merge(this.powertoolLogData, attributes); + Object.assign(this.powertoolLogData, attributes); }); } @@ -623,7 +620,7 @@ class Logger extends Utility implements ClassThatLogs { extraInput: LogItemExtraInput ): LogItem { // TODO: this method's logic is hard to understand, there is an opportunity here to simplify this logic. - const unformattedBaseAttributes = merge( + const unformattedBaseAttributes = Object.assign( { logLevel: this.getLogLevelNameFromNumber(logLevel), timestamp: new Date(), @@ -634,12 +631,12 @@ class Logger extends Utility implements ClassThatLogs { ); let additionalLogAttributes: LogAttributes = {}; - additionalLogAttributes = merge( + additionalLogAttributes = Object.assign( additionalLogAttributes, this.getPersistentLogAttributes() ); if (typeof input !== 'string') { - additionalLogAttributes = merge(additionalLogAttributes, input); + additionalLogAttributes = Object.assign(additionalLogAttributes, input); } extraInput.forEach((item: Error | LogAttributes | string) => { const attributes: LogAttributes = @@ -649,7 +646,10 @@ class Logger extends Utility implements ClassThatLogs { ? { extra: item } : item; - additionalLogAttributes = merge(additionalLogAttributes, attributes); + additionalLogAttributes = Object.assign( + additionalLogAttributes, + attributes + ); }); const logItem = this.getLogFormatter().formatAttributes( diff --git a/packages/logger/src/config/index.ts b/packages/logger/src/config/index.ts deleted file mode 100644 index b2c0ee3fbc..0000000000 --- a/packages/logger/src/config/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ConfigServiceInterface.js'; -export * from './EnvironmentVariablesService.js'; diff --git a/packages/logger/src/formatter/LogFormatter.ts b/packages/logger/src/formatter/LogFormatter.ts index e7a6b083f2..ccdf8b67b3 100644 --- a/packages/logger/src/formatter/LogFormatter.ts +++ b/packages/logger/src/formatter/LogFormatter.ts @@ -1,6 +1,7 @@ -import { LogFormatterInterface } from './index.js'; -import { LogAttributes, UnformattedAttributes } from '../types/index.js'; -import { LogItem } from '../log/index.js'; +import { LogFormatterInterface } from './LogFormatterInterface.js'; +import { LogAttributes } from '../types/Log.js'; +import { UnformattedAttributes } from '../types/Logger.js'; +import { LogItem } from '../log/LogItem.js'; /** * Typeguard to monkey patch Error to add a cause property. diff --git a/packages/logger/src/formatter/LogFormatterInterface.ts b/packages/logger/src/formatter/LogFormatterInterface.ts index a06eee4133..49d35154c3 100644 --- a/packages/logger/src/formatter/LogFormatterInterface.ts +++ b/packages/logger/src/formatter/LogFormatterInterface.ts @@ -1,5 +1,6 @@ -import { LogAttributes, UnformattedAttributes } from '../types/index.js'; -import { LogItem } from '../log/index.js'; +import { LogAttributes } from '../types/Log.js'; +import { UnformattedAttributes } from '../types/Logger.js'; +import { LogItem } from '../log/LogItem.js'; /** * @interface diff --git a/packages/logger/src/formatter/PowertoolsLogFormatter.ts b/packages/logger/src/formatter/PowertoolsLogFormatter.ts index e64e92d5ee..f88630bf2a 100644 --- a/packages/logger/src/formatter/PowertoolsLogFormatter.ts +++ b/packages/logger/src/formatter/PowertoolsLogFormatter.ts @@ -1,7 +1,8 @@ -import { LogFormatter } from './index.js'; -import { LogAttributes, UnformattedAttributes } from '../types/index.js'; -import { PowertoolsLog } from '../types/formats/index.js'; -import { LogItem } from '../log/index.js'; +import { LogFormatter } from './LogFormatter.js'; +import { LogAttributes } from '../types/Log.js'; +import { UnformattedAttributes } from '../types/Logger.js'; +import { PowertoolsLog } from '../types/formats/PowertoolsLog.js'; +import { LogItem } from '../log/LogItem.js'; /** * This class is used to transform a set of log key-value pairs diff --git a/packages/logger/src/formatter/index.ts b/packages/logger/src/formatter/index.ts deleted file mode 100644 index 64dda701f7..0000000000 --- a/packages/logger/src/formatter/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './LogFormatter.js'; -export * from './LogFormatterInterface.js'; -export * from './PowertoolsLogFormatter.js'; diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index fa9b688f64..dfedabfdff 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -1,3 +1,5 @@ -export * from './Logger.js'; -export * from './middleware/index.js'; -export * from './formatter/index.js'; +export { Logger } from './Logger.js'; +export { injectLambdaContext } from './middleware/middy.js'; +export { PowertoolsLogFormatter } from './formatter/PowertoolsLogFormatter.js'; +export { LogFormatter } from './formatter/LogFormatter.js'; +export { LogFormatterInterface } from './formatter/LogFormatterInterface.js'; diff --git a/packages/logger/src/log/LogItem.ts b/packages/logger/src/log/LogItem.ts index 777cda649f..ff6c042569 100644 --- a/packages/logger/src/log/LogItem.ts +++ b/packages/logger/src/log/LogItem.ts @@ -1,6 +1,6 @@ -import merge from 'lodash.merge'; -import { LogItemInterface } from './index.js'; -import { LogAttributes } from '../types/index.js'; +// import * as merge from 'lodash.merge'; +import { LogItemInterface } from './LogItemInterface.js'; +import { LogAttributes } from '../types/Log.js'; class LogItem implements LogItemInterface { private attributes: LogAttributes = {}; @@ -14,7 +14,7 @@ class LogItem implements LogItemInterface { } public addAttributes(attributes: LogAttributes): LogItem { - this.attributes = merge(this.attributes, attributes); + this.attributes = Object.assign(this.attributes, attributes); return this; } diff --git a/packages/logger/src/log/LogItemInterface.ts b/packages/logger/src/log/LogItemInterface.ts index e1afaa4a52..ed0c89bb0b 100644 --- a/packages/logger/src/log/LogItemInterface.ts +++ b/packages/logger/src/log/LogItemInterface.ts @@ -1,4 +1,4 @@ -import { LogAttributes } from '../types/index.js'; +import { LogAttributes } from '../types/Log.js'; interface LogItemInterface { addAttributes(attributes: LogAttributes): void; diff --git a/packages/logger/src/log/index.ts b/packages/logger/src/log/index.ts deleted file mode 100644 index ff4f686683..0000000000 --- a/packages/logger/src/log/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './LogItem.js'; -export * from './LogItemInterface.js'; diff --git a/packages/logger/src/middleware/index.ts b/packages/logger/src/middleware/index.ts deleted file mode 100644 index 5b7583438e..0000000000 --- a/packages/logger/src/middleware/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './middy.js'; diff --git a/packages/logger/src/middleware/middy.ts b/packages/logger/src/middleware/middy.ts index c84aef3203..9e49dcbf63 100644 --- a/packages/logger/src/middleware/middy.ts +++ b/packages/logger/src/middleware/middy.ts @@ -1,5 +1,6 @@ import { Logger } from '../Logger.js'; -import { HandlerOptions, LogAttributes } from '../types/index.js'; +import { LogAttributes } from '../types/Log.js'; +import { HandlerOptions } from '../types/Logger.js'; import { LOGGER_KEY } from '@aws-lambda-powertools/commons/lib/middleware'; import type { MiddlewareLikeObj, diff --git a/packages/logger/src/types/Logger.ts b/packages/logger/src/types/Logger.ts index c0c6edc9b4..60f681dc60 100644 --- a/packages/logger/src/types/Logger.ts +++ b/packages/logger/src/types/Logger.ts @@ -4,8 +4,8 @@ import { SyncHandler, } from '@aws-lambda-powertools/commons'; import { Handler } from 'aws-lambda'; -import { ConfigServiceInterface } from '../config/index.js'; -import { LogFormatterInterface } from '../formatter/index.js'; +import { ConfigServiceInterface } from '../config/ConfigServiceInterface.js'; +import { LogFormatterInterface } from '../formatter/LogFormatterInterface.js'; import { Environment, LogAttributes, diff --git a/packages/logger/src/types/formats/PowertoolsLog.ts b/packages/logger/src/types/formats/PowertoolsLog.ts index 7af2e1cd25..9406a2a5fe 100644 --- a/packages/logger/src/types/formats/PowertoolsLog.ts +++ b/packages/logger/src/types/formats/PowertoolsLog.ts @@ -1,4 +1,4 @@ -import type { LogAttributes, LogLevel } from '../index.js'; +import type { LogAttributes, LogLevel } from '../Log.js'; type PowertoolsLog = LogAttributes & { /** diff --git a/packages/logger/src/types/formats/index.ts b/packages/logger/src/types/formats/index.ts deleted file mode 100644 index e7bc861c9d..0000000000 --- a/packages/logger/src/types/formats/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './PowertoolsLog.js'; diff --git a/packages/logger/src/types/index.ts b/packages/logger/src/types/index.ts deleted file mode 100644 index cf795baf28..0000000000 --- a/packages/logger/src/types/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './Log.js'; -export * from './Logger.js'; diff --git a/packages/logger/tests/unit/Logger.test.ts b/packages/logger/tests/unit/Logger.test.ts index b1b04f289d..531215667a 100644 --- a/packages/logger/tests/unit/Logger.test.ts +++ b/packages/logger/tests/unit/Logger.test.ts @@ -8,19 +8,17 @@ import { Events as dummyEvent, LambdaInterface, } from '@aws-lambda-powertools/commons'; -import { Logger } from '../../src'; -import { - ConfigServiceInterface, - EnvironmentVariablesService, -} from '../../src/config'; -import { PowertoolsLogFormatter, LogFormatter } from '../../src/formatter'; +import { Logger } from '../../src/Logger.js'; +import { ConfigServiceInterface } from '../../src/config/ConfigServiceInterface.js'; +import { EnvironmentVariablesService } from '../../src/config/EnvironmentVariablesService.js'; +import { PowertoolsLogFormatter } from '../../src/formatter/PowertoolsLogFormatter.js'; +import { LogFormatter } from '../../src/formatter/LogFormatter.js'; +import { LogLevelThresholds, LogLevel } from '../../src/types/Log.js'; import { ClassThatLogs, LogJsonIndent, ConstructorOptions, - LogLevelThresholds, - LogLevel, -} from '../../src/types'; +} from '../../src/types/Logger.js'; import type { Context } from 'aws-lambda'; import { Console } from 'console'; diff --git a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts index fb6b7ed232..760f50cac9 100644 --- a/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts +++ b/packages/logger/tests/unit/config/EnvironmentVariablesService.test.ts @@ -3,7 +3,7 @@ * * @group unit/logger/all */ -import { EnvironmentVariablesService } from '../../../src/config'; +import { EnvironmentVariablesService } from '../../../src/config/EnvironmentVariablesService.js'; describe('Class: EnvironmentVariablesService', () => { const ENVIRONMENT_VARIABLES = process.env; diff --git a/packages/logger/tests/unit/formatter/PowertoolsLogFormatter.test.ts b/packages/logger/tests/unit/formatter/PowertoolsLogFormatter.test.ts index 6ffd54024b..d361a9439f 100644 --- a/packages/logger/tests/unit/formatter/PowertoolsLogFormatter.test.ts +++ b/packages/logger/tests/unit/formatter/PowertoolsLogFormatter.test.ts @@ -4,8 +4,9 @@ * @group unit/logger/all */ import { AssertionError, strictEqual } from 'assert'; -import { PowertoolsLogFormatter } from '../../../src/formatter'; -import { LogAttributes, UnformattedAttributes } from '../../../src/types'; +import { PowertoolsLogFormatter } from '../../../src/formatter/PowertoolsLogFormatter.js'; +import { UnformattedAttributes } from '../../../src/types/Logger.js'; +import { LogAttributes } from '../../../src/types/Log.js'; describe('Class: PowertoolsLogFormatter', () => { const mockDate = new Date(1466424490000); diff --git a/packages/logger/tests/unit/middleware/middy.test.ts b/packages/logger/tests/unit/middleware/middy.test.ts index 39df13ea72..9d4aaa604b 100644 --- a/packages/logger/tests/unit/middleware/middy.test.ts +++ b/packages/logger/tests/unit/middleware/middy.test.ts @@ -8,15 +8,13 @@ import { Events as dummyEvent, } from '@aws-lambda-powertools/commons'; import { cleanupMiddlewares } from '@aws-lambda-powertools/commons/lib/middleware'; -import { - ConfigServiceInterface, - EnvironmentVariablesService, -} from '../../../src/config'; -import { injectLambdaContext } from '../../../src/middleware/middy'; -import { Logger } from './../../../src'; +import { ConfigServiceInterface } from '../../../src/config/ConfigServiceInterface.js'; +import { EnvironmentVariablesService } from '../../../src/config/EnvironmentVariablesService.js'; +import { injectLambdaContext } from '../../../src/middleware/middy.js'; +import { Logger } from './../../../src/Logger.js'; import middy from '@middy/core'; -import { PowertoolsLogFormatter } from '../../../src/formatter'; -import { Console } from 'console'; +import { PowertoolsLogFormatter } from '../../../src/formatter/PowertoolsLogFormatter.js'; +import { Console } from 'node:console'; import { Context } from 'aws-lambda'; const mockDate = new Date(1466424490000); From a5c31c11901877efaee68e1f0cf4336600fddda6 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 15:32:05 +0200 Subject: [PATCH 03/15] test(Logger): update jest/ts-jest to use ESM --- packages/logger/{jest.config.js => jest.config.cjs} | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) rename packages/logger/{jest.config.js => jest.config.cjs} (80%) diff --git a/packages/logger/jest.config.js b/packages/logger/jest.config.cjs similarity index 80% rename from packages/logger/jest.config.js rename to packages/logger/jest.config.cjs index 31c2a6a370..272f582c6c 100644 --- a/packages/logger/jest.config.js +++ b/packages/logger/jest.config.cjs @@ -4,9 +4,17 @@ module.exports = { color: 'cyan', }, runner: 'groups', - preset: 'ts-jest', + extensionsToTreatAsEsm: ['.ts'], + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.js$': '$1', + }, transform: { - '^.+\\.ts?$': 'ts-jest', + '^.+\\.[tj]sx?$': [ + 'ts-jest', + { + useESM: true, + }, + ], }, moduleFileExtensions: ['js', 'ts'], collectCoverageFrom: ['**/src/**/*.ts', '!**/node_modules/**'], From 58aef576e3fb7fa760f9f7f8631badc22721561f Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 16:26:36 +0200 Subject: [PATCH 04/15] chore(Logger): remove unused lodash.merge --- package-lock.json | 71 +++++++++--------------------------- packages/logger/package.json | 3 +- 2 files changed, 18 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a4220e5d3..84f97e0b9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,11 +55,7 @@ }, "docs/snippets": { "name": "docs", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "devDependencies": { "@aws-sdk/client-appconfigdata": "^3.413.0", @@ -76,11 +72,7 @@ }, "examples/cdk": { "name": "cdk-sample", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@middy/core": "^3.6.2", @@ -119,11 +111,7 @@ }, "examples/sam": { "name": "sam-example", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/logger": "^1.14.0", @@ -154,11 +142,7 @@ "dev": true }, "layers": { -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "aws-cdk": "^2.96.1", @@ -6184,7 +6168,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -6253,6 +6238,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6919,7 +6905,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/concat-stream": { "version": "2.0.0", @@ -8591,6 +8578,7 @@ "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -9002,7 +8990,8 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -9277,6 +9266,7 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, "engines": { "node": ">= 4" } @@ -10735,6 +10725,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -11616,7 +11607,8 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -12152,6 +12144,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -13948,6 +13941,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, "engines": { "node": ">=6" } @@ -16017,6 +16011,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, "engines": { "node": ">= 10.0.0" } @@ -16470,6 +16465,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, "engines": { "node": ">= 14" } @@ -16564,29 +16560,17 @@ }, "packages/batch": { "name": "@aws-lambda-powertools/batch", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0" }, "packages/commons": { "name": "@aws-lambda-powertools/commons", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0" }, "packages/idempotency": { "name": "@aws-lambda-powertools/idempotency", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^1.14.0", @@ -16620,15 +16604,10 @@ }, "packages/logger": { "name": "@aws-lambda-powertools/logger", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^1.14.0", - "lodash.merge": "^4.6.2" + "@aws-lambda-powertools/commons": "^1.14.0" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", @@ -16645,11 +16624,7 @@ }, "packages/metrics": { "name": "@aws-lambda-powertools/metrics", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^1.14.0" @@ -16671,11 +16646,7 @@ }, "packages/parameters": { "name": "@aws-lambda-powertools/parameters", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^1.14.0", @@ -16721,11 +16692,7 @@ }, "packages/testing": { "name": "@aws-lambda-powertools/testing-utils", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-cdk/cli-lib-alpha": "^2.96.1-alpha.0", @@ -16737,11 +16704,7 @@ }, "packages/tracer": { "name": "@aws-lambda-powertools/tracer", -<<<<<<< HEAD "version": "1.14.0", -======= - "version": "1.13.1", ->>>>>>> 5838770e (chore: restore deps) "license": "MIT-0", "dependencies": { "@aws-lambda-powertools/commons": "^1.14.0", diff --git a/packages/logger/package.json b/packages/logger/package.json index 0d58a3f909..236635ebe6 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -68,8 +68,7 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^1.14.0", - "lodash.merge": "^4.6.2" + "@aws-lambda-powertools/commons": "^1.14.0" }, "keywords": [ "aws", From 853c5517b60a1226ba9e4843f85794f5e780b791 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 16:46:56 +0200 Subject: [PATCH 05/15] fix(logger): reinstate lodash.merge --- package-lock.json | 6 +++--- packages/logger/package.json | 3 ++- packages/logger/src/Logger.ts | 19 ++++++++----------- packages/logger/src/log/LogItem.ts | 4 ++-- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84f97e0b9d..7a50e591d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11607,8 +11607,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -16607,7 +16606,8 @@ "version": "1.14.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^1.14.0" + "@aws-lambda-powertools/commons": "^1.14.0", + "lodash.merge": "^4.6.2" }, "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", diff --git a/packages/logger/package.json b/packages/logger/package.json index 236635ebe6..0d58a3f909 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -68,7 +68,8 @@ "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^1.14.0" + "@aws-lambda-powertools/commons": "^1.14.0", + "lodash.merge": "^4.6.2" }, "keywords": [ "aws", diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index 087cd63a1f..d74bd087d9 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -5,7 +5,7 @@ import { Utility } from '@aws-lambda-powertools/commons'; import { PowertoolsLogFormatter } from './formatter/PowertoolsLogFormatter.js'; import { LogFormatterInterface } from './formatter/LogFormatterInterface.js'; import { LogItem } from './log/LogItem.js'; -//import merge from 'lodash.merge'; +import merge from 'lodash.merge'; import { ConfigServiceInterface } from './config/ConfigServiceInterface.js'; import { EnvironmentVariablesService } from './config/EnvironmentVariablesService.js'; import { LogJsonIndent } from './types/Logger.js'; @@ -213,7 +213,7 @@ class Logger extends Utility implements ClassThatLogs { * @returns {void} */ public addPersistentLogAttributes(attributes?: LogAttributes): void { - Object.assign(this.persistentLogAttributes!, attributes); + merge(this.persistentLogAttributes!, attributes); } /** @@ -241,7 +241,7 @@ class Logger extends Utility implements ClassThatLogs { }; const parentsPowertoolsLogData = this.getPowertoolLogData(); const childLogger = this.createLogger( - Object.assign(parentsOptions, parentsPowertoolsLogData, options) + merge(parentsOptions, parentsPowertoolsLogData, options) ); const parentsPersistentLogAttributes = this.getPersistentLogAttributes(); @@ -599,7 +599,7 @@ class Logger extends Utility implements ClassThatLogs { ...attributesArray: Array> ): void { attributesArray.forEach((attributes: Partial) => { - Object.assign(this.powertoolLogData, attributes); + merge(this.powertoolLogData, attributes); }); } @@ -620,7 +620,7 @@ class Logger extends Utility implements ClassThatLogs { extraInput: LogItemExtraInput ): LogItem { // TODO: this method's logic is hard to understand, there is an opportunity here to simplify this logic. - const unformattedBaseAttributes = Object.assign( + const unformattedBaseAttributes = merge( { logLevel: this.getLogLevelNameFromNumber(logLevel), timestamp: new Date(), @@ -631,12 +631,12 @@ class Logger extends Utility implements ClassThatLogs { ); let additionalLogAttributes: LogAttributes = {}; - additionalLogAttributes = Object.assign( + additionalLogAttributes = merge( additionalLogAttributes, this.getPersistentLogAttributes() ); if (typeof input !== 'string') { - additionalLogAttributes = Object.assign(additionalLogAttributes, input); + additionalLogAttributes = merge(additionalLogAttributes, input); } extraInput.forEach((item: Error | LogAttributes | string) => { const attributes: LogAttributes = @@ -646,10 +646,7 @@ class Logger extends Utility implements ClassThatLogs { ? { extra: item } : item; - additionalLogAttributes = Object.assign( - additionalLogAttributes, - attributes - ); + additionalLogAttributes = merge(additionalLogAttributes, attributes); }); const logItem = this.getLogFormatter().formatAttributes( diff --git a/packages/logger/src/log/LogItem.ts b/packages/logger/src/log/LogItem.ts index ff6c042569..4183017b4f 100644 --- a/packages/logger/src/log/LogItem.ts +++ b/packages/logger/src/log/LogItem.ts @@ -1,4 +1,4 @@ -// import * as merge from 'lodash.merge'; +import merge from 'lodash.merge'; import { LogItemInterface } from './LogItemInterface.js'; import { LogAttributes } from '../types/Log.js'; @@ -14,7 +14,7 @@ class LogItem implements LogItemInterface { } public addAttributes(attributes: LogAttributes): LogItem { - this.attributes = Object.assign(this.attributes, attributes); + this.attributes = merge(this.attributes, attributes); return this; } From 96f3067c5d2db26fae62da22acd8c47494aee6dd Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 17:11:01 +0200 Subject: [PATCH 06/15] chore(logger): revert TS assertion --- packages/logger/src/Logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index d74bd087d9..b864c997b6 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -213,7 +213,7 @@ class Logger extends Utility implements ClassThatLogs { * @returns {void} */ public addPersistentLogAttributes(attributes?: LogAttributes): void { - merge(this.persistentLogAttributes!, attributes); + merge(this.persistentLogAttributes, attributes); } /** From ca2c6a181380ab84262ce2a5a30e9fbc7b83494a Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 17:34:36 +0200 Subject: [PATCH 07/15] chore(logger): revert format changes --- packages/logger/README.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/logger/README.md b/packages/logger/README.md index 6c209e2246..aa79f78d3b 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -27,10 +27,10 @@ You can use the library in both TypeScript and JavaScript code bases. ## Features -- **[Tracer](https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions -- **[Logger](https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context -- **[Metrics](https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) -- **[Parameters](https://docs.powertools.aws.dev/lambda-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM, Secrets Manager, AppConfig, and DynamoDB +* **[Tracer](https://docs.powertools.aws.dev/lambda-typescript/latest/core/tracer/)** - Utilities to trace Lambda function handlers, and both synchronous and asynchronous functions +* **[Logger](https://docs.powertools.aws.dev/lambda-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context +* **[Metrics](https://docs.powertools.aws.dev/lambda-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) +* **[Parameters](https://docs.powertools.aws.dev/lambda-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM, Secrets Manager, AppConfig, and DynamoDB ## Getting started @@ -38,7 +38,7 @@ Find the complete project's [documentation here](https://docs.powertools.aws.dev ### Installation -The Powertools for AWS Lambda (TypeScript) utilities follow a modular approach, similar to the official [AWS SDK v3 for JavaScript](https://github.com/aws/aws-sdk-js-v3). +The Powertools for AWS Lambda (TypeScript) utilities follow a modular approach, similar to the official [AWS SDK v3 for JavaScript](https://github.com/aws/aws-sdk-js-v3). Each TypeScript utility is installed as standalone npm package. @@ -60,8 +60,8 @@ Or refer to the installation guide of each utility: ### Examples -- [CDK](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/cdk) -- [SAM](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/sam) +* [CDK](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/cdk) +* [SAM](https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/examples/sam) ### Serverless TypeScript Demo application @@ -79,8 +79,8 @@ Help us prioritize upcoming functionalities or utilities by [upvoting existing R ## Connect -- **Powertools for AWS Lambda on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)** -- **Email**: aws-lambda-powertools-feedback@amazon.com +* **Powertools for AWS Lambda on Discord**: `#typescript` - **[Invite link](https://discord.gg/B8zZKbbyET)** +* **Email**: aws-lambda-powertools-feedback@amazon.com ## How to support Powertools for AWS Lambda (TypeScript)? @@ -90,15 +90,15 @@ Knowing which companies are using this library is important to help prioritize t The following companies, among others, use Powertools: -- [Hashnode](https://hashnode.com/) -- [Trek10](https://www.trek10.com/) -- [Elva](https://elva-group.com) -- [globaldatanet](https://globaldatanet.com/) -- [Bailey Nelson](https://www.baileynelson.com.au) -- [Perfect Post](https://www.perfectpost.fr) -- [Sennder](https://sennder.com/) -- [Certible](https://www.certible.com/) -- [tecRacer GmbH & Co. KG](https://www.tecracer.com/) +* [Hashnode](https://hashnode.com/) +* [Trek10](https://www.trek10.com/) +* [Elva](https://elva-group.com) +* [globaldatanet](https://globaldatanet.com/) +* [Bailey Nelson](https://www.baileynelson.com.au) +* [Perfect Post](https://www.perfectpost.fr) +* [Sennder](https://sennder.com/) +* [Certible](https://www.certible.com/) +* [tecRacer GmbH & Co. KG](https://www.tecracer.com/) ### Sharing your work @@ -114,4 +114,4 @@ Credits for the Powertools for AWS Lambda (TypeScript) idea go to [DAZN](https:/ ## License -This library is licensed under the MIT-0 License. See the LICENSE file. +This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file From b996e0af6f94dfb278562514518ccfb0b2aff93f Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 17:42:10 +0200 Subject: [PATCH 08/15] chore(logger): update postbuild to remove incremental tsbuildinfo files --- packages/logger/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/logger/package.json b/packages/logger/package.json index 0d58a3f909..0f920b518b 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -22,7 +22,7 @@ "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", "prebuild": "rimraf ./lib", - "postbuild": "node ./scripts/buildExportPackageJson.js", + "postbuild": "node ./scripts/buildExportPackageJson.js && rimraf ./lib/*.tsbuildinfo", "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { From 8014448b60c247df03bd949bf527f6e2b56fba3f Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 17:48:56 +0200 Subject: [PATCH 09/15] fix(logger): correct reference to types output --- packages/logger/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/logger/package.json b/packages/logger/package.json index 0f920b518b..e44eb67a00 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -34,11 +34,11 @@ "exports": { "node": { "require": { - "types": "./lib/index.d.ts", + "types": "./lib/cjs/index.d.ts", "default": "./lib/cjs/index.js" }, "import": { - "types": "./lib/index.d.ts", + "types": "./lib/esm/index.d.ts", "default": "./lib/esm/index.js" } } From e6bb8a28e1d6458ff9bcff63b53789f4ae226ac2 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 21:19:08 +0200 Subject: [PATCH 10/15] feat(logging): add middleware export --- packages/logger/package.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/logger/package.json b/packages/logger/package.json index e44eb67a00..b608c9b688 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -32,7 +32,7 @@ "license": "MIT-0", "type": "module", "exports": { - "node": { + ".": { "require": { "types": "./lib/cjs/index.d.ts", "default": "./lib/cjs/index.js" @@ -41,6 +41,16 @@ "types": "./lib/esm/index.d.ts", "default": "./lib/esm/index.js" } + }, + "./middleware": { + "require": { + "types": "./lib/cjs/middleware/middy.d.ts", + "default": "./lib/cjs/middleware/middy.js" + }, + "import": { + "types": "./lib/esm/middleware/middy.d.ts", + "default": "./lib/esm/middleware/middy.js" + } } }, "types": "./lib/cjs/index.d.ts", From cffad2ecd8306f2dd1d4325802a4e25670871ed9 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 21:31:23 +0200 Subject: [PATCH 11/15] chore(logger): replace postbuild script with echo statement --- packages/logger/package.json | 6 +++--- .../logger/scripts/buildExportPackageJson.js | 19 ------------------- 2 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 packages/logger/scripts/buildExportPackageJson.js diff --git a/packages/logger/package.json b/packages/logger/package.json index b608c9b688..f202b7c1c8 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -16,13 +16,13 @@ "test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e", "test:e2e": "jest --group=e2e", "watch": "jest --watch --group=unit", - "build:cjs": "tsc --build --force", - "build:esm": "tsc --project tsconfig.esm.json", + "build:cjs": "tsc --build --force && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", + "build:esm": "tsc --project tsconfig.esm.json && echo '{ \"type\": \"module\" }' > lib/esm/package.json", "build": "npm run build:esm & npm run build:cjs", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", "prebuild": "rimraf ./lib", - "postbuild": "node ./scripts/buildExportPackageJson.js && rimraf ./lib/*.tsbuildinfo", + "postbuild": "rimraf ./lib/*.tsbuildinfo", "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { diff --git a/packages/logger/scripts/buildExportPackageJson.js b/packages/logger/scripts/buildExportPackageJson.js deleted file mode 100644 index a2b0a2de60..0000000000 --- a/packages/logger/scripts/buildExportPackageJson.js +++ /dev/null @@ -1,19 +0,0 @@ -import { writeFileSync } from 'node:fs'; -import { join } from 'node:path'; -import { fileURLToPath } from 'node:url'; - -const __dirname = fileURLToPath(new URL('.', import.meta.url)); - -const cjsPackageJson = '{ "type": "commonjs" }'; -writeFileSync( - join(__dirname, '..', 'lib', 'cjs', 'package.json'), - cjsPackageJson, - 'utf-8' -); - -const esmPackageJson = '{ "type": "module" }'; -writeFileSync( - join(__dirname, '..', 'lib', 'esm', 'package.json'), - esmPackageJson, - 'utf-8' -); From 8b695c7c897fcb296aca6aabb960f785101f6a4f Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 22:07:00 +0200 Subject: [PATCH 12/15] feat(logger): add typesVersions property and barrel files to /types --- packages/logger/package.json | 26 +++++++++++++++------- packages/logger/src/types/formats/index.ts | 1 + packages/logger/src/types/index.ts | 20 +++++++++++++++++ 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 packages/logger/src/types/formats/index.ts create mode 100644 packages/logger/src/types/index.ts diff --git a/packages/logger/package.json b/packages/logger/package.json index f202b7c1c8..563ffa7e48 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -43,14 +43,24 @@ } }, "./middleware": { - "require": { - "types": "./lib/cjs/middleware/middy.d.ts", - "default": "./lib/cjs/middleware/middy.js" - }, - "import": { - "types": "./lib/esm/middleware/middy.d.ts", - "default": "./lib/esm/middleware/middy.js" - } + "import": "./lib/esm/middleware/middy.js", + "require": "./lib/cjs/middleware/middy.js" + }, + "./types": { + "import": "./lib/esm/types/index.js", + "require": "./lib/cjs/types/index.js" + } + }, + "typesVersions": { + "*": { + "middleware": [ + "lib/cjs/middleware/middy.d.ts", + "lib/esm/middleware/middy.d.ts" + ], + "types": [ + "lib/cjs/types/index.d.ts", + "lib/esm/types/index.d.ts" + ] } }, "types": "./lib/cjs/index.d.ts", diff --git a/packages/logger/src/types/formats/index.ts b/packages/logger/src/types/formats/index.ts new file mode 100644 index 0000000000..03dabd2013 --- /dev/null +++ b/packages/logger/src/types/formats/index.ts @@ -0,0 +1 @@ +export type { PowertoolsLog } from './PowertoolsLog.js'; diff --git a/packages/logger/src/types/index.ts b/packages/logger/src/types/index.ts new file mode 100644 index 0000000000..9c01595ede --- /dev/null +++ b/packages/logger/src/types/index.ts @@ -0,0 +1,20 @@ +export type { + LogAttributesWithMessage, + LogAttributeValue, + Environment, + LogLevelThresholds, + LogAttributes, + LogLevel, +} from './Log.js'; + +export type { + ClassThatLogs, + LogItemMessage, + LogItemExtraInput, + HandlerMethodDecorator, + LambdaFunctionContext, + UnformattedAttributes, + PowertoolLogData, + ConstructorOptions, + HandlerOptions, +} from './Logger.js'; From 0fc7d4be730d7b7ec549cb0f1ccf7382ac66d003 Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 22:08:55 +0200 Subject: [PATCH 13/15] chore(logger): file not used, can be added back if needed --- tsconfig.cjs.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 tsconfig.cjs.json diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json deleted file mode 100644 index fc8520e737..0000000000 --- a/tsconfig.cjs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./tsconfig.json" -} From 7b5c5f56a49aa5205fd0ccb8650a6ebffa832eca Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 22:19:32 +0200 Subject: [PATCH 14/15] chore(logger): add space back to README --- packages/logger/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/logger/README.md b/packages/logger/README.md index aa79f78d3b..13a2aa7608 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -114,4 +114,4 @@ Credits for the Powertools for AWS Lambda (TypeScript) idea go to [DAZN](https:/ ## License -This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file +This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file From 7793c6623dc87a3c27d44793b5c2919d9f792b2b Mon Sep 17 00:00:00 2001 From: Ant Stanley Date: Wed, 11 Oct 2023 22:27:34 +0200 Subject: [PATCH 15/15] chore(logger): revert space in README --- packages/logger/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/logger/README.md b/packages/logger/README.md index 13a2aa7608..aa79f78d3b 100644 --- a/packages/logger/README.md +++ b/packages/logger/README.md @@ -114,4 +114,4 @@ Credits for the Powertools for AWS Lambda (TypeScript) idea go to [DAZN](https:/ ## License -This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file +This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file