1313 * @import webpack from 'webpack'
1414 */
1515
16+ /**
17+ * @import { OptionsCallback } from './lib/utils/apply-options-callback.js'
18+ */
19+
1620const EncoreProxy = require ( './lib/EncoreProxy' ) ;
1721const WebpackConfig = require ( './lib/WebpackConfig' ) ;
1822const configGenerator = require ( './lib/config-generator' ) ;
@@ -117,7 +121,7 @@ class Encore {
117121 * })
118122 * ```
119123 *
120- * @param {Function } definePluginOptionsCallback
124+ * @param {OptionsCallback<ConstructorParameters<typeof webpack.DefinePlugin>[0]> } definePluginOptionsCallback
121125 * @returns {Encore }
122126 */
123127 configureDefinePlugin ( definePluginOptionsCallback = ( ) => { } ) {
@@ -138,7 +142,7 @@ class Encore {
138142 * })
139143 * ```
140144 *
141- * @param {Function } friendlyErrorsPluginOptionsCallback
145+ * @param {OptionsCallback<object> } friendlyErrorsPluginOptionsCallback
142146 * @returns {Encore }
143147 */
144148 configureFriendlyErrorsPlugin ( friendlyErrorsPluginOptionsCallback = ( ) => { } ) {
@@ -159,7 +163,7 @@ class Encore {
159163 * })
160164 * ```
161165 *
162- * @param {Function } manifestPluginOptionsCallback
166+ * @param {OptionsCallback<object> } manifestPluginOptionsCallback
163167 * @returns {Encore }
164168 */
165169 configureManifestPlugin ( manifestPluginOptionsCallback = ( ) => { } ) {
@@ -185,7 +189,7 @@ class Encore {
185189 * })
186190 * ```
187191 *
188- * @param {Function } terserPluginOptionsCallback
192+ * @param {OptionsCallback<import('terser-webpack-plugin').BasePluginOptions & import('terser-webpack-plugin').DefinedDefaultMinimizerAndOptions<import('terser').MinifyOptions>> } terserPluginOptionsCallback
189193 * @returns {Encore }
190194 */
191195 configureTerserPlugin ( terserPluginOptionsCallback = ( ) => { } ) {
@@ -206,7 +210,7 @@ class Encore {
206210 * })
207211 * ```
208212 *
209- * @param {Function } cssMinimizerPluginOptionsCallback
213+ * @param {OptionsCallback<import('css-minimizer-webpack-plugin').BasePluginOptions & import('css-minimizer-webpack-plugin').DefinedDefaultMinimizerAndOptions<import('css-minimizer-webpack-plugin').CssNanoOptionsExtended>> } cssMinimizerPluginOptionsCallback
210214 * @returns {Encore }
211215 */
212216 configureCssMinimizerPlugin ( cssMinimizerPluginOptionsCallback = ( ) => { } ) {
@@ -669,7 +673,7 @@ class Encore {
669673 * });
670674 * ```
671675 *
672- * @param {Function } callback
676+ * @param {OptionsCallback<object> } callback
673677 * @returns {Encore }
674678 */
675679 configureSplitChunks ( callback ) {
@@ -691,7 +695,7 @@ class Encore {
691695 * });
692696 * ```
693697 *
694- * @param {Function } callback
698+ * @param {OptionsCallback<Exclude<webpack.Configuration['watchOptions'], undefined>> } callback
695699 * @returns {Encore }
696700 */
697701 configureWatchOptions ( callback ) {
@@ -718,7 +722,7 @@ class Encore {
718722 * });
719723 * ```
720724 *
721- * @param {Function } callback
725+ * @param {OptionsCallback<import('webpack-dev-server').Configuration> } callback
722726 * @returns {Encore }
723727 */
724728 configureDevServerOptions ( callback ) {
@@ -794,7 +798,7 @@ class Encore {
794798 * })
795799 * ```
796800 *
797- * @param {Function } postCssLoaderOptionsCallback
801+ * @param {OptionsCallback<object> } postCssLoaderOptionsCallback
798802 * @returns {Encore }
799803 */
800804 enablePostCssLoader ( postCssLoaderOptionsCallback = ( ) => { } ) {
@@ -834,7 +838,7 @@ class Encore {
834838 * Options parameters for resolve-url-loader
835839 * // https://www.npmjs.com/package/resolve-url-loader#options
836840 *
837- * @param {Function } sassLoaderOptionsCallback
841+ * @param {OptionsCallback<object> } sassLoaderOptionsCallback
838842 * @param {object } encoreOptions
839843 * @returns {Encore }
840844 */
@@ -861,7 +865,7 @@ class Encore {
861865 * });
862866 * ```
863867 *
864- * @param {Function } lessLoaderOptionsCallback
868+ * @param {OptionsCallback<object> } lessLoaderOptionsCallback
865869 * @returns {Encore }
866870 */
867871 enableLessLoader ( lessLoaderOptionsCallback = ( ) => { } ) {
@@ -886,7 +890,7 @@ class Encore {
886890 * });
887891 * ```
888892 *
889- * @param {Function } stylusLoaderOptionsCallback
893+ * @param {OptionsCallback<object> } stylusLoaderOptionsCallback
890894 * @returns {Encore }
891895 */
892896 enableStylusLoader ( stylusLoaderOptionsCallback = ( ) => { } ) {
@@ -966,7 +970,7 @@ class Encore {
966970 * It should contain the version of core-js you added to your project
967971 * if useBuiltIns isn't set to false.
968972 *
969- * @param {Function |null } callback
973+ * @param {OptionsCallback<object> |null } callback
970974 * @param {object } encoreOptions
971975 * @returns {Encore }
972976 */
@@ -992,7 +996,7 @@ class Encore {
992996 * });
993997 * ```
994998 *
995- * @param {Function } callback
999+ * @param {OptionsCallback<object> } callback
9961000 * @returns {Encore }
9971001 */
9981002 configureBabelPresetEnv ( callback ) {
@@ -1013,7 +1017,7 @@ class Encore {
10131017 * });
10141018 * ```
10151019 *
1016- * @param {Function } callback
1020+ * @param {OptionsCallback<object> } callback
10171021 * @returns {Encore }
10181022 */
10191023 configureCssLoader ( callback ) {
@@ -1056,7 +1060,7 @@ class Encore {
10561060 * ```
10571061 *
10581062 * @param {object } buildDependencies
1059- * @param {Function } cacheCallback
1063+ * @param {OptionsCallback<webpack.FileCacheOptions> } cacheCallback
10601064 * @returns {Encore }
10611065 */
10621066 enableBuildCache ( buildDependencies , cacheCallback = ( cache ) => { } ) {
@@ -1083,8 +1087,8 @@ class Encore {
10831087 * );
10841088 * ```
10851089 *
1086- * @param {Function } loaderOptionsCallback
1087- * @param {Function } pluginOptionsCallback
1090+ * @param {OptionsCallback<import('mini-css-extract-plugin').LoaderOptions> } loaderOptionsCallback
1091+ * @param {OptionsCallback<import('mini-css-extract-plugin').PluginOptions> } pluginOptionsCallback
10881092 * @returns {Encore }
10891093 */
10901094 configureMiniCssExtractPlugin ( loaderOptionsCallback , pluginOptionsCallback = ( ) => { } ) {
@@ -1149,7 +1153,7 @@ class Encore {
11491153 * });
11501154 * ```
11511155 *
1152- * @param {Function } callback
1156+ * @param {OptionsCallback<object> } callback
11531157 * @returns {Encore }
11541158 */
11551159 enableTypeScriptLoader ( callback = ( ) => { } ) {
@@ -1164,7 +1168,7 @@ class Encore {
11641168 *
11651169 * This is a build optimization API to reduce build times.
11661170 *
1167- * @param {Function } forkedTypeScriptTypesCheckOptionsCallback
1171+ * @param {OptionsCallback<object> } forkedTypeScriptTypesCheckOptionsCallback
11681172 * @returns {Encore }
11691173 */
11701174 enableForkedTypeScriptTypesChecking ( forkedTypeScriptTypesCheckOptionsCallback = ( ) => { } ) {
@@ -1252,7 +1256,7 @@ class Encore {
12521256 * Configure Babel to use the preset "@vue/babel-preset-jsx",
12531257 * in order to enable JSX usage in Vue components.
12541258 *
1255- * @param {Function } vueLoaderOptionsCallback
1259+ * @param {OptionsCallback<object> } vueLoaderOptionsCallback
12561260 * @param {object } encoreOptions
12571261 * @returns {Encore }
12581262 */
@@ -1279,7 +1283,7 @@ class Encore {
12791283 * ```
12801284 *
12811285 * @param {boolean } enabled
1282- * @param {Function } notifierPluginOptionsCallback
1286+ * @param {OptionsCallback<object> } notifierPluginOptionsCallback
12831287 * @returns {Encore }
12841288 */
12851289 enableBuildNotifications ( enabled = true , notifierPluginOptionsCallback = ( ) => { } ) {
@@ -1304,7 +1308,7 @@ class Encore {
13041308 * });
13051309 * ```
13061310 *
1307- * @param {Function } callback
1311+ * @param {OptionsCallback<object> } callback
13081312 * @returns {Encore }
13091313 */
13101314 enableHandlebarsLoader ( callback = ( ) => { } ) {
@@ -1351,7 +1355,7 @@ class Encore {
13511355 * });
13521356 * ```
13531357 *
1354- * @param {Function } callback
1358+ * @param {OptionsCallback<object> } callback
13551359 * @returns {Encore }
13561360 */
13571361 configureStyleLoader ( callback ) {
@@ -1438,7 +1442,7 @@ class Encore {
14381442 * ```
14391443 *
14401444 * @param {object } options
1441- * @param {string|object|Function } ruleCallback
1445+ * @param {OptionsCallback<webpack.RuleSetRule> } ruleCallback
14421446 * @returns {Encore }
14431447 */
14441448 configureImageRule ( options = { } , ruleCallback = ( rule ) => { } ) {
@@ -1455,7 +1459,7 @@ class Encore {
14551459 * See configureImageRule() for more details.
14561460 *
14571461 * @param {object } options
1458- * @param {string|object|Function } ruleCallback
1462+ * @param {OptionsCallback<webpack.RuleSetRule> } ruleCallback
14591463 * @returns {Encore }
14601464 */
14611465 configureFontRule ( options = { } , ruleCallback = ( rule ) => { } ) {
@@ -1479,7 +1483,7 @@ class Encore {
14791483 * ```
14801484 *
14811485 * @param {string } name
1482- * @param {Function } callback
1486+ * @param {OptionsCallback<webpack.RuleSetRule> } callback
14831487 * @returns {Encore }
14841488 */
14851489 configureLoaderRule ( name , callback ) {
@@ -1501,7 +1505,7 @@ class Encore {
15011505 * })
15021506 * ```
15031507 *
1504- * @param {Function } cleanOptionsCallback
1508+ * @param {OptionsCallback<Exclude<ConstructorParameters<typeof webpack.CleanPlugin>[0], undefined>> } cleanOptionsCallback
15051509 * @returns {Encore }
15061510 */
15071511 cleanupOutputBeforeBuild ( cleanOptionsCallback = ( ) => { } ) {
0 commit comments