Stratal API Reference
    Preparing search index...

    Module stratal

    stratal

    A modular Cloudflare Workers framework with automatic OpenAPI documentation, dependency injection, queue consumers, cron jobs, and type-safe configuration.

    For full documentation and examples, see the main README.

    • Automatic OpenAPI 3.0 spec generation with Scalar docs UI from Zod schemas
    • Two-tier dependency injection (global + request-scoped) via tsyringe
    • NestJS-style modular architecture with lifecycle hooks and dynamic modules
    • Convention-based Hono routing with auto-derived HTTP methods and status codes
    • Typed Cloudflare Queue consumers and cron job scheduling
    • S3-compatible storage, email (Resend/SMTP), and type-safe i18n
    • Route guards, middleware, and environment type augmentation
    npm install stratal
    # or
    yarn add stratal

    Stratal keeps heavy integrations optional. Install only what you need:

    # Storage (S3-compatible)
    npm install @aws-sdk/client-s3 @aws-sdk/lib-storage @aws-sdk/s3-request-presigner

    # Email (Resend provider)
    npm install resend react react-dom @react-email/components

    # Email (SMTP provider)
    npm install nodemailer

    # File uploads (TUS protocol)
    npm install @tus/server

    Import specific modules for better tree-shaking:

    import { Application, OpenAPIModule } from 'stratal' // Core + OpenAPI docs
    import { Container } from 'stratal/di' // DI container
    import { RouterService } from 'stratal/router' // Routing
    import { z } from 'stratal/validation' // Zod + OpenAPI
    import { ApplicationError } from 'stratal/errors' // Error types
    import { I18nModule } from 'stratal/i18n' // Internationalization
    import { CacheModule } from 'stratal/cache' // Caching
    import { LoggerService } from 'stratal/logger' // Logging

    MIT

    Enumerations

    LogLevel
    Scope

    Classes

    Application
    ApplicationError
    CacheDeleteError
    CacheGetError
    CacheListError
    CacheModule
    CachePutError
    CacheService
    CloudflareQueueProvider
    ConditionalBindingBuilderImpl
    ConditionalBindingFallbackError
    ConfigModule
    ConfigService
    ConfigValidationError
    ConsoleTransport
    ConsumerRegistry
    Container
    ControllerRegistrationError
    CronExecutionError
    CronManager
    DiskNotConfiguredError
    EmailModule
    EmailProviderFactory
    EmailProviderNotSupportedError
    EmailResendApiFailedError
    EmailService
    EmailSmtpConnectionFailedError
    FileNotFoundError
    FileTooLargeError
    GlobalErrorHandler
    GuardExecutionService
    I18nContextMiddleware
    I18nModule
    InternalError
    InvalidDiskError
    InvalidFileTypeError
    JsonFormatter
    LocaleExtractionMiddleware
    LocaleNotSupportedError
    LoggerService
    MiddlewareConfigurationService
    MiddlewareConsumerImpl
    ModuleRegistry
    OpenAPIConfigService
    OpenAPIModule
    OpenAPIRouteRegistrationError
    OpenAPIService
    OpenAPIValidationError
    PresignedUrlInvalidExpiryError
    PrettyFormatter
    QueueBindingNotFoundError
    QueueManager
    QueueModule
    QueueProviderFactory
    QueueProviderNotSupportedError
    QueueRegistry
    QueueSender
    RequestContainerNotInitializedError
    RequestContextStore
    RequestScopeOperationNotAllowedError
    RequestScopeService
    ResendApiKeyMissingError
    RouteNotFoundError
    RouterContext
    RouteRegistrationService
    RouterService
    S3StorageProvider
    SmtpConfigurationMissingError
    SmtpHostMissingError
    StorageManagerService
    StorageModule
    StorageProviderNotSupportedError
    StorageResponseBodyMissingError
    StorageService
    StratalWorker
    SyncQueueProvider
    TranslationMissingError

    Interfaces

    ApplicationConfig
    AppMessages
    AsyncModuleOptions
    AuthGuardOptions
    CanActivate
    ClassProvider
    CompletedPart
    CompleteMultipartResult
    ConditionalBindingBuilder
    ConditionalBindingGive
    ConditionalBindingUse
    ConfigModuleOptions
    ConfigNamespace
    ContainerLike
    ContainerOptions
    ControllerOptions
    CreateMultipartOptions
    CreateMultipartResult
    CronJob
    DeleteObjectsResult
    DependencyContainer
    DownloadResult
    DynamicModule
    EmailModuleOptions
    ErrorResponse
    ExistingProvider
    FactoryProvider
    GuardMetadata
    HeadObjectResult
    I18nModuleOptions
    IConfigService
    IController
    II18nService
    InternalLogContext
    IOpenAPIConfigService
    IQueueConsumer
    IQueueProvider
    IQueueSender
    IS3MultipartProvider
    IStorageProvider
    ListMultipartUploadsResult
    ListPartsResult
    LogEntry
    Middleware
    MiddlewareBuilder
    MiddlewareConfigEntry
    MiddlewareConfigurable
    MiddlewareConsumer
    ModuleClass
    ModuleConfig
    ModuleContext
    ModuleOptions
    MultipartUploadInfo
    OnInitialize
    OnShutdown
    OpenAPIConfigOverride
    OpenAPIEffectiveConfig
    OpenAPIInfo
    OpenAPIModuleOptions
    ParamInjection
    PartInfo
    PredicateContainer
    PresignedUrlConfig
    QueueMessage
    QueueModuleOptions
    QueueNames
    RegistryEntry
    ResolvedEmailAttachment
    ResolvedI18nOptions
    RouteConfig
    RouteInfo
    RouterEnv
    RouterVariables
    SmtpConfig
    StorageConfig
    StorageEntry
    StratalEnv
    UploadOptions
    UploadPartResult
    ValueProvider
    WhenOptions

    Type Aliases

    AppMessageKeys
    CacheToken
    ConfigPath
    ConfigPathValue
    Constructor
    DeepKeys
    DeleteFileInput
    DispatchMessage
    DIToken
    EmailAddress
    EmailAttachment
    EmailMessage
    Environment
    ErrorCode
    ExtensionDecorator
    FileExistsInput
    GetPresignedUrlInput
    Guard
    GuardClass
    InferConfigType
    InjectionToken
    InlineEmailAttachment
    LogContext
    MessageKeys
    MessageParams
    Messages
    MiddlewareRouteTarget
    PresignedUrlResult
    Provider
    QueueName
    QueueToken
    ResolvedEmailMessage
    RouteFilterFn
    RouteResponse
    SecurityScheme
    SendBatchEmailInput
    SendBatchEmailInputWithTemplate
    SendEmailInput
    SendEmailInputWithTemplate
    StorageEmailAttachment
    StreamingBlobPayloadInputTypes
    SystemMessageKeys
    UploadResult

    Variables

    CACHE_TOKENS
    commonErrorSchemas
    CONFIG_TOKENS
    container
    CONTAINER_TOKEN
    deleteFileInputSchema
    DI_TOKENS
    EMAIL_TOKENS
    emailAddressSchema
    emailAttachmentSchema
    emailMessageSchema
    ERROR_CODES
    errorResponseSchema
    fileExistsInputSchema
    getPresignedUrlInputSchema
    GUARD_METADATA_KEY
    HTTP_METHODS
    I18N_TOKENS
    INJECT_PARAM_METADATA_KEY
    inlineEmailAttachmentSchema
    LOG_LEVEL_PRIORITY
    LOGGER_TOKENS
    messages
    MODULE_OPTIONS_KEY
    OPENAPI_TOKENS
    paginationQuerySchema
    presignedUrlResultSchema
    QUEUE_TOKENS
    ROUTE_METADATA_KEYS
    ROUTER_CONTEXT_KEYS
    ROUTER_TOKENS
    SECURITY_SCHEMES
    sendBatchEmailInputSchema
    sendEmailInputSchema
    STORAGE_TOKENS
    storageEmailAttachmentSchema
    successMessageSchema
    uploadResultSchema
    uuidParamSchema
    validationErrorResponseSchema

    Functions

    Controller
    createMiddlewareConsumer
    getControllerGuards
    getControllerOptions
    getControllerRoute
    getDecoratedMethods
    getHttpStatus
    getLocales
    getMessages
    getMethodGuards
    getMethodInjections
    getModuleOptions
    getRouteConfig
    inject
    injectable
    InjectParam
    InjectQueue
    isApplicationError
    isErrorResponse
    isModuleClass
    Module
    paginatedResponseSchema
    registerAs
    resolveI18nOptions
    Route
    setupI18nCompiler
    singleton
    Transient
    UseGuards