Package Exports
- @agendacheia/lambda-utils
- @agendacheia/lambda-utils/aws
- @agendacheia/lambda-utils/config
- @agendacheia/lambda-utils/errors
- @agendacheia/lambda-utils/graphql
- @agendacheia/lambda-utils/http
- @agendacheia/lambda-utils/logger
- @agendacheia/lambda-utils/package.json
- @agendacheia/lambda-utils/stripe
- @agendacheia/lambda-utils/stripe/billing
- @agendacheia/lambda-utils/stripe/connect
- @agendacheia/lambda-utils/stripe/payments
- @agendacheia/lambda-utils/stripe/webhooks
- @agendacheia/lambda-utils/testing
- @agendacheia/lambda-utils/types
- @agendacheia/lambda-utils/validation
Readme
@agendacheia/lambda-utils
Shared utilities for AWS Lambda functions in the AgendaCheia platform.
Installation
npm install @agendacheia/lambda-utilsFeatures
- HTTP Utilities: Request/response handling, CORS, headers
- Logger: Structured CloudWatch logging with context support
- GraphQL Client: Type-safe GraphQL operations with retry logic
- AWS Clients: Pre-configured S3, SQS, SES, Kinesis, CloudWatch clients
- Validation: Input validation and sanitization
- Error Classes: Standardized error handling
- Configuration: Environment variable helpers
- Stripe Integration: Complete Stripe SDK utilities for Billing, Connect, Payments, and Webhooks
Usage
Logger
import { createPreSignUpLogger } from '@agendacheia/lambda-utils/logger'
const logger = createPreSignUpLogger(event, context)
logger.info('Processing request', { userId: '123' })HTTP Response
import { createResponse, ok, badRequest } from '@agendacheia/lambda-utils/http'
return ok({ message: 'Success' })
return badRequest('Invalid input')Validation
import { createSchema, required, email } from '@agendacheia/lambda-utils/validation'
const schema = createSchema({
email: { rules: [required(), email()] },
})
const result = schema.validate(input)Error Classes
import { ValidationError, NotFoundError } from '@agendacheia/lambda-utils/errors'
throw new ValidationError('Email is required')
throw new NotFoundError('User')Stripe Integration
import {
createStripeClientFromEnv,
createSubscription,
cancelSubscription,
StripeApiError,
} from '@agendacheia/lambda-utils/stripe'
const client = createStripeClientFromEnv(logger)
// Create a subscription
const subscription = await createSubscription(client, {
customerId: 'cus_xxx',
priceId: 'price_xxx',
trialPeriodDays: 14
})
// Handle Stripe Connect
import { createConnectAccount, getAccountStatus } from '@agendacheia/lambda-utils/stripe/connect'
const account = await createConnectAccount(client, {
businessId: 'biz_123',
email: 'business@example.com',
type: 'individual'
})
// Process PIX payments (Brazil)
import { createPixPayment, getPixQrCode } from '@agendacheia/lambda-utils/stripe/payments'
const payment = await createPixPayment(client, {
amount: 10000, // R$ 100.00 in centavos
customerId: 'cus_xxx',
businessId: 'biz_123'
})
// Webhook handling
import { WebhookRouter, verifyWebhookSignature } from '@agendacheia/lambda-utils/stripe/webhooks'
const router = new WebhookRouter()
router.on('invoice.paid', handleInvoicePaid)
router.on('payment_intent.succeeded', handlePaymentSuccess)Module Exports
| Module | Import Path |
|---|---|
| HTTP | @agendacheia/lambda-utils/http |
| Logger | @agendacheia/lambda-utils/logger |
| GraphQL | @agendacheia/lambda-utils/graphql |
| AWS | @agendacheia/lambda-utils/aws |
| Validation | @agendacheia/lambda-utils/validation |
| Errors | @agendacheia/lambda-utils/errors |
| Config | @agendacheia/lambda-utils/config |
| Stripe (all) | @agendacheia/lambda-utils/stripe |
| Stripe Billing | @agendacheia/lambda-utils/stripe/billing |
| Stripe Connect | @agendacheia/lambda-utils/stripe/connect |
| Stripe Payments | @agendacheia/lambda-utils/stripe/payments |
| Stripe Webhooks | @agendacheia/lambda-utils/stripe/webhooks |
License
UNLICENSED - Internal use only