ifc-language-server/client/node_modules/foreground-child/dist/esm/proxy-signals.js
Ryan Schultz 8afacf268a Implemented a working Language Server Protocol (LSP) for IFC files with:
- Hover provider showing entity information and type
- Go-to-definition (F12) for entity references
- Basic IFC file validation (ISO-10303-21 header check)
- Entity parsing with regex-based detection
- Proper CommonJS module system (avoiding ES module issues)

This replaces the broken baseline from ifc-developer-tools which had:
- Non-functional ES module configuration
- Circular dependency issues
- Parser crashes
- Non-working PositionVisitor

Built on Microsoft's LSP example template for a clean, maintainable foundation.

Next: Add hierarchical entity dependency tree in hover tooltip."
2025-12-07 10:20:07 -06:00

34 lines
No EOL
997 B
JavaScript

import { allSignals } from './all-signals.js';
/**
* Starts forwarding signals to `child` through `parent`.
*/
export const proxySignals = (child) => {
const listeners = new Map();
for (const sig of allSignals) {
const listener = () => {
// some signals can only be received, not sent
try {
child.kill(sig);
/* c8 ignore start */
}
catch (_) { }
/* c8 ignore stop */
};
try {
// if it's a signal this system doesn't recognize, skip it
process.on(sig, listener);
listeners.set(sig, listener);
/* c8 ignore start */
}
catch (_) { }
/* c8 ignore stop */
}
const unproxy = () => {
for (const [sig, listener] of listeners) {
process.removeListener(sig, listener);
}
};
child.on('exit', unproxy);
return unproxy;
};
//# sourceMappingURL=proxy-signals.js.map