diff --git a/docs/core/tracer.md b/docs/core/tracer.md index 9b28f10b71..c680ccf38d 100644 --- a/docs/core/tracer.md +++ b/docs/core/tracer.md @@ -176,7 +176,7 @@ You can quickly start by importing the `Tracer` class, initialize it outside the === "Manual" - ```typescript hl_lines="9-15 18-19 23 26 29-34" + ```typescript hl_lines="10-16 19-20 24 27 30-35" --8<-- "examples/snippets/tracer/manual.ts" ``` @@ -239,7 +239,7 @@ You can trace other class methods using the `captureMethod` decorator or any arb === "Manual" - ```typescript hl_lines="6-12 18 21 25-30" + ```typescript hl_lines="7-13 19 22 26-31" --8<-- "examples/snippets/tracer/captureMethodManual.ts" ``` diff --git a/docs/utilities/batch.md b/docs/utilities/batch.md index e20563b20d..e49ab6b98e 100644 --- a/docs/utilities/batch.md +++ b/docs/utilities/batch.md @@ -510,7 +510,7 @@ classDiagram You can then use this class as a context manager, or pass it to `processPartialResponseSync` to process the records in your Lambda handler function. -```typescript hl_lines="21 35 56 61 73 86" title="Creating a custom batch processor" +```typescript hl_lines="21 35 55 60 72 85" title="Creating a custom batch processor" --8<-- "examples/snippets/batch/customPartialProcessor.ts" ``` diff --git a/docs/utilities/idempotency.md b/docs/utilities/idempotency.md index e28d5370fc..fb4bf2d42a 100644 --- a/docs/utilities/idempotency.md +++ b/docs/utilities/idempotency.md @@ -723,7 +723,7 @@ Below an example implementation of a custom persistence layer backed by a generi === "CustomPersistenceLayer" - ```typescript hl_lines="9 19 28 34 50 90" + ```typescript hl_lines="9 19 28 35 52 95" --8<-- "examples/snippets/idempotency/advancedBringYourOwnPersistenceLayer.ts" ``` diff --git a/examples/snippets/batch/accessLambdaContext.ts b/examples/snippets/batch/accessLambdaContext.ts index 301d51c052..b5889cc96f 100644 --- a/examples/snippets/batch/accessLambdaContext.ts +++ b/examples/snippets/batch/accessLambdaContext.ts @@ -4,7 +4,7 @@ import { processPartialResponse, } from '@aws-lambda-powertools/batch'; import { Logger } from '@aws-lambda-powertools/logger'; -import type { SQSRecord, Context, SQSHandler } from 'aws-lambda'; +import type { Context, SQSHandler, SQSRecord } from 'aws-lambda'; const processor = new BatchProcessor(EventType.SQS); const logger = new Logger(); diff --git a/examples/snippets/batch/accessProcessedMessages.ts b/examples/snippets/batch/accessProcessedMessages.ts index e60d4bc0e6..e7fe6b6eec 100644 --- a/examples/snippets/batch/accessProcessedMessages.ts +++ b/examples/snippets/batch/accessProcessedMessages.ts @@ -1,6 +1,6 @@ import { BatchProcessor, EventType } from '@aws-lambda-powertools/batch'; import { Logger } from '@aws-lambda-powertools/logger'; -import type { SQSRecord, SQSHandler } from 'aws-lambda'; +import type { SQSHandler, SQSRecord } from 'aws-lambda'; const processor = new BatchProcessor(EventType.SQS); const logger = new Logger(); diff --git a/examples/snippets/batch/advancedTracingRecordHandler.ts b/examples/snippets/batch/advancedTracingRecordHandler.ts index 71bd750bd1..d92bb0d89a 100644 --- a/examples/snippets/batch/advancedTracingRecordHandler.ts +++ b/examples/snippets/batch/advancedTracingRecordHandler.ts @@ -6,7 +6,7 @@ import { import { Tracer } from '@aws-lambda-powertools/tracer'; import { captureLambdaHandler } from '@aws-lambda-powertools/tracer/middleware'; import middy from '@middy/core'; -import type { SQSRecord, SQSHandler, SQSEvent } from 'aws-lambda'; +import type { SQSEvent, SQSHandler, SQSRecord } from 'aws-lambda'; const processor = new BatchProcessor(EventType.SQS); const tracer = new Tracer({ serviceName: 'serverlessAirline' }); diff --git a/examples/snippets/batch/customPartialProcessor.ts b/examples/snippets/batch/customPartialProcessor.ts index 5cad5ecb70..81e50a1796 100644 --- a/examples/snippets/batch/customPartialProcessor.ts +++ b/examples/snippets/batch/customPartialProcessor.ts @@ -1,19 +1,19 @@ import { randomInt } from 'node:crypto'; import { - DynamoDBClient, - BatchWriteItemCommand, -} from '@aws-sdk/client-dynamodb'; -import { marshall } from '@aws-sdk/util-dynamodb'; -import { - EventType, BasePartialBatchProcessor, + EventType, processPartialResponse, } from '@aws-lambda-powertools/batch'; import type { - SuccessResponse, - FailureResponse, BaseRecord, + FailureResponse, + SuccessResponse, } from '@aws-lambda-powertools/batch/types'; +import { + BatchWriteItemCommand, + DynamoDBClient, +} from '@aws-sdk/client-dynamodb'; +import { marshall } from '@aws-sdk/util-dynamodb'; import type { SQSHandler } from 'aws-lambda'; const tableName = process.env.TABLE_NAME || 'table-not-found'; @@ -33,8 +33,7 @@ class MyPartialProcessor extends BasePartialBatchProcessor { * Here we are writing all the processed messages to DynamoDB. */ public clean(): void { - // We know that the client is defined because clean() is called after prepare() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + // biome-ignore lint/style/noNonNullAssertion: We know that the client is defined because clean() is called after prepare() this.#client!.send( new BatchWriteItemCommand({ RequestItems: { diff --git a/examples/snippets/batch/extendingFailure.ts b/examples/snippets/batch/extendingFailure.ts index e21ba98096..7db64cc1b3 100644 --- a/examples/snippets/batch/extendingFailure.ts +++ b/examples/snippets/batch/extendingFailure.ts @@ -1,15 +1,15 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; import { BatchProcessor, EventType, processPartialResponse, } from '@aws-lambda-powertools/batch'; import type { - FailureResponse, EventSourceDataClassTypes, + FailureResponse, } from '@aws-lambda-powertools/batch/types'; import { Logger } from '@aws-lambda-powertools/logger'; -import type { SQSRecord, SQSHandler } from 'aws-lambda'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; +import type { SQSHandler, SQSRecord } from 'aws-lambda'; class MyProcessor extends BatchProcessor { #metrics: Metrics; diff --git a/examples/snippets/batch/gettingStartedDynamoDBStreams.ts b/examples/snippets/batch/gettingStartedDynamoDBStreams.ts index 4c93fdb389..bc4bcafdf3 100644 --- a/examples/snippets/batch/gettingStartedDynamoDBStreams.ts +++ b/examples/snippets/batch/gettingStartedDynamoDBStreams.ts @@ -10,7 +10,7 @@ const processor = new BatchProcessor(EventType.DynamoDBStreams); // (1)! const logger = new Logger(); const recordHandler = async (record: DynamoDBRecord): Promise => { - if (record.dynamodb && record.dynamodb.NewImage) { + if (record.dynamodb?.NewImage) { logger.info('Processing record', { record: record.dynamodb.NewImage }); const message = record.dynamodb.NewImage.Message.S; if (message) { diff --git a/examples/snippets/batch/gettingStartedErrorHandling.ts b/examples/snippets/batch/gettingStartedErrorHandling.ts index 022f82378c..c2155357a7 100644 --- a/examples/snippets/batch/gettingStartedErrorHandling.ts +++ b/examples/snippets/batch/gettingStartedErrorHandling.ts @@ -4,7 +4,7 @@ import { processPartialResponse, } from '@aws-lambda-powertools/batch'; import { Logger } from '@aws-lambda-powertools/logger'; -import type { SQSRecord, SQSHandler } from 'aws-lambda'; +import type { SQSHandler, SQSRecord } from 'aws-lambda'; const processor = new BatchProcessor(EventType.SQS); const logger = new Logger(); @@ -22,13 +22,13 @@ const recordHandler = async (record: SQSRecord): Promise => { const item = JSON.parse(payload); logger.info('Processed item', { item }); } else { - // prettier-ignore + // biome-ignore format: we need the comment in the next line to stay there to annotate the code snippet in the docs throw new InvalidPayload('Payload does not contain minimum required fields'); // (1)! } }; export const handler: SQSHandler = async (event, context) => - // prettier-ignore + // biome-ignore format: we need the comment in the next line to stay there to annotate the code snippet in the docs processPartialResponse(event, recordHandler, processor, { // (2)! context, }); diff --git a/examples/snippets/batch/gettingStartedSQS.ts b/examples/snippets/batch/gettingStartedSQS.ts index 50de7474de..b12f09563f 100644 --- a/examples/snippets/batch/gettingStartedSQS.ts +++ b/examples/snippets/batch/gettingStartedSQS.ts @@ -4,12 +4,12 @@ import { processPartialResponse, } from '@aws-lambda-powertools/batch'; import { Logger } from '@aws-lambda-powertools/logger'; -import type { SQSRecord, SQSHandler } from 'aws-lambda'; +import type { SQSHandler, SQSRecord } from 'aws-lambda'; const processor = new BatchProcessor(EventType.SQS); // (1)! const logger = new Logger(); -// prettier-ignore +// biome-ignore format: we need the comment in the next line to stay there to annotate the code snippet in the docs const recordHandler = async (record: SQSRecord): Promise => { // (2)! const payload = record.body; if (payload) { @@ -19,7 +19,7 @@ const recordHandler = async (record: SQSRecord): Promise => { // (2)! }; export const handler: SQSHandler = async (event, context) => - // prettier-ignore + // biome-ignore format: we need the comment in the next line to stay there to annotate the code snippet in the docs processPartialResponse(event, recordHandler, processor, { // (3)! context, }); diff --git a/examples/snippets/batch/gettingStartedSQSFifoSkipGroupOnError.ts b/examples/snippets/batch/gettingStartedSQSFifoSkipGroupOnError.ts index 3124e7105c..a4edc0c2d4 100644 --- a/examples/snippets/batch/gettingStartedSQSFifoSkipGroupOnError.ts +++ b/examples/snippets/batch/gettingStartedSQSFifoSkipGroupOnError.ts @@ -4,10 +4,10 @@ import { } from '@aws-lambda-powertools/batch'; import { Logger } from '@aws-lambda-powertools/logger'; import type { - SQSEvent, - SQSRecord, Context, SQSBatchResponse, + SQSEvent, + SQSRecord, } from 'aws-lambda'; const processor = new SqsFifoPartialProcessor(); diff --git a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayer.ts b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayer.ts index d65d2f5b8c..5b27814a72 100644 --- a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayer.ts +++ b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayer.ts @@ -3,13 +3,13 @@ import { IdempotencyItemNotFoundError, IdempotencyRecordStatus, } from '@aws-lambda-powertools/idempotency'; -import { IdempotencyRecordOptions } from '@aws-lambda-powertools/idempotency/types'; import { - IdempotencyRecord, BasePersistenceLayer, + IdempotencyRecord, } from '@aws-lambda-powertools/idempotency/persistence'; -import { getSecret } from '@aws-lambda-powertools/parameters/secrets'; +import type { IdempotencyRecordOptions } from '@aws-lambda-powertools/idempotency/types'; import { Transform } from '@aws-lambda-powertools/parameters'; +import { getSecret } from '@aws-lambda-powertools/parameters/secrets'; import { ProviderClient, ProviderItemAlreadyExists, @@ -26,18 +26,20 @@ class CustomPersistenceLayer extends BasePersistenceLayer { } protected async _deleteRecord(record: IdempotencyRecord): Promise { - await ( - await this.#getClient() - ).delete(this.#collectionName, record.idempotencyKey); + await (await this.#getClient()).delete( + this.#collectionName, + record.idempotencyKey + ); } protected async _getRecord( idempotencyKey: string ): Promise { try { - const item = await ( - await this.#getClient() - ).get(this.#collectionName, idempotencyKey); + const item = await (await this.#getClient()).get( + this.#collectionName, + idempotencyKey + ); return new IdempotencyRecord({ ...(item as unknown as IdempotencyRecordOptions), @@ -67,11 +69,14 @@ class CustomPersistenceLayer extends BasePersistenceLayer { let existingItem: ProviderItem | undefined; try { - existingItem = await ( - await this.#getClient() - ).put(this.#collectionName, record.idempotencyKey, item, { - ttl, - }); + existingItem = await (await this.#getClient()).put( + this.#collectionName, + record.idempotencyKey, + item, + { + ttl, + } + ); } catch (error) { if (error instanceof ProviderItemAlreadyExists) { if ( @@ -97,9 +102,11 @@ class CustomPersistenceLayer extends BasePersistenceLayer { value.validation = record.payloadHash; } - await ( - await this.#getClient() - ).update(this.#collectionName, record.idempotencyKey, value); + await (await this.#getClient()).update( + this.#collectionName, + record.idempotencyKey, + value + ); } async #getClient(): Promise { diff --git a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerProvider.ts b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerProvider.ts index f639b63c3f..dd1bbb67b3 100644 --- a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerProvider.ts +++ b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerProvider.ts @@ -4,6 +4,7 @@ import type { ProviderItem } from './types.js'; * This is a mock implementation of an SDK client for a generic key-value store. */ class ProviderClient { + // biome-ignore lint/complexity/noUselessConstructor: Keep mock constructor for clarity public constructor(_config: { apiKey: string; defaultTtlSeconds: number }) { // ... } diff --git a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerUsage.ts b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerUsage.ts index 59a5fa7a31..d85d4e70c4 100644 --- a/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerUsage.ts +++ b/examples/snippets/idempotency/advancedBringYourOwnPersistenceLayerUsage.ts @@ -1,10 +1,10 @@ -import type { Context } from 'aws-lambda'; import { randomUUID } from 'node:crypto'; -import { CustomPersistenceLayer } from './advancedBringYourOwnPersistenceLayer'; import { IdempotencyConfig, makeIdempotent, } from '@aws-lambda-powertools/idempotency'; +import type { Context } from 'aws-lambda'; +import { CustomPersistenceLayer } from './advancedBringYourOwnPersistenceLayer'; import type { Request, Response, SubscriptionResult } from './types.js'; const persistenceStore = new CustomPersistenceLayer({ diff --git a/examples/snippets/idempotency/customizePersistenceLayer.ts b/examples/snippets/idempotency/customizePersistenceLayer.ts index 658fd5e562..7d5d6010d9 100644 --- a/examples/snippets/idempotency/customizePersistenceLayer.ts +++ b/examples/snippets/idempotency/customizePersistenceLayer.ts @@ -1,5 +1,5 @@ -import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; +import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import middy from '@middy/core'; import type { Context } from 'aws-lambda'; import type { Request, Response } from './types.js'; diff --git a/examples/snippets/idempotency/idempotentDecoratorBase.ts b/examples/snippets/idempotency/idempotentDecoratorBase.ts index b486fc6db7..3e35bb894a 100644 --- a/examples/snippets/idempotency/idempotentDecoratorBase.ts +++ b/examples/snippets/idempotency/idempotentDecoratorBase.ts @@ -1,10 +1,10 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; import { IdempotencyConfig, idempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; +import type { Context } from 'aws-lambda'; import type { Request, Response } from './types.js'; const dynamoDBPersistenceLayer = new DynamoDBPersistenceLayer({ diff --git a/examples/snippets/idempotency/makeHandlerIdempotent.ts b/examples/snippets/idempotency/makeHandlerIdempotent.ts index 3ec8f0ebfb..6336d3a1ed 100644 --- a/examples/snippets/idempotency/makeHandlerIdempotent.ts +++ b/examples/snippets/idempotency/makeHandlerIdempotent.ts @@ -1,6 +1,6 @@ import { randomUUID } from 'node:crypto'; -import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; +import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import middy from '@middy/core'; import type { Context } from 'aws-lambda'; import type { Request, Response, SubscriptionResult } from './types.js'; diff --git a/examples/snippets/idempotency/makeIdempotentAnyFunction.ts b/examples/snippets/idempotency/makeIdempotentAnyFunction.ts index 873952ea84..bb93d4bb20 100644 --- a/examples/snippets/idempotency/makeIdempotentAnyFunction.ts +++ b/examples/snippets/idempotency/makeIdempotentAnyFunction.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'node:crypto'; import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/makeIdempotentJmes.ts b/examples/snippets/idempotency/makeIdempotentJmes.ts index 9688bbf79a..17072ea0d8 100644 --- a/examples/snippets/idempotency/makeIdempotentJmes.ts +++ b/examples/snippets/idempotency/makeIdempotentJmes.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'node:crypto'; import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/makeIdempotentLambdaContext.ts b/examples/snippets/idempotency/makeIdempotentLambdaContext.ts index da47482e22..0b92dfc21f 100644 --- a/examples/snippets/idempotency/makeIdempotentLambdaContext.ts +++ b/examples/snippets/idempotency/makeIdempotentLambdaContext.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'node:crypto'; import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/templates/tableCdk.ts b/examples/snippets/idempotency/templates/tableCdk.ts index 526ce48156..8b2de4f038 100644 --- a/examples/snippets/idempotency/templates/tableCdk.ts +++ b/examples/snippets/idempotency/templates/tableCdk.ts @@ -1,8 +1,8 @@ import { Stack, type StackProps } from 'aws-cdk-lib'; -import { Construct } from 'constructs'; -import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs'; -import { Runtime } from 'aws-cdk-lib/aws-lambda'; import { AttributeType, BillingMode, Table } from 'aws-cdk-lib/aws-dynamodb'; +import { Runtime } from 'aws-cdk-lib/aws-lambda'; +import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs'; +import type { Construct } from 'constructs'; export class IdempotencyStack extends Stack { public constructor(scope: Construct, id: string, props?: StackProps) { diff --git a/examples/snippets/idempotency/types.ts b/examples/snippets/idempotency/types.ts index e769dcf2dd..6178edd3da 100644 --- a/examples/snippets/idempotency/types.ts +++ b/examples/snippets/idempotency/types.ts @@ -1,4 +1,4 @@ -import { IdempotencyRecordStatusValue } from '@aws-lambda-powertools/idempotency/types'; +import type { IdempotencyRecordStatusValue } from '@aws-lambda-powertools/idempotency/types'; export type Request = { user: string; diff --git a/examples/snippets/idempotency/workingWithBatch.ts b/examples/snippets/idempotency/workingWithBatch.ts index 274ff6d674..8be00bc4cb 100644 --- a/examples/snippets/idempotency/workingWithBatch.ts +++ b/examples/snippets/idempotency/workingWithBatch.ts @@ -3,17 +3,17 @@ import { EventType, processPartialResponse, } from '@aws-lambda-powertools/batch'; +import { + IdempotencyConfig, + makeIdempotent, +} from '@aws-lambda-powertools/idempotency'; +import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context, SQSBatchResponse, SQSEvent, SQSRecord, } from 'aws-lambda'; -import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; -import { - IdempotencyConfig, - makeIdempotent, -} from '@aws-lambda-powertools/idempotency'; const processor = new BatchProcessor(EventType.SQS); diff --git a/examples/snippets/idempotency/workingWithCompositeKey.ts b/examples/snippets/idempotency/workingWithCompositeKey.ts index d58c8689ca..23d5e255ee 100644 --- a/examples/snippets/idempotency/workingWithCompositeKey.ts +++ b/examples/snippets/idempotency/workingWithCompositeKey.ts @@ -1,5 +1,5 @@ -import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; +import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import middy from '@middy/core'; import type { Context } from 'aws-lambda'; import type { Request, Response } from './types.js'; diff --git a/examples/snippets/idempotency/workingWithExceptions.ts b/examples/snippets/idempotency/workingWithExceptions.ts index badf618958..2bafa5a243 100644 --- a/examples/snippets/idempotency/workingWithExceptions.ts +++ b/examples/snippets/idempotency/workingWithExceptions.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'node:crypto'; import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/workingWithIdempotencyRequiredKey.ts b/examples/snippets/idempotency/workingWithIdempotencyRequiredKey.ts index ffdb58d7dd..e9650cd751 100644 --- a/examples/snippets/idempotency/workingWithIdempotencyRequiredKey.ts +++ b/examples/snippets/idempotency/workingWithIdempotencyRequiredKey.ts @@ -1,6 +1,6 @@ import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/workingWithLocalCache.ts b/examples/snippets/idempotency/workingWithLocalCache.ts index aa0cebd31c..c02b270a2d 100644 --- a/examples/snippets/idempotency/workingWithLocalCache.ts +++ b/examples/snippets/idempotency/workingWithLocalCache.ts @@ -1,6 +1,6 @@ import { IdempotencyConfig } from '@aws-lambda-powertools/idempotency'; -import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; +import { makeHandlerIdempotent } from '@aws-lambda-powertools/idempotency/middleware'; import middy from '@middy/core'; import type { Context } from 'aws-lambda'; import type { Request, Response } from './types.js'; diff --git a/examples/snippets/idempotency/workingWithPayloadValidation.ts b/examples/snippets/idempotency/workingWithPayloadValidation.ts index d253e5c5ee..af29510a6b 100644 --- a/examples/snippets/idempotency/workingWithPayloadValidation.ts +++ b/examples/snippets/idempotency/workingWithPayloadValidation.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'node:crypto'; import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/idempotency/workingWithRecordExpiration.ts b/examples/snippets/idempotency/workingWithRecordExpiration.ts index 77e2296147..f2399fddb9 100644 --- a/examples/snippets/idempotency/workingWithRecordExpiration.ts +++ b/examples/snippets/idempotency/workingWithRecordExpiration.ts @@ -1,6 +1,6 @@ import { - makeIdempotent, IdempotencyConfig, + makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { Context } from 'aws-lambda'; diff --git a/examples/snippets/jmespath/extractDataFromBuiltinEnvelope.ts b/examples/snippets/jmespath/extractDataFromBuiltinEnvelope.ts index 6cd3102f7a..55a4465fe0 100644 --- a/examples/snippets/jmespath/extractDataFromBuiltinEnvelope.ts +++ b/examples/snippets/jmespath/extractDataFromBuiltinEnvelope.ts @@ -1,6 +1,6 @@ import { - extractDataFromEnvelope, SQS, + extractDataFromEnvelope, } from '@aws-lambda-powertools/jmespath/envelopes'; import { Logger } from '@aws-lambda-powertools/logger'; import type { SQSEvent } from 'aws-lambda'; diff --git a/examples/snippets/jmespath/powertoolsCustomFunction.ts b/examples/snippets/jmespath/powertoolsCustomFunction.ts index 6328cb3ca1..ec332b8924 100644 --- a/examples/snippets/jmespath/powertoolsCustomFunction.ts +++ b/examples/snippets/jmespath/powertoolsCustomFunction.ts @@ -1,12 +1,12 @@ +import { brotliDecompressSync } from 'node:zlib'; import { fromBase64 } from '@aws-lambda-powertools/commons/utils/base64'; import { extractDataFromEnvelope } from '@aws-lambda-powertools/jmespath/envelopes'; import { PowertoolsFunctions } from '@aws-lambda-powertools/jmespath/functions'; import { Logger } from '@aws-lambda-powertools/logger'; -import { brotliDecompressSync } from 'node:zlib'; const logger = new Logger(); -// prettier-ignore +// biome-ignore format: we need the comment in the next line to stay there to annotate the code snippet in the docs class CustomFunctions extends PowertoolsFunctions { @PowertoolsFunctions.signature({ // (1)! argumentsSpecs: [['string']], diff --git a/examples/snippets/jmespath/powertoolsJsonIdempotencyJmespath.ts b/examples/snippets/jmespath/powertoolsJsonIdempotencyJmespath.ts index 5ce144a109..64f9209fc1 100644 --- a/examples/snippets/jmespath/powertoolsJsonIdempotencyJmespath.ts +++ b/examples/snippets/jmespath/powertoolsJsonIdempotencyJmespath.ts @@ -1,10 +1,10 @@ +import { randomUUID } from 'node:crypto'; import { IdempotencyConfig, makeIdempotent, } from '@aws-lambda-powertools/idempotency'; import { DynamoDBPersistenceLayer } from '@aws-lambda-powertools/idempotency/dynamodb'; import type { APIGatewayEvent } from 'aws-lambda'; -import { randomUUID } from 'node:crypto'; const persistenceStore = new DynamoDBPersistenceLayer({ tableName: 'IdempotencyTable', diff --git a/examples/snippets/logger/bringYourOwnFormatterHandler.ts b/examples/snippets/logger/bringYourOwnFormatterHandler.ts index 7eadd526c0..f5b953acc4 100644 --- a/examples/snippets/logger/bringYourOwnFormatterHandler.ts +++ b/examples/snippets/logger/bringYourOwnFormatterHandler.ts @@ -1,6 +1,6 @@ import { Logger } from '@aws-lambda-powertools/logger'; -import { MyCompanyLogFormatter } from './bringYourOwnFormatterClass'; import type { Context } from 'aws-lambda'; +import { MyCompanyLogFormatter } from './bringYourOwnFormatterClass'; const logger = new Logger({ logFormatter: new MyCompanyLogFormatter(), diff --git a/examples/snippets/logger/decorator.ts b/examples/snippets/logger/decorator.ts index 1f3317596a..3b6c5b50d3 100644 --- a/examples/snippets/logger/decorator.ts +++ b/examples/snippets/logger/decorator.ts @@ -1,5 +1,5 @@ -import { Logger } from '@aws-lambda-powertools/logger'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; const logger = new Logger(); diff --git a/examples/snippets/logger/eventDecorator.ts b/examples/snippets/logger/eventDecorator.ts index bded346d2b..ab8feae23a 100644 --- a/examples/snippets/logger/eventDecorator.ts +++ b/examples/snippets/logger/eventDecorator.ts @@ -1,5 +1,5 @@ -import { Logger } from '@aws-lambda-powertools/logger'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; const logger = new Logger(); diff --git a/examples/snippets/logger/resetKeysDecorator.ts b/examples/snippets/logger/resetKeysDecorator.ts index 4c4f702a94..6a0a6193fc 100644 --- a/examples/snippets/logger/resetKeysDecorator.ts +++ b/examples/snippets/logger/resetKeysDecorator.ts @@ -1,5 +1,5 @@ -import { Logger } from '@aws-lambda-powertools/logger'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; // Persistent attributes will be cached across invocations const logger = new Logger({ diff --git a/examples/snippets/metrics/addHighResolutionMetric.ts b/examples/snippets/metrics/addHighResolutionMetric.ts index 001f753278..5a100997e7 100644 --- a/examples/snippets/metrics/addHighResolutionMetric.ts +++ b/examples/snippets/metrics/addHighResolutionMetric.ts @@ -1,7 +1,7 @@ import { - Metrics, - MetricUnit, MetricResolution, + MetricUnit, + Metrics, } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ diff --git a/examples/snippets/metrics/addMetadata.ts b/examples/snippets/metrics/addMetadata.ts index 9e86310e67..e8a06dfe16 100644 --- a/examples/snippets/metrics/addMetadata.ts +++ b/examples/snippets/metrics/addMetadata.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/metrics/basicUsage.ts b/examples/snippets/metrics/basicUsage.ts index 1deb2285bb..13dfebf1d8 100644 --- a/examples/snippets/metrics/basicUsage.ts +++ b/examples/snippets/metrics/basicUsage.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/captureColdStartMetricDecorator.ts b/examples/snippets/metrics/captureColdStartMetricDecorator.ts index 390657c93f..3c21cc6513 100644 --- a/examples/snippets/metrics/captureColdStartMetricDecorator.ts +++ b/examples/snippets/metrics/captureColdStartMetricDecorator.ts @@ -1,5 +1,5 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/captureColdStartMetricMiddy.ts b/examples/snippets/metrics/captureColdStartMetricMiddy.ts index a09ada1939..02131a5c0d 100644 --- a/examples/snippets/metrics/captureColdStartMetricMiddy.ts +++ b/examples/snippets/metrics/captureColdStartMetricMiddy.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/metrics/createMetrics.ts b/examples/snippets/metrics/createMetrics.ts index 9a66a1bbb3..472f93d7c4 100644 --- a/examples/snippets/metrics/createMetrics.ts +++ b/examples/snippets/metrics/createMetrics.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/customDimensions.ts b/examples/snippets/metrics/customDimensions.ts index a36473571c..fc5c3d3013 100644 --- a/examples/snippets/metrics/customDimensions.ts +++ b/examples/snippets/metrics/customDimensions.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/decorator.ts b/examples/snippets/metrics/decorator.ts index 3595cc41d2..2332630395 100644 --- a/examples/snippets/metrics/decorator.ts +++ b/examples/snippets/metrics/decorator.ts @@ -1,5 +1,5 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/defaultDimensions.ts b/examples/snippets/metrics/defaultDimensions.ts index 7c0340e5f5..c41510b2e3 100644 --- a/examples/snippets/metrics/defaultDimensions.ts +++ b/examples/snippets/metrics/defaultDimensions.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/defaultDimensionsDecorator.ts b/examples/snippets/metrics/defaultDimensionsDecorator.ts index 3c3767ecfd..9535f085be 100644 --- a/examples/snippets/metrics/defaultDimensionsDecorator.ts +++ b/examples/snippets/metrics/defaultDimensionsDecorator.ts @@ -1,5 +1,5 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/defaultDimensionsMiddy.ts b/examples/snippets/metrics/defaultDimensionsMiddy.ts index b5f7ec9256..9fc64520a2 100644 --- a/examples/snippets/metrics/defaultDimensionsMiddy.ts +++ b/examples/snippets/metrics/defaultDimensionsMiddy.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/metrics/manual.ts b/examples/snippets/metrics/manual.ts index 79c0068ca8..424ad50b16 100644 --- a/examples/snippets/metrics/manual.ts +++ b/examples/snippets/metrics/manual.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/middy.ts b/examples/snippets/metrics/middy.ts index d45a4aa08d..6585d4c227 100644 --- a/examples/snippets/metrics/middy.ts +++ b/examples/snippets/metrics/middy.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/metrics/multiValueMetrics.ts b/examples/snippets/metrics/multiValueMetrics.ts index be185d0718..0c4971c135 100644 --- a/examples/snippets/metrics/multiValueMetrics.ts +++ b/examples/snippets/metrics/multiValueMetrics.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/sam.ts b/examples/snippets/metrics/sam.ts index 999e3fd9e3..a5fd3f0964 100644 --- a/examples/snippets/metrics/sam.ts +++ b/examples/snippets/metrics/sam.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; // Metrics parameters fetched from the environment variables (see template.yaml tab) const metrics = new Metrics(); diff --git a/examples/snippets/metrics/setDefaultDimensions.ts b/examples/snippets/metrics/setDefaultDimensions.ts index 7125519d54..877570467e 100644 --- a/examples/snippets/metrics/setDefaultDimensions.ts +++ b/examples/snippets/metrics/setDefaultDimensions.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/singleMetricDifferentDimsDecorator.ts b/examples/snippets/metrics/singleMetricDifferentDimsDecorator.ts index 44bc941bf4..4cdbde17b6 100644 --- a/examples/snippets/metrics/singleMetricDifferentDimsDecorator.ts +++ b/examples/snippets/metrics/singleMetricDifferentDimsDecorator.ts @@ -1,5 +1,5 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; const metrics = new Metrics({ namespace: 'serverlessAirline', diff --git a/examples/snippets/metrics/singleMetricDifferentDimsMiddy.ts b/examples/snippets/metrics/singleMetricDifferentDimsMiddy.ts index 1344455fc8..31c3b70794 100644 --- a/examples/snippets/metrics/singleMetricDifferentDimsMiddy.ts +++ b/examples/snippets/metrics/singleMetricDifferentDimsMiddy.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/metrics/throwOnEmptyMetrics.ts b/examples/snippets/metrics/throwOnEmptyMetrics.ts index 2acb3f3dfd..391ae89124 100644 --- a/examples/snippets/metrics/throwOnEmptyMetrics.ts +++ b/examples/snippets/metrics/throwOnEmptyMetrics.ts @@ -1,4 +1,4 @@ -import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics'; +import { MetricUnit, Metrics } from '@aws-lambda-powertools/metrics'; import { logMetrics } from '@aws-lambda-powertools/metrics/middleware'; import middy from '@middy/core'; diff --git a/examples/snippets/package.json b/examples/snippets/package.json index ecbcdc2c61..8e2759bed3 100644 --- a/examples/snippets/package.json +++ b/examples/snippets/package.json @@ -11,13 +11,8 @@ "test": "echo 'Not Applicable'", "test:e2e": "echo 'Not Applicable'", "build": "echo 'Not Applicable'", - "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", - "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern ." - }, - "lint-staged": { - "*.{js,ts}": "npm run lint-fix", - "*.json": "prettier --write --single-quote false", - "*.yaml": "prettier --write" + "lint": "biome lint .", + "lint:fix": "biome check --write ." }, "license": "MIT-0", "repository": { diff --git a/examples/snippets/parameters/customProviderVault.ts b/examples/snippets/parameters/customProviderVault.ts index 8e86c933dc..4b5c061b9c 100644 --- a/examples/snippets/parameters/customProviderVault.ts +++ b/examples/snippets/parameters/customProviderVault.ts @@ -2,8 +2,8 @@ import { Logger } from '@aws-lambda-powertools/logger'; import { BaseProvider } from '@aws-lambda-powertools/parameters/base'; import Vault from 'hashi-vault-js'; import type { - HashiCorpVaultProviderOptions, HashiCorpVaultGetOptions, + HashiCorpVaultProviderOptions, } from './customProviderVaultTypes.js'; class HashiCorpVaultProvider extends BaseProvider { @@ -96,9 +96,8 @@ class HashiCorpVaultProvider extends BaseProvider { error: response.vaultHelpMessage, }); throw response; - } else { - return response.data; } + return response.data; } /** diff --git a/examples/snippets/parameters/customProviderVaultTypes.ts b/examples/snippets/parameters/customProviderVaultTypes.ts index ac5d99ac4a..4542865e49 100644 --- a/examples/snippets/parameters/customProviderVaultTypes.ts +++ b/examples/snippets/parameters/customProviderVaultTypes.ts @@ -1,5 +1,5 @@ -import { GetOptionsInterface } from '@aws-lambda-powertools/parameters/base/types'; -import Vault from 'hashi-vault-js'; +import type { GetOptionsInterface } from '@aws-lambda-powertools/parameters/base/types'; +import type Vault from 'hashi-vault-js'; /** * Base interface for HashiCorpVaultProviderOptions. diff --git a/examples/snippets/parameters/getParametersByNameGracefulErrorHandling.ts b/examples/snippets/parameters/getParametersByNameGracefulErrorHandling.ts index ecafab2288..eb31342c83 100644 --- a/examples/snippets/parameters/getParametersByNameGracefulErrorHandling.ts +++ b/examples/snippets/parameters/getParametersByNameGracefulErrorHandling.ts @@ -15,7 +15,7 @@ export const handler = async (): Promise => { }); // Handle gracefully, since `/this/param/does/not/exist` will only be available in `_errors` - if (errors && errors.length) { + if (errors?.length) { console.error(`Unable to retrieve parameters: ${errors.join(',')}`); } diff --git a/examples/snippets/parameters/testingYourCodeClientJestMock.ts b/examples/snippets/parameters/testingYourCodeClientJestMock.ts index 3fe93a696f..594f8b778d 100644 --- a/examples/snippets/parameters/testingYourCodeClientJestMock.ts +++ b/examples/snippets/parameters/testingYourCodeClientJestMock.ts @@ -1,10 +1,10 @@ -import { handler } from './testingYourCodeFunctionsHandler'; import { - SecretsManagerClient, GetSecretValueCommand, ResourceNotFoundException, + SecretsManagerClient, } from '@aws-sdk/client-secrets-manager'; import { mockClient } from 'aws-sdk-client-mock'; +import { handler } from './testingYourCodeFunctionsHandler'; import 'aws-sdk-client-mock-jest'; describe('Function tests', () => { diff --git a/examples/snippets/parameters/testingYourCodeFunctionsJestMock.ts b/examples/snippets/parameters/testingYourCodeFunctionsJestMock.ts index 3b42aa9596..ae0deb6522 100644 --- a/examples/snippets/parameters/testingYourCodeFunctionsJestMock.ts +++ b/examples/snippets/parameters/testingYourCodeFunctionsJestMock.ts @@ -1,5 +1,5 @@ -import { handler } from './testingYourCodeFunctionsHandler'; import { getParameter } from '@aws-lambda-powertools/parameters/ssm'; +import { handler } from './testingYourCodeFunctionsHandler'; jest.mock('@aws-lambda-powertools/parameters/ssm', () => ({ getParameter: jest.fn(), diff --git a/examples/snippets/parameters/testingYourCodeProvidersJestMock.ts b/examples/snippets/parameters/testingYourCodeProvidersJestMock.ts index b93062e765..a0e5ffadc9 100644 --- a/examples/snippets/parameters/testingYourCodeProvidersJestMock.ts +++ b/examples/snippets/parameters/testingYourCodeProvidersJestMock.ts @@ -1,6 +1,6 @@ -import { handler } from './testingYourCodeFunctionsHandler'; import { AppConfigProvider } from '@aws-lambda-powertools/parameters/appconfig'; import { Uint8ArrayBlobAdapter } from '@smithy/util-stream'; +import { handler } from './testingYourCodeFunctionsHandler'; describe('Function tests', () => { const providerSpy = jest.spyOn(AppConfigProvider.prototype, 'get'); diff --git a/examples/snippets/parser/decorator.ts b/examples/snippets/parser/decorator.ts index c1a91ad096..c58ade162a 100644 --- a/examples/snippets/parser/decorator.ts +++ b/examples/snippets/parser/decorator.ts @@ -1,8 +1,8 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser'; +import type { Context } from 'aws-lambda'; import { z } from 'zod'; -import { Logger } from '@aws-lambda-powertools/logger'; const logger = new Logger(); diff --git a/examples/snippets/parser/envelopeDecorator.ts b/examples/snippets/parser/envelopeDecorator.ts index e54e0f7387..5b04d80488 100644 --- a/examples/snippets/parser/envelopeDecorator.ts +++ b/examples/snippets/parser/envelopeDecorator.ts @@ -1,9 +1,9 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser'; -import { z } from 'zod'; import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/envelopeMiddy.ts b/examples/snippets/parser/envelopeMiddy.ts index 94f8f012af..0a6034970f 100644 --- a/examples/snippets/parser/envelopeMiddy.ts +++ b/examples/snippets/parser/envelopeMiddy.ts @@ -1,9 +1,9 @@ -import type { Context } from 'aws-lambda'; +import { Logger } from '@aws-lambda-powertools/logger'; +import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; import { parser } from '@aws-lambda-powertools/parser/middleware'; -import { z } from 'zod'; import middy from '@middy/core'; -import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/extend.ts b/examples/snippets/parser/extend.ts index d14845c10f..8dca184aa4 100644 --- a/examples/snippets/parser/extend.ts +++ b/examples/snippets/parser/extend.ts @@ -1,9 +1,9 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser'; -import { z } from 'zod'; import { EventBridgeSchema } from '@aws-lambda-powertools/parser/schemas'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/handlerDecorator.ts b/examples/snippets/parser/handlerDecorator.ts index c8b3cbd40a..e065e662d1 100644 --- a/examples/snippets/parser/handlerDecorator.ts +++ b/examples/snippets/parser/handlerDecorator.ts @@ -1,8 +1,8 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; -import { parser } from '@aws-lambda-powertools/parser'; import { Logger } from '@aws-lambda-powertools/logger'; -import { orderSchema, type Order } from './schema.js'; +import { parser } from '@aws-lambda-powertools/parser'; +import type { Context } from 'aws-lambda'; +import { type Order, orderSchema } from './schema.js'; const logger = new Logger(); diff --git a/examples/snippets/parser/handlerSafeParseDecorator.ts b/examples/snippets/parser/handlerSafeParseDecorator.ts index 55a13e4519..ac081c5e66 100644 --- a/examples/snippets/parser/handlerSafeParseDecorator.ts +++ b/examples/snippets/parser/handlerSafeParseDecorator.ts @@ -1,13 +1,13 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; -import { parser } from '@aws-lambda-powertools/parser'; import { Logger } from '@aws-lambda-powertools/logger'; -import { orderSchema, type Order } from './schema.js'; +import { parser } from '@aws-lambda-powertools/parser'; import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; import type { - ParsedResult, EventBridgeEvent, + ParsedResult, } from '@aws-lambda-powertools/parser/types'; +import type { Context } from 'aws-lambda'; +import { type Order, orderSchema } from './schema.js'; const logger = new Logger(); @@ -25,10 +25,9 @@ class Lambda implements LambdaInterface { if (event.success) { // ... business logic return event.data.id; - } else { - logger.error('Failed to parse event', { event }); - throw new Error('Failed to parse event'); } + logger.error('Failed to parse event', { event }); + throw new Error('Failed to parse event'); } } diff --git a/examples/snippets/parser/manual.ts b/examples/snippets/parser/manual.ts index 2be8204cad..839f62bafd 100644 --- a/examples/snippets/parser/manual.ts +++ b/examples/snippets/parser/manual.ts @@ -1,9 +1,9 @@ -import type { Context } from 'aws-lambda'; -import { z } from 'zod'; +import { Logger } from '@aws-lambda-powertools/logger'; import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; import { EventBridgeSchema } from '@aws-lambda-powertools/parser/schemas'; import type { EventBridgeEvent } from '@aws-lambda-powertools/parser/types'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/manualSafeParse.ts b/examples/snippets/parser/manualSafeParse.ts index ad371d3a4c..63dc0ac204 100644 --- a/examples/snippets/parser/manualSafeParse.ts +++ b/examples/snippets/parser/manualSafeParse.ts @@ -1,9 +1,9 @@ -import type { Context } from 'aws-lambda'; -import { z } from 'zod'; +import { Logger } from '@aws-lambda-powertools/logger'; import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; import { EventBridgeSchema } from '@aws-lambda-powertools/parser/schemas'; import type { EventBridgeEvent } from '@aws-lambda-powertools/parser/types'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/middy.ts b/examples/snippets/parser/middy.ts index ff3bf3a879..763fa8246a 100644 --- a/examples/snippets/parser/middy.ts +++ b/examples/snippets/parser/middy.ts @@ -1,8 +1,8 @@ -import type { Context } from 'aws-lambda'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser/middleware'; -import { z } from 'zod'; import middy from '@middy/core'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/safeParseDecorator.ts b/examples/snippets/parser/safeParseDecorator.ts index 7e709c97a4..a9e466be92 100644 --- a/examples/snippets/parser/safeParseDecorator.ts +++ b/examples/snippets/parser/safeParseDecorator.ts @@ -1,13 +1,13 @@ -import type { Context } from 'aws-lambda'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser'; -import { z } from 'zod'; +import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; import type { - ParsedResult, EventBridgeEvent, + ParsedResult, } from '@aws-lambda-powertools/parser/types'; -import { Logger } from '@aws-lambda-powertools/logger'; -import { EventBridgeEnvelope } from '@aws-lambda-powertools/parser/envelopes'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/safeParseMiddy.ts b/examples/snippets/parser/safeParseMiddy.ts index 547eae73b7..d73bc49096 100644 --- a/examples/snippets/parser/safeParseMiddy.ts +++ b/examples/snippets/parser/safeParseMiddy.ts @@ -1,12 +1,12 @@ -import type { Context } from 'aws-lambda'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser/middleware'; -import { z } from 'zod'; -import middy from '@middy/core'; import type { - ParsedResult, EventBridgeEvent, + ParsedResult, } from '@aws-lambda-powertools/parser/types'; -import { Logger } from '@aws-lambda-powertools/logger'; +import middy from '@middy/core'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/types.ts b/examples/snippets/parser/types.ts index eba3862835..315dc1a4e4 100644 --- a/examples/snippets/parser/types.ts +++ b/examples/snippets/parser/types.ts @@ -1,8 +1,8 @@ -import type { Context } from 'aws-lambda'; +import { Logger } from '@aws-lambda-powertools/logger'; import { parser } from '@aws-lambda-powertools/parser/middleware'; -import { z } from 'zod'; import middy from '@middy/core'; -import { Logger } from '@aws-lambda-powertools/logger'; +import type { Context } from 'aws-lambda'; +import { z } from 'zod'; const logger = new Logger(); diff --git a/examples/snippets/parser/unitTestDecorator.ts b/examples/snippets/parser/unitTestDecorator.ts index eabc1c0f59..3e327a6224 100644 --- a/examples/snippets/parser/unitTestDecorator.ts +++ b/examples/snippets/parser/unitTestDecorator.ts @@ -1,6 +1,6 @@ import type { Context } from 'aws-lambda'; -import type { Order } from './schema.js'; import { handler } from './decorator.js'; +import type { Order } from './schema.js'; describe('Test handler', () => { it('should parse event successfully', async () => { diff --git a/examples/snippets/parser/unitTestSafeParse.ts b/examples/snippets/parser/unitTestSafeParse.ts index 9f83f3a0af..bc2e80a220 100644 --- a/examples/snippets/parser/unitTestSafeParse.ts +++ b/examples/snippets/parser/unitTestSafeParse.ts @@ -1,10 +1,10 @@ -import type { Order } from './schema.js'; -import type { Context } from 'aws-lambda'; -import { handler } from './safeParseDecorator.js'; -import { - ParsedResult, +import type { EventBridgeEvent, + ParsedResult, } from '@aws-lambda-powertools/parser/types'; +import type { Context } from 'aws-lambda'; +import { handler } from './safeParseDecorator.js'; +import type { Order } from './schema.js'; describe('Test handler', () => { it('should parse event successfully', async () => { diff --git a/examples/snippets/tracer/captureAWS.ts b/examples/snippets/tracer/captureAWS.ts index b96c0eeb1e..118a1d897e 100644 --- a/examples/snippets/tracer/captureAWS.ts +++ b/examples/snippets/tracer/captureAWS.ts @@ -1,5 +1,5 @@ -import { S3 } from 'aws-sdk'; import { Tracer } from '@aws-lambda-powertools/tracer'; +import { S3 } from 'aws-sdk'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); // Instrument the AWS SDK client diff --git a/examples/snippets/tracer/captureAWSv3.ts b/examples/snippets/tracer/captureAWSv3.ts index a91bebe16b..8f57416992 100644 --- a/examples/snippets/tracer/captureAWSv3.ts +++ b/examples/snippets/tracer/captureAWSv3.ts @@ -1,5 +1,5 @@ -import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; import { Tracer } from '@aws-lambda-powertools/tracer'; +import { SecretsManagerClient } from '@aws-sdk/client-secrets-manager'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); // Instrument the AWS SDK client diff --git a/examples/snippets/tracer/captureMethodDecorator.ts b/examples/snippets/tracer/captureMethodDecorator.ts index 809a87fd2a..acefc489aa 100644 --- a/examples/snippets/tracer/captureMethodDecorator.ts +++ b/examples/snippets/tracer/captureMethodDecorator.ts @@ -1,5 +1,5 @@ -import { Tracer } from '@aws-lambda-powertools/tracer'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Tracer } from '@aws-lambda-powertools/tracer'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); diff --git a/examples/snippets/tracer/captureMethodManual.ts b/examples/snippets/tracer/captureMethodManual.ts index d4ad79a86b..d440745cef 100644 --- a/examples/snippets/tracer/captureMethodManual.ts +++ b/examples/snippets/tracer/captureMethodManual.ts @@ -1,17 +1,18 @@ import { Tracer } from '@aws-lambda-powertools/tracer'; +import type { Subsegment } from 'aws-xray-sdk-core'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); const getChargeId = async (): Promise => { const parentSubsegment = tracer.getSegment(); // This is the subsegment currently active - let subsegment; + let subsegment: Subsegment | undefined; if (parentSubsegment) { // Create subsegment for the function & set it as active - subsegment = parentSubsegment.addNewSubsegment(`### chargeId`); + subsegment = parentSubsegment.addNewSubsegment('### chargeId'); tracer.setSegment(subsegment); } - let res; + let res: unknown; try { /* ... */ // Add the response as metadata diff --git a/examples/snippets/tracer/decorator.ts b/examples/snippets/tracer/decorator.ts index 985b82bde5..866ebca208 100644 --- a/examples/snippets/tracer/decorator.ts +++ b/examples/snippets/tracer/decorator.ts @@ -1,5 +1,5 @@ -import { Tracer } from '@aws-lambda-powertools/tracer'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Tracer } from '@aws-lambda-powertools/tracer'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); diff --git a/examples/snippets/tracer/disableCaptureResponseHandler.ts b/examples/snippets/tracer/disableCaptureResponseHandler.ts index 2c35dfb080..16fee1b099 100644 --- a/examples/snippets/tracer/disableCaptureResponseHandler.ts +++ b/examples/snippets/tracer/disableCaptureResponseHandler.ts @@ -1,5 +1,5 @@ -import { Tracer } from '@aws-lambda-powertools/tracer'; import type { LambdaInterface } from '@aws-lambda-powertools/commons/types'; +import { Tracer } from '@aws-lambda-powertools/tracer'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); diff --git a/examples/snippets/tracer/manual.ts b/examples/snippets/tracer/manual.ts index af56f12cff..074dfc572a 100644 --- a/examples/snippets/tracer/manual.ts +++ b/examples/snippets/tracer/manual.ts @@ -1,4 +1,5 @@ import { Tracer } from '@aws-lambda-powertools/tracer'; +import type { Subsegment } from 'aws-xray-sdk-core'; const tracer = new Tracer({ serviceName: 'serverlessAirline' }); @@ -7,7 +8,7 @@ export const handler = async ( _context: unknown ): Promise => { const segment = tracer.getSegment(); // This is the facade segment (the one that is created by AWS Lambda) - let subsegment; + let subsegment: Subsegment | undefined; if (segment) { // Create subsegment for the function & set it as active subsegment = segment.addNewSubsegment(`## ${process.env._HANDLER}`);