UNPKG

serverless-esbuild

Version:

Serverless plugin for zero-config JavaScript and TypeScript code bundling using extremely fast esbuild

141 lines 4.31 kB
import type { WatchOptions } from 'chokidar'; import type { BuildOptions, BuildResult, Plugin } from 'esbuild'; import type Serverless from 'serverless'; export type ConfigFn = (sls: Serverless) => Configuration; export type Plugins = Plugin[]; export type ReturnPluginsFn = (sls: Serverless) => Plugins; export type ESMPluginsModule = { default: Plugins | ReturnPluginsFn; }; export interface ImprovedServerlessOptions extends Serverless.Options { package?: string; } export interface WatchConfiguration { pattern?: string[] | string; ignore?: string[] | string; chokidar?: WatchOptions; } export interface PackagerOptions { scripts?: string[] | string; noInstall?: boolean; ignoreLockfile?: boolean; } interface NodeExternalsOptions { allowList?: string[]; } export type EsbuildOptions = Omit<BuildOptions, 'watch' | 'plugins'>; export interface Configuration extends EsbuildOptions { concurrency?: number; zipConcurrency?: number; packager: PackagerId; packagerOptions: PackagerOptions; packagePath: string; exclude: '*' | string[]; nativeZip: boolean; watch: WatchConfiguration; installExtraArgs: string[]; plugins?: string | Plugin[]; keepOutputDirectory?: boolean; outputWorkFolder?: string; outputBuildFolder?: string; outputFileExtension: '.js' | '.cjs' | '.mjs'; nodeExternals?: NodeExternalsOptions; skipBuild?: boolean; skipRebuild?: boolean; skipBuildExcludeFns: string[]; stripEntryResolveExtensions?: boolean; disposeContext?: boolean; } export interface EsbuildFunctionDefinitionHandler extends Serverless.FunctionDefinitionHandler { disposeContext?: boolean; skipEsbuild: boolean; esbuildEntrypoint?: string; } export interface FunctionEntry { entry: string; func: Serverless.FunctionDefinitionHandler | null; functionAlias?: string; } export interface FunctionBuildResult extends FunctionReference { bundlePath: string; } export interface FunctionReference { func: Serverless.FunctionDefinitionHandler; functionAlias: string; } interface BuildInvalidate { (): Promise<BuildIncremental>; dispose(): void; } interface BuildIncremental extends BuildResult { rebuild: BuildInvalidate; } interface OldAPIResult extends BuildResult { rebuild?: BuildInvalidate; stop?: () => void; } export interface FileBuildResult { bundlePath: string; entry: string; result: OldAPIResult; context?: BuildContext | null; } interface ServeOptions { port?: number; host?: string; servedir?: string; keyfile?: string; certfile?: string; onRequest?: (args: ServeOnRequestArgs) => void; } interface ServeOnRequestArgs { remoteAddress: string; method: string; path: string; status: number; /** The time to generate the response, not to send it */ timeInMS: number; } export interface BuildContext { /** Documentation: https://esbuild.github.io/api/#rebuild */ rebuild(): Promise<BuildResult>; /** Documentation: https://esbuild.github.io/api/#watch */ watch(options?: {}): Promise<void>; /** Documentation: https://esbuild.github.io/api/#serve */ serve(options?: ServeOptions): Promise<ServeResult>; cancel(): Promise<void>; dispose(): Promise<void>; } /** Documentation: https://esbuild.github.io/api/#serve-return-values */ interface ServeResult { port: number; hosts: string[]; } export type JSONObject = any; export interface DependenciesResult { stdout?: string; dependencies?: DependencyMap; } export type DependencyMap = Record<string, DependencyTree>; export interface DependencyTree { version: string; dependencies?: DependencyMap; /** Indicates the dependency is available from the root node_modules folder/root of this tree */ isRootDep?: boolean; } export interface IFile { readonly localPath: string; readonly rootPath: string; } export type IFiles = readonly IFile[]; export type PackagerId = 'npm' | 'pnpm' | 'yarn'; export type PackageJSON = { name: string; version: string; dependencies?: Record<string, string>; devDependencies?: Record<string, string>; peerDependencies?: Record<string, string>; [key: string]: unknown; }; export {}; //# sourceMappingURL=types.d.ts.map