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/package-lock.json b/package-lock.json index 4a4220e5d3..7a50e591d9 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" }, @@ -12152,6 +12143,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 +13940,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 +16010,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 +16464,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 +16559,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,11 +16603,7 @@ }, "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", @@ -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/README.md b/packages/logger/README.md index d895f34c94..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. +This library is licensed under the MIT-0 License. See the LICENSE file. \ No newline at end of file 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/**'], diff --git a/packages/logger/package.json b/packages/logger/package.json index 787115f387..563ffa7e48 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 && 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": "rimraf ./lib/*.tsbuildinfo", "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { @@ -27,8 +30,41 @@ }, "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": { + ".": { + "require": { + "types": "./lib/cjs/index.d.ts", + "default": "./lib/cjs/index.js" + }, + "import": { + "types": "./lib/esm/index.d.ts", + "default": "./lib/esm/index.js" + } + }, + "./middleware": { + "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", + "main": "./lib/cjs/index.js", "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing", "@types/lodash.merge": "^4.6.7" @@ -64,4 +100,4 @@ "serverless", "nodejs" ] -} \ No newline at end of file +} diff --git a/packages/logger/src/Logger.ts b/packages/logger/src/Logger.ts index f2973119a0..b864c997b6 100644 --- a/packages/logger/src/Logger.ts +++ b/packages/logger/src/Logger.ts @@ -2,26 +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'; -import { LogItem } from './log'; +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, EnvironmentVariablesService } from './config'; -import { LogJsonIndent } from './types'; +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'; - +} from './types/Logger.js'; /** * ## Intro * The Logger utility provides an opinionated logger with output structured as JSON. 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 deleted file mode 100644 index 11fd37677e..0000000000 --- a/packages/logger/src/config/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ConfigServiceInterface'; -export * from './EnvironmentVariablesService'; diff --git a/packages/logger/src/formatter/LogFormatter.ts b/packages/logger/src/formatter/LogFormatter.ts index 2106d6bc73..ccdf8b67b3 100644 --- a/packages/logger/src/formatter/LogFormatter.ts +++ b/packages/logger/src/formatter/LogFormatter.ts @@ -1,6 +1,7 @@ -import { LogFormatterInterface } from '.'; -import { LogAttributes, UnformattedAttributes } from '../types'; -import { LogItem } from '../log'; +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 0fe1dd9909..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'; -import { LogItem } from '../log'; +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 0460ed48a4..f88630bf2a 100644 --- a/packages/logger/src/formatter/PowertoolsLogFormatter.ts +++ b/packages/logger/src/formatter/PowertoolsLogFormatter.ts @@ -1,7 +1,8 @@ -import { LogFormatter } from '.'; -import { LogAttributes, UnformattedAttributes } from '../types'; -import { PowertoolsLog } from '../types/formats'; -import { LogItem } from '../log'; +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 ef5d7b16d8..0000000000 --- a/packages/logger/src/formatter/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './LogFormatter'; -export * from './LogFormatterInterface'; -export * from './PowertoolsLogFormatter'; diff --git a/packages/logger/src/index.ts b/packages/logger/src/index.ts index 43bcdb04e0..dfedabfdff 100644 --- a/packages/logger/src/index.ts +++ b/packages/logger/src/index.ts @@ -1,3 +1,5 @@ -export * from './Logger'; -export * from './middleware'; -export * from './formatter'; +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 00a66ec786..4183017b4f 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 './LogItemInterface.js'; +import { LogAttributes } from '../types/Log.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..ed0c89bb0b 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/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 6a3bee0c47..0000000000 --- a/packages/logger/src/log/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './LogItem'; -export * from './LogItemInterface'; diff --git a/packages/logger/src/middleware/index.ts b/packages/logger/src/middleware/index.ts deleted file mode 100644 index cfe9900b37..0000000000 --- a/packages/logger/src/middleware/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './middy'; diff --git a/packages/logger/src/middleware/middy.ts b/packages/logger/src/middleware/middy.ts index f68ea4a8e6..9e49dcbf63 100644 --- a/packages/logger/src/middleware/middy.ts +++ b/packages/logger/src/middleware/middy.ts @@ -1,5 +1,6 @@ -import { Logger } from '../Logger'; -import { HandlerOptions, LogAttributes } from '../types'; +import { Logger } from '../Logger.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 d5d464fe17..60f681dc60 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/ConfigServiceInterface.js'; +import { LogFormatterInterface } from '../formatter/LogFormatterInterface.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..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 '..'; +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 index 5a828a385f..03dabd2013 100644 --- a/packages/logger/src/types/formats/index.ts +++ b/packages/logger/src/types/formats/index.ts @@ -1 +1 @@ -export * from './PowertoolsLog'; +export type { PowertoolsLog } from './PowertoolsLog.js'; diff --git a/packages/logger/src/types/index.ts b/packages/logger/src/types/index.ts index dc74795384..9c01595ede 100644 --- a/packages/logger/src/types/index.ts +++ b/packages/logger/src/types/index.ts @@ -1,2 +1,20 @@ -export * from './Log'; -export * from './Logger'; +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'; 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/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); 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.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. */ + } +}