Files
rspade_system/node_modules/laravel-mix/src/components/FunctionalComponent.js
2025-12-03 21:28:08 +00:00

35 lines
829 B
JavaScript
Executable File

/** @typedef {import('../../types/component').ClassComponent} ClassComponent */
/** @typedef {import('../../types/component').FunctionalComponent} FunctionalComponent */
/**
* @param {string[]} names
* @param {FunctionalComponent} component
* @returns {ClassComponent}
*/
exports.createFunctionalComponent = function createFunctionalComponent(names, component) {
return class {
/** @type {any[]} */
args = [];
name() {
return names;
}
/**
*
* @param {...any} args
*/
register(...args) {
this.args = args;
}
/**
*
* @param {import('webpack').Configuration} config
*/
webpackConfig(config) {
component.call(this, config, ...this.args);
}
};
};