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>
33 lines
980 B
TypeScript
33 lines
980 B
TypeScript
/**
|
|
* Copyright (c) 2021 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*/
|
|
|
|
import { assert } from 'chai';
|
|
import { getRangeLength } from './BufferRange';
|
|
import { IBufferRange } from '@xterm/xterm';
|
|
|
|
describe('BufferRange', () => {
|
|
describe('getRangeLength', () => {
|
|
it('should get range for single line', () => {
|
|
assert.equal(getRangeLength(createRange(1, 1, 4, 1), 0), 4);
|
|
});
|
|
it('should throw for invalid range', () => {
|
|
assert.throws(() => getRangeLength(createRange(1, 3, 1, 1), 0));
|
|
});
|
|
it('should get range multiple lines', () => {
|
|
assert.equal(getRangeLength(createRange(1, 1, 4, 5), 5), 24);
|
|
});
|
|
it('should get range for end line right after start line', () => {
|
|
assert.equal(getRangeLength(createRange(1, 1, 7, 2), 5), 12);
|
|
});
|
|
});
|
|
});
|
|
|
|
function createRange(x1: number, y1: number, x2: number, y2: number): IBufferRange {
|
|
return {
|
|
start: { x: x1, y: y1 },
|
|
end: { x: x2, y: y2 }
|
|
};
|
|
}
|