Files
LWLT-AI/archive/handoff/2026-07-12/legacy-erp-handoff/tools/erp_live_context.js
2026-07-13 19:57:46 +08:00

44 lines
1.2 KiB
JavaScript

function attachLiveContext(result, context, page) {
if (!result || typeof result !== 'object' || !context) return result;
Object.defineProperties(result, {
_erpContext: { value: context, enumerable: false },
_erpPage: { value: page || null, enumerable: false },
});
return result;
}
function getLiveContext(carrier) {
if (!carrier || !carrier._erpContext) return null;
return {
context: carrier._erpContext,
page: carrier._erpPage || null,
};
}
async function closeLiveContext(carrier) {
const live = getLiveContext(carrier);
if (!live) return;
await live.context.close().catch(() => {});
}
function shouldKeepLiveContextOpen(options = {}) {
const browser = (options.config && options.config.browser) || {};
return browser.keepOpenAfterOperation === true || browser.keepContextOpen === true;
}
async function closeLiveContextUnlessKept(carrier, options = {}) {
if (shouldKeepLiveContextOpen(options)) return false;
const live = getLiveContext(carrier);
if (!live) return false;
await closeLiveContext(carrier);
return true;
}
module.exports = {
attachLiveContext,
getLiveContext,
closeLiveContext,
closeLiveContextUnlessKept,
shouldKeepLiveContextOpen,
};