Initial commit
This commit is contained in:
116
node_modules/@rushstack/terminal/lib/StringBufferTerminalProvider.js
generated
vendored
Normal file
116
node_modules/@rushstack/terminal/lib/StringBufferTerminalProvider.js
generated
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
"use strict";
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
||||
// See LICENSE in the project root for license information.
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.StringBufferTerminalProvider = void 0;
|
||||
const node_core_library_1 = require("@rushstack/node-core-library");
|
||||
const ITerminalProvider_1 = require("./ITerminalProvider");
|
||||
const AnsiEscape_1 = require("./AnsiEscape");
|
||||
/**
|
||||
* Terminal provider that stores written data in buffers separated by severity.
|
||||
* This terminal provider is designed to be used when code that prints to a terminal
|
||||
* is being unit tested.
|
||||
*
|
||||
* @beta
|
||||
*/
|
||||
class StringBufferTerminalProvider {
|
||||
constructor(supportsColor = false) {
|
||||
this._standardBuffer = new node_core_library_1.StringBuilder();
|
||||
this._verboseBuffer = new node_core_library_1.StringBuilder();
|
||||
this._debugBuffer = new node_core_library_1.StringBuilder();
|
||||
this._warningBuffer = new node_core_library_1.StringBuilder();
|
||||
this._errorBuffer = new node_core_library_1.StringBuilder();
|
||||
this._supportsColor = supportsColor;
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc ITerminalProvider.write}
|
||||
*/
|
||||
write(data, severity) {
|
||||
switch (severity) {
|
||||
case ITerminalProvider_1.TerminalProviderSeverity.warning: {
|
||||
this._warningBuffer.append(data);
|
||||
break;
|
||||
}
|
||||
case ITerminalProvider_1.TerminalProviderSeverity.error: {
|
||||
this._errorBuffer.append(data);
|
||||
break;
|
||||
}
|
||||
case ITerminalProvider_1.TerminalProviderSeverity.verbose: {
|
||||
this._verboseBuffer.append(data);
|
||||
break;
|
||||
}
|
||||
case ITerminalProvider_1.TerminalProviderSeverity.debug: {
|
||||
this._debugBuffer.append(data);
|
||||
break;
|
||||
}
|
||||
case ITerminalProvider_1.TerminalProviderSeverity.log:
|
||||
default: {
|
||||
this._standardBuffer.append(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc ITerminalProvider.eolCharacter}
|
||||
*/
|
||||
get eolCharacter() {
|
||||
return '\n';
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc ITerminalProvider.supportsColor}
|
||||
*/
|
||||
get supportsColor() {
|
||||
return this._supportsColor;
|
||||
}
|
||||
/**
|
||||
* Get everything that has been written at log-level severity.
|
||||
*/
|
||||
getOutput(options) {
|
||||
return this._normalizeOutput(this._standardBuffer.toString(), options);
|
||||
}
|
||||
/**
|
||||
* @deprecated - use {@link StringBufferTerminalProvider.getVerboseOutput}
|
||||
*/
|
||||
getVerbose(options) {
|
||||
return this.getVerboseOutput(options);
|
||||
}
|
||||
/**
|
||||
* Get everything that has been written at verbose-level severity.
|
||||
*/
|
||||
getVerboseOutput(options) {
|
||||
return this._normalizeOutput(this._verboseBuffer.toString(), options);
|
||||
}
|
||||
/**
|
||||
* Get everything that has been written at debug-level severity.
|
||||
*/
|
||||
getDebugOutput(options) {
|
||||
return this._normalizeOutput(this._debugBuffer.toString(), options);
|
||||
}
|
||||
/**
|
||||
* Get everything that has been written at error-level severity.
|
||||
*/
|
||||
getErrorOutput(options) {
|
||||
return this._normalizeOutput(this._errorBuffer.toString(), options);
|
||||
}
|
||||
/**
|
||||
* Get everything that has been written at warning-level severity.
|
||||
*/
|
||||
getWarningOutput(options) {
|
||||
return this._normalizeOutput(this._warningBuffer.toString(), options);
|
||||
}
|
||||
_normalizeOutput(s, options) {
|
||||
options = {
|
||||
normalizeSpecialCharacters: true,
|
||||
...(options || {})
|
||||
};
|
||||
s = node_core_library_1.Text.convertToLf(s);
|
||||
if (options.normalizeSpecialCharacters) {
|
||||
return AnsiEscape_1.AnsiEscape.formatForTests(s, { encodeNewlines: true });
|
||||
}
|
||||
else {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.StringBufferTerminalProvider = StringBufferTerminalProvider;
|
||||
//# sourceMappingURL=StringBufferTerminalProvider.js.map
|
||||
Reference in New Issue
Block a user