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>
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var node_child_process = require('node:child_process');
|
|
var node_util = require('node:util');
|
|
var treeKill = require('tree-kill');
|
|
var signalExit = require('signal-exit');
|
|
|
|
const pTreeKill = node_util.promisify(treeKill);
|
|
const spawnd = (command, options)=>{
|
|
const proc = node_child_process.spawn(command, options);
|
|
const cleanExit = (code = 1)=>{
|
|
if (proc && proc.pid) {
|
|
treeKill(proc.pid, ()=>process.exit(code));
|
|
} else {
|
|
process.exit(code);
|
|
}
|
|
};
|
|
const cleanExit1 = ()=>cleanExit(1);
|
|
proc.stderr.pipe(process.stderr);
|
|
proc.on("exit", cleanExit);
|
|
proc.on("error", cleanExit1);
|
|
const offExit = signalExit.onExit((code)=>{
|
|
cleanExit(typeof code === "number" ? code : 1);
|
|
});
|
|
proc.destroy = async ()=>{
|
|
offExit();
|
|
proc.removeListener("exit", cleanExit);
|
|
proc.removeListener("error", cleanExit1);
|
|
if (typeof proc.pid === "number") {
|
|
await pTreeKill(proc.pid).catch(()=>{
|
|
/* ignore error */ });
|
|
}
|
|
};
|
|
return proc;
|
|
};
|
|
|
|
exports.spawnd = spawnd;
|