@invisit/webpack-aws-lambda-auto-deploy-plugin
Version:
Uploads compiled assets to s3 after build
40 lines (39 loc) • 1.38 kB
TypeScript
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>;
}