UNPKG

@invisit/webpack-aws-lambda-auto-deploy-plugin

Version:

Uploads compiled assets to s3 after build

40 lines (39 loc) 1.38 kB
import * as AWS from "aws-sdk"; import type { PackageJson } from "types-package-json"; import Webpack from "webpack"; import { AWSLambdaAutoDeployPluginConfig, EntryLambdaMapping } from "./types"; export default class AWSLambdaAutoDeployPlugin extends Webpack.Plugin { config: AWSLambdaAutoDeployPluginConfig; readonly awsConfig: Partial<AWS.Config>; readonly entryMap: Record<string, EntryLambdaMapping>; readonly pkg: PackageJson; readonly name: string; private readonly clients; /** * Deploy the compilation to the configured * entry <-> lambda mappings * * @param {webpack.compilation.Compilation} compilation * @param {EntryLambdaMapping} entryMapping * @returns {Promise<void>} */ private deploy; /** * Process done compilation event * * @param {webpack.Stats | webpack.compilation.MultiStats} statsOrMultiStats * @returns {Promise<void>} */ private onDone; /** * Entries that have configured functions * * @returns {string[]} */ get entryNames(): string[]; get s3(): any; get lambda(): any; constructor(config: AWSLambdaAutoDeployPluginConfig, awsConfig?: Partial<AWS.Config>, entryMap?: Record<string, EntryLambdaMapping>); apply(compiler: Webpack.Compiler): void; handleErrors(error: any, compilation: any): Promise<void>; }