HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.33
System: Linux li317-225.members.linode.com 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64
User: apache (48)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /var/www/farmoskosmicfarms_backup/node_modules/laravel-mix/src/components/Define.js
const { Component } = require('./Component');

/** @typedef {undefined | null | string | number | bigint | boolean} CodeValuePrimitive */
/** @typedef {() => CodeValuePrimitive} LazyCodeValue */
/** @typedef {CodeValuePrimitive | LazyCodeValue} CodeValue */

module.exports = class Define extends Component {
    /**
     * @type {Record<string, CodeValue>}
     * @internal
     **/
    definitions = {};

    /**
     *
     * @param {Record<string, CodeValue>} definitions
     */
    register(definitions) {
        this.definitions = {
            ...this.definitions,
            ...definitions
        };
    }

    /** @internal */
    get defaults() {
        return {
            'import.meta.env.PROD': () => this.context.api.inProduction(),
            'import.meta.env.DEV': () => !this.context.api.inProduction()
        };
    }

    /**
     * @param {Record<string, CodeValue>} definitions
     */
    resolve(definitions) {
        for (const [key, value] of Object.entries(definitions)) {
            if (typeof value === 'function') {
                definitions[key] = value();
            }
        }

        return definitions;
    }

    webpackPlugins() {
        const { DefinePlugin } = require('webpack');

        return [
            new DefinePlugin(
                this.resolve({
                    ...this.defaults,
                    ...this.definitions
                })
            )
        ];
    }
};