Fixes https://github.com/xtermjs/xterm.js/issues/5896 TypeScript path mappings for common/*, browser/*, and headless/* were not rewritten in emitted JavaScript, which forced webpack resolve aliases and NODE_PATH workarounds so runtime could resolve modules. That added build complexity and broke tooling such as ESLint import/no-cycle. Changes: - Convert ~750 imports across src/, addons/, and test/ to relative paths - Remove common/browser/headless paths and src catch-all mappings from tsconfigs (keep @xterm/addon-* demo and addon typings paths) - Remove webpack resolve.alias for common, browser, headless, and vs - Drop NODE_PATH from unit tests, benchmarks, and VS Code launch config - Fix addon-image IIPImageStorage to import ./Types after removing catch-all * Verified: npm run build, esbuild, package, package-headless Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
874 B
TypeScript
29 lines
874 B
TypeScript
import { ILinkProvider, ILinkProviderService } from './Services';
|
|
import { Disposable, toDisposable } from '../../common/Lifecycle';
|
|
import { IDisposable } from '../../common/Types';
|
|
|
|
export class LinkProviderService extends Disposable implements ILinkProviderService {
|
|
declare public serviceBrand: undefined;
|
|
|
|
public readonly linkProviders: ILinkProvider[] = [];
|
|
|
|
constructor() {
|
|
super();
|
|
this._register(toDisposable(() => this.linkProviders.length = 0));
|
|
}
|
|
|
|
public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {
|
|
this.linkProviders.push(linkProvider);
|
|
return {
|
|
dispose: () => {
|
|
// Remove the link provider from the list
|
|
const providerIndex = this.linkProviders.indexOf(linkProvider);
|
|
|
|
if (providerIndex !== -1) {
|
|
this.linkProviders.splice(providerIndex, 1);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
}
|