UNPKG

azion

Version:

Azion Packages for Edge Computing.

83 lines (68 loc) 2.87 kB
import { BuildConfiguration } from 'azion/config'; import { BuildContext } from 'azion/config'; import { BuildOptions } from 'esbuild'; import { Configuration } from 'webpack'; import { Plugin as Plugin_3 } from 'esbuild'; import { WebpackPluginInstance } from 'webpack'; export declare interface BundlerPluginFunctions<C extends BundlerProviderConfig> { applyPolyfills: (ctx: BuildContext) => (config: C) => (buildConfiguration: BuildConfiguration) => C; applyAzionModule: (ctx: BuildContext) => (config: C) => C; } export declare type BundlerProviderConfig = WebpackConfiguration | ESBuildConfiguration; /** * Creates ESBuild bundler instance */ export declare const createAzionESBuildConfig: (buildConfig: BuildConfiguration, ctx: BuildContext) => ESBuildBundler; /** * Creates Webpack bundler instance */ export declare const createAzionWebpackConfig: (buildConfig: BuildConfiguration, ctx: BuildContext) => WebpackBundler; declare interface ESBuildBundler { baseConfig: ESBuildConfiguration; mergeConfig: (config: ESBuildConfiguration) => ESBuildConfiguration; applyConfig: (config: ESBuildConfiguration) => ESBuildConfiguration; executeBuild: (config: ESBuildBundler) => Promise<void>; } export declare type ESBuildConfiguration = { plugins?: Plugin_3[]; define?: Record<string, string>; } & BuildOptions & { banner?: { js?: string; }; }; export declare interface ESBuildPluginClasses { NodePolyfillsPlugin: (isProduction: boolean) => Plugin_3; AzionPolyfillsPlugin: (isProduction: boolean) => Plugin_3; } /** * Executes the esbuild build process */ export declare const executeESBuildBuild: (bundler: ESBuildBundler) => Promise<void>; /** * Executes the webpack build process */ export declare const executeWebpackBuild: (bundler: WebpackBundler) => Promise<void>; declare interface Plugin_2 { (config: Record<string, unknown>): Record<string, unknown>; } export { Plugin_2 as Plugin } declare interface WebpackBundler { baseConfig: WebpackConfiguration; mergeConfig: (config: WebpackConfiguration) => WebpackConfiguration; applyConfig: (config: WebpackConfiguration) => WebpackConfiguration; executeBuild: (config: WebpackBundler) => Promise<void>; } export declare interface WebpackConfiguration extends Configuration { plugins?: WebpackPluginInstance[]; banner?: { js?: string; }; define?: Record<string, string>; } export declare interface WebpackPluginClasses { NodePolyfillsPlugin: new (isProduction: boolean) => WebpackPluginInstance; AzionPolyfillsPlugin: new (isProduction: boolean) => WebpackPluginInstance; BabelCustomLoaderPlugin: new (preset?: string, presetsAllowed?: string[]) => WebpackPluginInstance | undefined; } export { }