diff --git a/packages/commons/package.json b/packages/commons/package.json index e94dc64d63..4d5ae71edc 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -19,8 +19,8 @@ "build:cjs": "tsc --build tsconfig.json && echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json", "build:esm": "tsc --build 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 .", + "lint": "biome lint .", + "lint:fix": "biome check --write .", "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "homepage": "https://github.com/aws-powertools/powertools-lambda-typescript/tree/main/packages/commons#readme", @@ -52,25 +52,14 @@ }, "typesVersions": { "*": { - "typeutils": [ - "lib/cjs/typeUtils.d.ts", - "lib/esm/typeUtils.d.ts" - ], - "utils/base64": [ - "lib/cjs/fromBase64.d.ts", - "lib/esm/fromBase64.d.ts" - ], - "types": [ - "lib/cjs/types/index.d.ts", - "lib/esm/types/index.d.ts" - ] + "typeutils": ["lib/cjs/typeUtils.d.ts", "lib/esm/typeUtils.d.ts"], + "utils/base64": ["lib/cjs/fromBase64.d.ts", "lib/esm/fromBase64.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", - "files": [ - "lib" - ], + "files": ["lib"], "repository": { "type": "git", "url": "git+https://github.com/aws-powertools/powertools-lambda-typescript.git" @@ -78,13 +67,7 @@ "bugs": { "url": "https://github.com/aws-powertools/powertools-lambda-typescript/issues" }, - "keywords": [ - "aws", - "lambda", - "powertools", - "serverless", - "nodejs" - ], + "keywords": ["aws", "lambda", "powertools", "serverless", "nodejs"], "devDependencies": { "@aws-lambda-powertools/testing-utils": "file:../testing" } diff --git a/packages/commons/src/awsSdkUtils.ts b/packages/commons/src/awsSdkUtils.ts index 451661b007..df922f9e27 100644 --- a/packages/commons/src/awsSdkUtils.ts +++ b/packages/commons/src/awsSdkUtils.ts @@ -1,5 +1,5 @@ -import { PT_VERSION } from './version.js'; import type { MiddlewareArgsLike, SdkClient } from './types/awsSdk.js'; +import { PT_VERSION } from './version.js'; const EXEC_ENV = process.env.AWS_EXECUTION_ENV || 'NA'; const middlewareOptions = { @@ -96,7 +96,7 @@ const addUserAgentMiddleware = (client: unknown, feature: string): void => { ); } else { throw new Error( - `The client provided does not match the expected interface` + 'The client provided does not match the expected interface' ); } } catch (error) { diff --git a/packages/commons/src/config/EnvironmentVariablesService.ts b/packages/commons/src/config/EnvironmentVariablesService.ts index f9b2003a44..726c05b683 100644 --- a/packages/commons/src/config/EnvironmentVariablesService.ts +++ b/packages/commons/src/config/EnvironmentVariablesService.ts @@ -108,11 +108,11 @@ class EnvironmentVariablesService implements ConfigServiceInterface { const xRayTraceData: Record = {}; - xRayTraceEnv.split(';').forEach((field) => { + for (const field of xRayTraceEnv.split(';')) { const [key, value] = field.split('='); xRayTraceData[key] = value; - }); + } return xRayTraceData; } diff --git a/packages/commons/src/fromBase64.ts b/packages/commons/src/fromBase64.ts index 5fd0236c64..44179987fe 100644 --- a/packages/commons/src/fromBase64.ts +++ b/packages/commons/src/fromBase64.ts @@ -22,10 +22,10 @@ const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; */ const fromBase64 = (input: string, encoding?: BufferEncoding): Uint8Array => { if ((input.length * 3) % 4 !== 0) { - throw new TypeError(`Incorrect padding on base64 string.`); + throw new TypeError('Incorrect padding on base64 string.'); } if (!BASE64_REGEX.exec(input)) { - throw new TypeError(`Invalid base64 string.`); + throw new TypeError('Invalid base64 string.'); } const buffer = encoding ? Buffer.from(input, encoding) : Buffer.from(input); diff --git a/packages/commons/src/middleware/cleanupMiddlewares.ts b/packages/commons/src/middleware/cleanupMiddlewares.ts index 7c393077e1..577b793904 100644 --- a/packages/commons/src/middleware/cleanupMiddlewares.ts +++ b/packages/commons/src/middleware/cleanupMiddlewares.ts @@ -1,10 +1,10 @@ +import type { CleanupFunction, MiddyLikeRequest } from '../types/middy.js'; import { - TRACER_KEY, - METRICS_KEY, - LOGGER_KEY, IDEMPOTENCY_KEY, + LOGGER_KEY, + METRICS_KEY, + TRACER_KEY, } from './constants.js'; -import type { MiddyLikeRequest, CleanupFunction } from '../types/middy.js'; /** * Typeguard to assert that an object is of Function type. diff --git a/packages/commons/src/typeUtils.ts b/packages/commons/src/typeUtils.ts index 3cd53b81fc..9a4dbd1b34 100644 --- a/packages/commons/src/typeUtils.ts +++ b/packages/commons/src/typeUtils.ts @@ -99,17 +99,21 @@ const isIntegerNumber = (value: unknown): value is number => { const isTruthy = (value: unknown): boolean => { if (isString(value)) { return value !== ''; - } else if (isNumber(value)) { + } + if (isNumber(value)) { return value !== 0; - } else if (typeof value === 'boolean') { + } + if (typeof value === 'boolean') { return value; - } else if (Array.isArray(value)) { + } + if (Array.isArray(value)) { return value.length > 0; - } else if (isRecord(value)) { + } + if (isRecord(value)) { return Object.keys(value).length > 0; - } else { - return false; } + + return false; }; /** @@ -168,19 +172,24 @@ const isNullOrUndefined = (value: unknown): value is null | undefined => { const getType = (value: unknown): string => { if (Array.isArray(value)) { return 'array'; - } else if (isRecord(value)) { + } + if (isRecord(value)) { return 'object'; - } else if (isString(value)) { + } + if (isString(value)) { return 'string'; - } else if (isNumber(value)) { + } + if (isNumber(value)) { return 'number'; - } else if (typeof value === 'boolean') { + } + if (typeof value === 'boolean') { return 'boolean'; - } else if (isNull(value)) { + } + if (isNull(value)) { return 'null'; - } else { - return 'unknown'; } + + return 'unknown'; }; /** diff --git a/packages/commons/tests/tsconfig.json b/packages/commons/tests/tsconfig.json index 5654b3e15f..45ba862a85 100644 --- a/packages/commons/tests/tsconfig.json +++ b/packages/commons/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/commons/tests/unit/EnvironmentVariablesService.test.ts b/packages/commons/tests/unit/EnvironmentVariablesService.test.ts index 230e04afb0..2c7b7266f3 100644 --- a/packages/commons/tests/unit/EnvironmentVariablesService.test.ts +++ b/packages/commons/tests/unit/EnvironmentVariablesService.test.ts @@ -32,7 +32,7 @@ describe('Class: EnvironmentVariablesService', () => { test('When the variable IS NOT present, it returns an empty string', () => { // Prepare - delete process.env.CUSTOM_VARIABLE; + process.env.CUSTOM_VARIABLE = undefined; const service = new EnvironmentVariablesService(); // Act @@ -84,7 +84,7 @@ describe('Class: EnvironmentVariablesService', () => { test('It returns the value of the Root X-Ray segment ID properly formatted', () => { // Prepare - delete process.env._X_AMZN_TRACE_ID; + process.env._X_AMZN_TRACE_ID = undefined; const service = new EnvironmentVariablesService(); // Act @@ -124,7 +124,7 @@ describe('Class: EnvironmentVariablesService', () => { it('It returns false when no _X_AMZN_TRACE_ID environment variable is present', () => { // Prepare - delete process.env._X_AMZN_TRACE_ID; + process.env._X_AMZN_TRACE_ID = undefined; const service = new EnvironmentVariablesService(); // Act diff --git a/packages/commons/tests/unit/LambdaInterface.test.ts b/packages/commons/tests/unit/LambdaInterface.test.ts index 7d7decc5a0..4afc6e40f9 100644 --- a/packages/commons/tests/unit/LambdaInterface.test.ts +++ b/packages/commons/tests/unit/LambdaInterface.test.ts @@ -3,13 +3,12 @@ * * @group unit/commons/lambdaInterface */ -import { Handler } from 'aws-lambda'; -import { Callback, Context } from 'aws-lambda'; import context from '@aws-lambda-powertools/testing-utils/context'; +import type { Callback, Context, Handler } from 'aws-lambda'; import type { - SyncHandler, AsyncHandler, LambdaInterface, + SyncHandler, } from '../../src/types/index.js'; describe('LambdaInterface with arrow function', () => { @@ -105,10 +104,8 @@ describe('LambdaInterface with decorator', () => { callback, ]); console.log(`Invoked ${String(_propertyKey)}`); - } catch (error) { - throw error; } finally { - console.log(`Finally from decorator`); + console.log('Finally from decorator'); } return result; diff --git a/packages/commons/tests/unit/Utility.test.ts b/packages/commons/tests/unit/Utility.test.ts index 9e9d18194e..f60e7edeea 100644 --- a/packages/commons/tests/unit/Utility.test.ts +++ b/packages/commons/tests/unit/Utility.test.ts @@ -14,10 +14,6 @@ describe('Class: Utility', () => { describe('Method: getDefaultServiceName', () => { test('it should return the default service name', () => { class PowerTool extends Utility { - public constructor() { - super(); - } - public dummyMethod(): string { return this.getDefaultServiceName(); } @@ -56,10 +52,6 @@ describe('Class: Utility', () => { test('when called multiple times on a child class, it returns true the first time, then false afterwards', () => { // Prepare class PowerTool extends Utility { - public constructor() { - super(); - } - public dummyMethod(): boolean { return this.getColdStart(); } @@ -115,10 +107,6 @@ describe('Class: Utility', () => { test('when called multiple times on a child class, it returns true the first time, then false afterwards', () => { // Prepare class PowerTool extends Utility { - public constructor() { - super(); - } - public dummyMethod(): boolean { return this.isColdStart(); } @@ -149,10 +137,6 @@ describe('Class: Utility', () => { describe('Method: isValidServiceName', () => { class PowerTool extends Utility { - public constructor() { - super(); - } - public dummyMethod(name: string): boolean { return this.isValidServiceName(name); } diff --git a/packages/commons/tests/unit/awsSdkUtils.test.ts b/packages/commons/tests/unit/awsSdkUtils.test.ts index 0a2e4c6cd7..da06ea7729 100644 --- a/packages/commons/tests/unit/awsSdkUtils.test.ts +++ b/packages/commons/tests/unit/awsSdkUtils.test.ts @@ -1,9 +1,14 @@ +/** + * Test AWS SDK utilities + * + * @group unit/commons/awsSdkUtils + */ +import { customUserAgentMiddleware } from '../../src/awsSdkUtils.js'; import { addUserAgentMiddleware, isSdkClient, PT_VERSION as version, } from '../../src/index.js'; -import { customUserAgentMiddleware } from '../../src/awsSdkUtils.js'; describe('Helpers: awsSdk', () => { describe('Function: userAgentMiddleware', () => { diff --git a/packages/commons/tests/unit/cleanupMiddlewares.test.ts b/packages/commons/tests/unit/cleanupMiddlewares.test.ts index 15295a0396..8b178f2e9f 100644 --- a/packages/commons/tests/unit/cleanupMiddlewares.test.ts +++ b/packages/commons/tests/unit/cleanupMiddlewares.test.ts @@ -3,14 +3,14 @@ * * @group unit/commons/cleanupMiddlewares */ +import context from '@aws-lambda-powertools/testing-utils/context'; import { - cleanupMiddlewares, - TRACER_KEY, - METRICS_KEY, - LOGGER_KEY, IDEMPOTENCY_KEY, + LOGGER_KEY, + METRICS_KEY, + TRACER_KEY, + cleanupMiddlewares, } from '../../src/index.js'; -import context from '@aws-lambda-powertools/testing-utils/context'; describe('Function: cleanupMiddlewares', () => { it('calls the cleanup function that are present', async () => { diff --git a/packages/commons/tests/unit/fromBase64.test.ts b/packages/commons/tests/unit/fromBase64.test.ts index 23ee84ecd3..6d2a2a965b 100644 --- a/packages/commons/tests/unit/fromBase64.test.ts +++ b/packages/commons/tests/unit/fromBase64.test.ts @@ -34,7 +34,7 @@ describe('Function: fromBase64', () => { // Assess expect(result).toThrow(TypeError); - expect(result).toThrow(`Incorrect padding on base64 string.`); + expect(result).toThrow('Incorrect padding on base64 string.'); }); it('throws a TypeError when the base64 string is invalid', () => { @@ -46,7 +46,7 @@ describe('Function: fromBase64', () => { // Assess expect(result).toThrow(TypeError); - expect(result).toThrow(`Invalid base64 string.`); + expect(result).toThrow('Invalid base64 string.'); }); it('uses the provided encoding to create the Uint8Array', () => { diff --git a/packages/commons/tests/unit/typeUtils.test.ts b/packages/commons/tests/unit/typeUtils.test.ts index 7bb940f343..6b96d61882 100644 --- a/packages/commons/tests/unit/typeUtils.test.ts +++ b/packages/commons/tests/unit/typeUtils.test.ts @@ -4,15 +4,15 @@ * @group unit/commons/typeUtils */ import { - isRecord, - isTruthy, - isNullOrUndefined, - isString, - isNumber, + getType, isIntegerNumber, isNull, - getType, + isNullOrUndefined, + isNumber, + isRecord, isStrictEqual, + isString, + isTruthy, } from '../../src/index.js'; describe('Functions: typeUtils', () => { diff --git a/packages/commons/tsconfig.esm.json b/packages/commons/tsconfig.esm.json index 123291b0cf..82486b64fa 100644 --- a/packages/commons/tsconfig.esm.json +++ b/packages/commons/tsconfig.esm.json @@ -6,7 +6,5 @@ "rootDir": "./src", "tsBuildInfoFile": ".tsbuildinfo/esm.json" }, - "include": [ - "./src/**/*" - ] -} \ No newline at end of file + "include": ["./src/**/*"] +} diff --git a/packages/commons/tsconfig.json b/packages/commons/tsconfig.json index 4836a14962..4923c4f6f4 100644 --- a/packages/commons/tsconfig.json +++ b/packages/commons/tsconfig.json @@ -1,11 +1,9 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./lib/cjs/", - "rootDir": "./src", - "tsBuildInfoFile": ".tsbuildinfo/cjs.json" - }, - "include": [ - "./src/**/*" - ], -} \ No newline at end of file + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./lib/cjs/", + "rootDir": "./src", + "tsBuildInfoFile": ".tsbuildinfo/cjs.json" + }, + "include": ["./src/**/*"] +} diff --git a/packages/commons/typedoc.json b/packages/commons/typedoc.json index d3799003ef..60dfaa41cd 100644 --- a/packages/commons/typedoc.json +++ b/packages/commons/typedoc.json @@ -1,10 +1,5 @@ { - "extends": [ - "../../typedoc.base.json" - ], - "entryPoints": [ - "./src/index.ts", - "./src/types/index.ts" - ], + "extends": ["../../typedoc.base.json"], + "entryPoints": ["./src/index.ts", "./src/types/index.ts"], "readme": "./README.md" -} \ No newline at end of file +}