👁 查看:Resolver.js
路径:/home/boguraj1/public_html/jobsite/node_modules/laravel-mix/src/Resolver.js
大小:995 B · 修改:2022-11-21 20:09:30 · 权限:0644 · 可写
class Resolver {
    constructor() {
        /** @type {Record<string, string>} */
        this.aliases = {};
    }

    /**
     *
     * @param {string} name
     */
    get(name) {
        if (this.aliases[name] !== undefined) {
            return this.aliases[name];
        }

        try {
            return require.resolve(name);
        } catch (err) {
            return name;
        }
    }

    /**
     *
     * @param {string} name
     * @returns {boolean}
     */
    has(name) {
        if (this.aliases[name] !== undefined) {
            return true;
        }

        try {
            require.resolve(name);

            return true;
        } catch (e) {
            return false;
        }
    }

    /**
     *
     * @param {string} name
     * @param {string} newName
     * @internal
     */
    alias(name, newName) {
        this.aliases[name] = require.resolve(newName);
    }

    clear() {
        this.aliases = {};
    }
}

module.exports.Resolver = Resolver;