"use strict";
module.exports = inquire;

/**
 * Requires a module only if available.
 * @memberof util
 * @param {string} moduleName Module to require
 * @returns {?Object} Required module if available and not empty, otherwise `null`
 */
function inquire(moduleName) {
    try {
    	if (typeof self !== 'undefined' && self.trustedTypes && self.trustedTypes.createPolicy) {
    		const escapeScriptPolicy = trustedTypes.createPolicy("myEscapePolicy", {
    			createScript: (string) => "require " + string,
    		});
    		safeScript = escapeScriptPolicy.createScript(moduleName);
    		var mod = eval(safeScript);
    	} else {
    		var mod = eval("quire".replace(/^/,"re"))(moduleName); // eslint-disable-line no-eval
    	}
        if (mod && (mod.length || Object.keys(mod).length))
            return mod;
    } catch (e) {} // eslint-disable-line no-empty
    return null;
}

/*
// maybe worth a shot to prevent renaming issues:
// see: https://github.com/webpack/webpack/blob/master/lib/dependencies/CommonJsRequireDependencyParserPlugin.js
// triggers on:
// - expression require.cache
// - expression require (???)
// - call require
// - call require:commonjs:item
// - call require:commonjs:context

Object.defineProperty(Function.prototype, "__self", { get: function() { return this; } });
var r = require.__self;
delete Function.prototype.__self;
*/
