Files
formipay/node_modules/rechoir/index.js
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

70 lines
1.5 KiB
JavaScript

var path = require('path');
var extension = require('./lib/extension');
var normalize = require('./lib/normalize');
var register = require('./lib/register');
exports.prepare = function (extensions, filepath, cwd, nothrow) {
var config, usedExtension, err, option, attempt, error;
var attempts = [];
var onlyErrors = true;
var exts = extension(filepath);
if (exts) {
exts.some(function (ext) {
usedExtension = ext;
config = normalize(extensions[ext]);
return !!config;
});
}
if (Object.keys(require.extensions).indexOf(usedExtension) !== -1) {
return true;
}
if (!config) {
if (nothrow) {
return;
}
throw new Error('No module loader found for "' + usedExtension + '".');
}
if (!cwd) {
cwd = path.dirname(path.resolve(filepath));
}
if (!Array.isArray(config)) {
config = [config];
}
for (var i in config) {
option = config[i];
attempt = register(cwd, option.module, option.register);
error = attempt instanceof Error ? attempt : null;
if (error) {
attempt = null;
}
attempts.push({
moduleName: option.module,
module: attempt,
error: error,
});
if (!error) {
onlyErrors = false;
break;
}
}
if (onlyErrors) {
err = new Error(
'Unable to use specified module loaders for "' + usedExtension + '".'
);
err.failures = attempts;
if (nothrow) {
return err;
}
throw err;
}
return attempts;
};