diff --git a/packages/core/index.d.ts b/packages/core/index.d.ts new file mode 100644 index 00000000..299cf5b6 --- /dev/null +++ b/packages/core/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for @webpack-blocks/core 1.0.0 +// Project: webpack-blocks +// Definitions by: Stephan Schneider + +import { Configuration as WebpackConfig, Condition, Rule, Plugin } from 'webpack' + +export function createConfig(configSetter: WebpackBlock[]): object +export function group(configSetters: WebpackBlock[]): WebpackBlock +export function env(envName: string, configSetters: WebpackBlock[]): WebpackBlock +export function match(test: Condition | Condition[], configSetters: Function[]): Function + + +export interface WebpackBlock { + (context: Object, util: WebpackBlockUtils): WebpackBlockUpdater +} + +export interface WebpackBlockUpdater { + (previousConfig: WebpackConfig): WebpackConfig +} + +/*~ You can declare types that are available via importing the module */ +export interface WebpackBlockUtils { + merge: (configSnippet: WebpackConfig) => WebpackBlockUpdater + addLoader: (loader: Rule) => WebpackBlockUpdater + addPlugin: (plugin: Plugin) => WebpackBlockUpdater +} diff --git a/packages/webpack/index.d.ts b/packages/webpack/index.d.ts new file mode 100644 index 00000000..dca6269a --- /dev/null +++ b/packages/webpack/index.d.ts @@ -0,0 +1,27 @@ +// Type definitions for @webpack-blocks/webpack 1.0.0 +// Project: webpack-blocks +// Definitions by: Stephan Schneider + +import { + createConfig, + group, + env, + match, + WebpackBlock, + WebpackBlockUpdater +} from '@webpack-blocks/core' +import { Configuration, Plugin, Entry, Options, Resolve, Output } from 'webpack' +export { createConfig, group, env, match } + +export function addPlugins(plugins: Plugin[]): WebpackBlock +export function customConfig(configSnippet: Configuration): WebpackBlockUpdater +export function defineConstants(constants: { [key: string]: any }): WebpackBlock +export function setEnv(envs: string[] | { [key: string]: any }): WebpackBlock +// TODO: support EntryFunc +export function entryPoint(entry: string | string[] | Entry): WebpackBlock +export function performance(perfBudgetOptions: Options.Performance): WebpackBlock +export function resolve(config: Resolve): WebpackBlock +export function setContext(path: string): WebpackBlock +export function setDevTool(devtool: Options.Devtool): WebpackBlock +export function setOutput(output: string | Output): WebpackBlock +export function sourceMaps(devtool?: Options.Devtool): WebpackBlock