diff --git a/src/common/parser/Params.test.ts b/src/common/parser/Params.test.ts index 564b0d565..4b45ba3f8 100644 --- a/src/common/parser/Params.test.ts +++ b/src/common/parser/Params.test.ts @@ -113,6 +113,10 @@ describe('Params', () => { data = [38, [2, 50, 100, 150], 5, [], 6]; assert.deepEqual(Params.fromArray(data).toArray(), [38, [2, 50, 100, 150], 5, 6]); }); + it('clone', () => { + const params = Params.fromArray([38, [2, 50, 100, 150], 5, [], 6, 1, [2, 3], 12345, [-1]]); + assert.deepEqual(params.clone(), params); + }); it('hasSubParams / getSubParams', () => { const params = Params.fromArray([38, [2, 50, 100, 150], 5, [], 6]); assert.equal(params.hasSubParams(0), true); diff --git a/src/common/parser/Params.ts b/src/common/parser/Params.ts index bc1880ed8..74cd5a798 100644 --- a/src/common/parser/Params.ts +++ b/src/common/parser/Params.ts @@ -2,36 +2,7 @@ * Copyright (c) 2019 The xterm.js authors. All rights reserved. * @license MIT */ - -// TODO: move to Types -interface IParamsConstructor { - new(maxLength: number, maxSubParamsLength: number): IParams; - fromArray(values: (number | number[])[]): IParams; -} - -interface IParams { - /** from ctor */ - maxLength: number; - maxSubParamsLength: number; - - /** param values and its length */ - params: Int16Array; - length: number; - - /** sub params and its length */ - subParams: Int16Array; - subParamsLength: number; - - /** methods */ - clone(): IParams; - toArray(): (number | number[])[]; - reset(): void; - addParam(value: number): void; - addSubParam(value: number): void; - hasSubParams(idx: number): boolean; - getSubParams(idx: number): Int16Array | null; - getSubParamsAll(): {[idx: number]: Int16Array}; -} +import { IParams } from 'common/parser/Types'; /** * Params storage class. diff --git a/src/common/parser/Types.d.ts b/src/common/parser/Types.d.ts index 47ec98e15..ffd175d66 100644 --- a/src/common/parser/Types.d.ts +++ b/src/common/parser/Types.d.ts @@ -6,6 +6,40 @@ import { IDisposable } from 'common/Types'; import { ParserState } from 'common/parser/Constants'; +/** + * Params types. + */ +export interface IParamsConstructor { + new(maxLength: number, maxSubParamsLength: number): IParams; + + /** create params object from array like [1, [2, 3]] */ + fromArray(values: (number | number[])[]): IParams; +} + +export interface IParams { + /** from ctor */ + maxLength: number; + maxSubParamsLength: number; + + /** param values and its length */ + params: Int16Array; + length: number; + + /** sub params and its length */ + subParams: Int16Array; + subParamsLength: number; + + /** methods */ + clone(): IParams; + toArray(): (number | number[])[]; + reset(): void; + addParam(value: number): void; + addSubParam(value: number): void; + hasSubParams(idx: number): boolean; + getSubParams(idx: number): Int16Array | null; + getSubParamsAll(): {[idx: number]: Int16Array}; +} + /** * Internal state of EscapeSequenceParser. * Used as argument of the error handler to allow