azion
Version:
Azion Packages for Edge Computing.
83 lines (68 loc) • 2.87 kB
TypeScript
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 { }