1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Authors Ivan Kopeykin @vankop
- */
- "use strict";
- /** @typedef {import("./Compiler")} Compiler */
- /** @typedef {import("./config/target").PlatformTargetProperties} PlatformTargetProperties */
- const PLUGIN_NAME = "PlatformPlugin";
- /**
- * Should be used only for "target === false" or
- * when you want to overwrite platform target properties
- */
- class PlatformPlugin {
- /**
- * @param {Partial<PlatformTargetProperties>} platform target properties
- */
- constructor(platform) {
- /** @type {Partial<PlatformTargetProperties>} */
- this.platform = platform;
- }
- /**
- * Apply the plugin
- * @param {Compiler} compiler the compiler instance
- * @returns {void}
- */
- apply(compiler) {
- compiler.hooks.environment.tap(PLUGIN_NAME, () => {
- compiler.platform = {
- ...compiler.platform,
- ...this.platform
- };
- });
- }
- }
- module.exports = PlatformPlugin;
|