UNPKG

typed-serverless

Version:

Helps you write a consistent Serverless Framework configuration in TypeScript

81 lines (80 loc) 5.04 kB
import { BuildArn } from './placeholders'; import { Resource, FnSub, ResourceBuilder, Resources, ResourceProps, Functions, FunctionBuilder, ResourceAdapter, BaseResourceParams, HookPhase, ProcessContext, ResourceType, TypedServerlessParams } from './types'; import { BuildArnParamsWithoutResourceId } from './arn'; import { Resolvable } from 'typed-aws'; import { AWS } from '@serverless/typescript'; export declare class TypedServerless<TId extends string = string, TResourceParams extends BaseResourceParams = BaseResourceParams, TConfigType extends AWS = AWS> { readonly params: TypedServerlessParams<TId, TResourceParams, TConfigType>; private constructor(); static createDefault<TId extends string = string>(): TypedServerless<TId, import("./defaults").DefaultResourceParams, AWS>; static create<TId extends string = string, TResourceParams extends BaseResourceParams = BaseResourceParams, TConfigType extends AWS = AWS>(params: TypedServerlessParams<TId, TResourceParams, TConfigType>): TypedServerless<TId, TResourceParams, TConfigType>; protected createResourcePlaceholder<T extends ResourceProps>(id: TId, type: ResourceType, builder: ResourceBuilder<TResourceParams, T>): T; extendsWith<T>(extension: (typed: TypedServerless<TId, TResourceParams, TConfigType>) => T): TypedServerless<TId, TResourceParams, TConfigType> & T; onlyFactory<Y extends string = string, X = unknown>(): (object: { [k in Y]: X; }) => { [k in Y]: X; }; only<Y extends string = string, X = unknown>(object: { [k in Y]: X; }): { [k in Y]: X; }; protected addResources<TResourceId extends TId, TResource extends Resource<TResourceProps>, TResourceProps extends ResourceProps>(resources: { [key in TResourceId]: ResourceBuilder<TResourceParams, TResourceProps>; }): Resources<TResourceId, TResource, TResourceProps>; resources<TResourceId extends TId, TResource extends Resource<TResourceProps>, TResourceProps extends ResourceProps>(resources: { [key in TResourceId]: ResourceBuilder<TResourceParams, TResourceProps>; }): Resources<TResourceId, TResource, TResourceProps>; resource<TResourceId extends TId, TResource extends Resource<TResourceProps>, TResourceProps extends ResourceProps>(resource: { [key in TResourceId]: ResourceBuilder<TResourceParams, ResourceAdapter<TResource, TResourceProps>>; }): Resources<TResourceId, Resource<ResourceAdapter<TResource, TResourceProps>>, ResourceAdapter<TResource, TResourceProps>>; functions<TFunctionId extends TId, TFunctionBuilderParams extends TResourceParams>(functions: { [K in TFunctionId]?: FunctionBuilder<TFunctionBuilderParams>; }): Functions<TFunctionId>; protected asPlaceholder<T>(placeholder: unknown): T; refId(id: TId): TId; ref<T>(id: TId): T; getRef<T>(id: TId): T; arn<T>(id: TId): T; getArn<T>(id: TId): T; getAtt<T>(id: TId, attribute: string): T; getName<T>(id: TId): T; fnSub(content: string, params?: Record<string, unknown>): FnSub; buildLambdaArn(id: TId): BuildArn<TId>; buildBucketArn(id: TId, path?: string): BuildArn<TId>; buildSnsArn(id: TId): BuildArn<TId>; buildEventBusArn(id: TId): BuildArn<TId>; buildSqsArn(id: TId): BuildArn<TId>; /** * @deprecated Prefer #arn - AWS Step Function automatically adds a name suffix, because of that its not possible to build a correct Arn */ buildStepFunctionArn(id: TId): BuildArn<TId>; buildAlarmArn(id: TId): BuildArn<TId>; buildArn(id: TId, params?: BuildArnParamsWithoutResourceId): BuildArn<TId>; /** * The main use case for this is to overcome a limitation in CloudFormation that * does not allow using intrinsic functions as dictionary keys (because * dictionary keys in JSON must be strings). Specifically this is common in IAM * conditions such as `StringEquals: { lhs: "rhs" }` where you want "lhs" to be * a reference. */ stringify<T>(content: unknown): T; cfn<T>(expression: Resolvable<string>): T; protected resourcePlaceholderProcessor({ config, resourceNames, resourceTypes, }: { config: any; resourceNames: any; resourceTypes: any; }): void; protected requiresResource(targetId: TId, sourcePath: string[], { errors, resourceNames, resourceTypes }: ProcessContext<TConfigType>): { logicalId: TId; name: string; } | null; protected buildArnPlaceholderProcessor(processContext: ProcessContext<TConfigType>): void; protected referencePlaceholderProcessor(processContext: ProcessContext<TConfigType>): void; protected replaceStringifyPlaceholders({ config, }: ProcessContext<TConfigType>): void; protected processHook(hookPhase: HookPhase, processContext: ProcessContext<TConfigType>): void; protected processPlaceholders(processContext: ProcessContext<TConfigType>): void; process(config: TConfigType): ProcessContext<TConfigType>; build(rawConfig: TConfigType): TConfigType; }