13
13
* @import webpack from 'webpack'
14
14
*/
15
15
16
+ /**
17
+ * @import { OptionsCallback } from './lib/utils/apply-options-callback.js'
18
+ */
19
+
16
20
const EncoreProxy = require ( './lib/EncoreProxy' ) ;
17
21
const WebpackConfig = require ( './lib/WebpackConfig' ) ;
18
22
const configGenerator = require ( './lib/config-generator' ) ;
@@ -117,7 +121,7 @@ class Encore {
117
121
* })
118
122
* ```
119
123
*
120
- * @param {Function } definePluginOptionsCallback
124
+ * @param {OptionsCallback<ConstructorParameters<typeof webpack.DefinePlugin>[0]> } definePluginOptionsCallback
121
125
* @returns {Encore }
122
126
*/
123
127
configureDefinePlugin ( definePluginOptionsCallback = ( ) => { } ) {
@@ -138,7 +142,7 @@ class Encore {
138
142
* })
139
143
* ```
140
144
*
141
- * @param {Function } friendlyErrorsPluginOptionsCallback
145
+ * @param {OptionsCallback<object> } friendlyErrorsPluginOptionsCallback
142
146
* @returns {Encore }
143
147
*/
144
148
configureFriendlyErrorsPlugin ( friendlyErrorsPluginOptionsCallback = ( ) => { } ) {
@@ -159,7 +163,7 @@ class Encore {
159
163
* })
160
164
* ```
161
165
*
162
- * @param {Function } manifestPluginOptionsCallback
166
+ * @param {OptionsCallback<object> } manifestPluginOptionsCallback
163
167
* @returns {Encore }
164
168
*/
165
169
configureManifestPlugin ( manifestPluginOptionsCallback = ( ) => { } ) {
@@ -185,7 +189,7 @@ class Encore {
185
189
* })
186
190
* ```
187
191
*
188
- * @param {Function } terserPluginOptionsCallback
192
+ * @param {OptionsCallback<import('terser-webpack-plugin').BasePluginOptions & import('terser-webpack-plugin').DefinedDefaultMinimizerAndOptions<import('terser').MinifyOptions>> } terserPluginOptionsCallback
189
193
* @returns {Encore }
190
194
*/
191
195
configureTerserPlugin ( terserPluginOptionsCallback = ( ) => { } ) {
@@ -206,7 +210,7 @@ class Encore {
206
210
* })
207
211
* ```
208
212
*
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
210
214
* @returns {Encore }
211
215
*/
212
216
configureCssMinimizerPlugin ( cssMinimizerPluginOptionsCallback = ( ) => { } ) {
@@ -669,7 +673,7 @@ class Encore {
669
673
* });
670
674
* ```
671
675
*
672
- * @param {Function } callback
676
+ * @param {OptionsCallback<object> } callback
673
677
* @returns {Encore }
674
678
*/
675
679
configureSplitChunks ( callback ) {
@@ -691,7 +695,7 @@ class Encore {
691
695
* });
692
696
* ```
693
697
*
694
- * @param {Function } callback
698
+ * @param {OptionsCallback<Exclude<webpack.Configuration['watchOptions'], undefined>> } callback
695
699
* @returns {Encore }
696
700
*/
697
701
configureWatchOptions ( callback ) {
@@ -718,7 +722,7 @@ class Encore {
718
722
* });
719
723
* ```
720
724
*
721
- * @param {Function } callback
725
+ * @param {OptionsCallback<import('webpack-dev-server').Configuration> } callback
722
726
* @returns {Encore }
723
727
*/
724
728
configureDevServerOptions ( callback ) {
@@ -794,7 +798,7 @@ class Encore {
794
798
* })
795
799
* ```
796
800
*
797
- * @param {Function } postCssLoaderOptionsCallback
801
+ * @param {OptionsCallback<object> } postCssLoaderOptionsCallback
798
802
* @returns {Encore }
799
803
*/
800
804
enablePostCssLoader ( postCssLoaderOptionsCallback = ( ) => { } ) {
@@ -834,7 +838,7 @@ class Encore {
834
838
* Options parameters for resolve-url-loader
835
839
* // https://www.npmjs.com/package/resolve-url-loader#options
836
840
*
837
- * @param {Function } sassLoaderOptionsCallback
841
+ * @param {OptionsCallback<object> } sassLoaderOptionsCallback
838
842
* @param {object } encoreOptions
839
843
* @returns {Encore }
840
844
*/
@@ -861,7 +865,7 @@ class Encore {
861
865
* });
862
866
* ```
863
867
*
864
- * @param {Function } lessLoaderOptionsCallback
868
+ * @param {OptionsCallback<object> } lessLoaderOptionsCallback
865
869
* @returns {Encore }
866
870
*/
867
871
enableLessLoader ( lessLoaderOptionsCallback = ( ) => { } ) {
@@ -886,7 +890,7 @@ class Encore {
886
890
* });
887
891
* ```
888
892
*
889
- * @param {Function } stylusLoaderOptionsCallback
893
+ * @param {OptionsCallback<object> } stylusLoaderOptionsCallback
890
894
* @returns {Encore }
891
895
*/
892
896
enableStylusLoader ( stylusLoaderOptionsCallback = ( ) => { } ) {
@@ -966,7 +970,7 @@ class Encore {
966
970
* It should contain the version of core-js you added to your project
967
971
* if useBuiltIns isn't set to false.
968
972
*
969
- * @param {Function |null } callback
973
+ * @param {OptionsCallback<object> |null } callback
970
974
* @param {object } encoreOptions
971
975
* @returns {Encore }
972
976
*/
@@ -992,7 +996,7 @@ class Encore {
992
996
* });
993
997
* ```
994
998
*
995
- * @param {Function } callback
999
+ * @param {OptionsCallback<object> } callback
996
1000
* @returns {Encore }
997
1001
*/
998
1002
configureBabelPresetEnv ( callback ) {
@@ -1013,7 +1017,7 @@ class Encore {
1013
1017
* });
1014
1018
* ```
1015
1019
*
1016
- * @param {Function } callback
1020
+ * @param {OptionsCallback<object> } callback
1017
1021
* @returns {Encore }
1018
1022
*/
1019
1023
configureCssLoader ( callback ) {
@@ -1056,7 +1060,7 @@ class Encore {
1056
1060
* ```
1057
1061
*
1058
1062
* @param {object } buildDependencies
1059
- * @param {Function } cacheCallback
1063
+ * @param {OptionsCallback<webpack.FileCacheOptions> } cacheCallback
1060
1064
* @returns {Encore }
1061
1065
*/
1062
1066
enableBuildCache ( buildDependencies , cacheCallback = ( cache ) => { } ) {
@@ -1083,8 +1087,8 @@ class Encore {
1083
1087
* );
1084
1088
* ```
1085
1089
*
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
1088
1092
* @returns {Encore }
1089
1093
*/
1090
1094
configureMiniCssExtractPlugin ( loaderOptionsCallback , pluginOptionsCallback = ( ) => { } ) {
@@ -1149,7 +1153,7 @@ class Encore {
1149
1153
* });
1150
1154
* ```
1151
1155
*
1152
- * @param {Function } callback
1156
+ * @param {OptionsCallback<object> } callback
1153
1157
* @returns {Encore }
1154
1158
*/
1155
1159
enableTypeScriptLoader ( callback = ( ) => { } ) {
@@ -1164,7 +1168,7 @@ class Encore {
1164
1168
*
1165
1169
* This is a build optimization API to reduce build times.
1166
1170
*
1167
- * @param {Function } forkedTypeScriptTypesCheckOptionsCallback
1171
+ * @param {OptionsCallback<object> } forkedTypeScriptTypesCheckOptionsCallback
1168
1172
* @returns {Encore }
1169
1173
*/
1170
1174
enableForkedTypeScriptTypesChecking ( forkedTypeScriptTypesCheckOptionsCallback = ( ) => { } ) {
@@ -1252,7 +1256,7 @@ class Encore {
1252
1256
* Configure Babel to use the preset "@vue/babel-preset-jsx",
1253
1257
* in order to enable JSX usage in Vue components.
1254
1258
*
1255
- * @param {Function } vueLoaderOptionsCallback
1259
+ * @param {OptionsCallback<object> } vueLoaderOptionsCallback
1256
1260
* @param {object } encoreOptions
1257
1261
* @returns {Encore }
1258
1262
*/
@@ -1279,7 +1283,7 @@ class Encore {
1279
1283
* ```
1280
1284
*
1281
1285
* @param {boolean } enabled
1282
- * @param {Function } notifierPluginOptionsCallback
1286
+ * @param {OptionsCallback<object> } notifierPluginOptionsCallback
1283
1287
* @returns {Encore }
1284
1288
*/
1285
1289
enableBuildNotifications ( enabled = true , notifierPluginOptionsCallback = ( ) => { } ) {
@@ -1304,7 +1308,7 @@ class Encore {
1304
1308
* });
1305
1309
* ```
1306
1310
*
1307
- * @param {Function } callback
1311
+ * @param {OptionsCallback<object> } callback
1308
1312
* @returns {Encore }
1309
1313
*/
1310
1314
enableHandlebarsLoader ( callback = ( ) => { } ) {
@@ -1351,7 +1355,7 @@ class Encore {
1351
1355
* });
1352
1356
* ```
1353
1357
*
1354
- * @param {Function } callback
1358
+ * @param {OptionsCallback<object> } callback
1355
1359
* @returns {Encore }
1356
1360
*/
1357
1361
configureStyleLoader ( callback ) {
@@ -1438,7 +1442,7 @@ class Encore {
1438
1442
* ```
1439
1443
*
1440
1444
* @param {object } options
1441
- * @param {string|object|Function } ruleCallback
1445
+ * @param {OptionsCallback<webpack.RuleSetRule> } ruleCallback
1442
1446
* @returns {Encore }
1443
1447
*/
1444
1448
configureImageRule ( options = { } , ruleCallback = ( rule ) => { } ) {
@@ -1455,7 +1459,7 @@ class Encore {
1455
1459
* See configureImageRule() for more details.
1456
1460
*
1457
1461
* @param {object } options
1458
- * @param {string|object|Function } ruleCallback
1462
+ * @param {OptionsCallback<webpack.RuleSetRule> } ruleCallback
1459
1463
* @returns {Encore }
1460
1464
*/
1461
1465
configureFontRule ( options = { } , ruleCallback = ( rule ) => { } ) {
@@ -1479,7 +1483,7 @@ class Encore {
1479
1483
* ```
1480
1484
*
1481
1485
* @param {string } name
1482
- * @param {Function } callback
1486
+ * @param {OptionsCallback<webpack.RuleSetRule> } callback
1483
1487
* @returns {Encore }
1484
1488
*/
1485
1489
configureLoaderRule ( name , callback ) {
@@ -1501,7 +1505,7 @@ class Encore {
1501
1505
* })
1502
1506
* ```
1503
1507
*
1504
- * @param {Function } cleanOptionsCallback
1508
+ * @param {OptionsCallback<Exclude<ConstructorParameters<typeof webpack.CleanPlugin>[0], undefined>> } cleanOptionsCallback
1505
1509
* @returns {Encore }
1506
1510
*/
1507
1511
cleanupOutputBeforeBuild ( cleanOptionsCallback = ( ) => { } ) {
0 commit comments