You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.2 KiB
98 lines
2.2 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, '__esModule', { |
|
value: true |
|
}); |
|
exports.default = void 0; |
|
|
|
function _ansiEscapes() { |
|
const data = _interopRequireDefault(require('ansi-escapes')); |
|
|
|
_ansiEscapes = function () { |
|
return data; |
|
}; |
|
|
|
return data; |
|
} |
|
|
|
function _chalk() { |
|
const data = _interopRequireDefault(require('chalk')); |
|
|
|
_chalk = function () { |
|
return data; |
|
}; |
|
|
|
return data; |
|
} |
|
|
|
function _jestUtil() { |
|
const data = require('jest-util'); |
|
|
|
_jestUtil = function () { |
|
return data; |
|
}; |
|
|
|
return data; |
|
} |
|
|
|
function _interopRequireDefault(obj) { |
|
return obj && obj.__esModule ? obj : {default: obj}; |
|
} |
|
|
|
/** |
|
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
*/ |
|
const {CLEAR} = _jestUtil().specialChars; |
|
|
|
const usage = entity => |
|
`\n${_chalk().default.bold('Pattern Mode Usage')}\n` + |
|
` ${_chalk().default.dim('\u203A Press')} Esc ${_chalk().default.dim( |
|
'to exit pattern mode.' |
|
)}\n` + |
|
` ${_chalk().default.dim('\u203A Press')} Enter ` + |
|
`${_chalk().default.dim(`to filter by a ${entity} regex pattern.`)}\n` + |
|
'\n'; |
|
|
|
const usageRows = usage('').split('\n').length; |
|
|
|
class PatternPrompt { |
|
_currentUsageRows; |
|
|
|
constructor(_pipe, _prompt, _entityName = '') { |
|
this._pipe = _pipe; |
|
this._prompt = _prompt; |
|
this._entityName = _entityName; |
|
this._currentUsageRows = usageRows; |
|
} |
|
|
|
run(onSuccess, onCancel, options) { |
|
this._pipe.write(_ansiEscapes().default.cursorHide); |
|
|
|
this._pipe.write(CLEAR); |
|
|
|
if (options && options.header) { |
|
this._pipe.write(`${options.header}\n`); |
|
|
|
this._currentUsageRows = usageRows + options.header.split('\n').length; |
|
} else { |
|
this._currentUsageRows = usageRows; |
|
} |
|
|
|
this._pipe.write(usage(this._entityName)); |
|
|
|
this._pipe.write(_ansiEscapes().default.cursorShow); |
|
|
|
this._prompt.enter(this._onChange.bind(this), onSuccess, onCancel); |
|
} |
|
|
|
_onChange(_pattern, _options) { |
|
this._pipe.write(_ansiEscapes().default.eraseLine); |
|
|
|
this._pipe.write(_ansiEscapes().default.cursorLeft); |
|
} |
|
} |
|
|
|
exports.default = PatternPrompt;
|
|
|