"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 (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;
*/
