1
0
Fork 0
mirror of https://github.com/actions/setup-python.git synced 2024-11-23 09:17:16 +00:00
setup-python/node_modules/jest-each/build/table/array.js
Danny McCormick 39c08a0eaa Initial pass
2019-06-26 21:12:00 -04:00

126 lines
3.2 KiB
JavaScript

'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
function _util() {
const data = _interopRequireDefault(require('util'));
_util = function _util() {
return data;
};
return data;
}
function _prettyFormat() {
const data = _interopRequireDefault(require('pretty-format'));
_prettyFormat = function _prettyFormat() {
return data;
};
return data;
}
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _slicedToArray(arr, i) {
return (
_arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest()
);
}
function _nonIterableRest() {
throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
function _iterableToArrayLimit(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (
var _i = arr[Symbol.iterator](), _s;
!(_n = (_s = _i.next()).done);
_n = true
) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i['return'] != null) _i['return']();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
const SUPPORTED_PLACEHOLDERS = /%[sdifjoOp%]/g;
const PRETTY_PLACEHOLDER = '%p';
const INDEX_PLACEHOLDER = '%#';
const PLACEHOLDER_PREFIX = '%';
const JEST_EACH_PLACEHOLDER_ESCAPE = '@@__JEST_EACH_PLACEHOLDER_ESCAPE__@@';
var _default = (title, arrayTable) =>
normaliseTable(arrayTable).map((row, index) => ({
arguments: row,
title: formatTitle(title, row, index)
}));
exports.default = _default;
const normaliseTable = table => (isTable(table) ? table : table.map(colToRow));
const isTable = table => table.every(Array.isArray);
const colToRow = col => [col];
const formatTitle = (title, row, rowIndex) =>
row
.reduce((formattedTitle, value) => {
const _getMatchingPlacehold = getMatchingPlaceholders(formattedTitle),
_getMatchingPlacehold2 = _slicedToArray(_getMatchingPlacehold, 1),
placeholder = _getMatchingPlacehold2[0];
const normalisedValue = normalisePlaceholderValue(value);
if (!placeholder) return formattedTitle;
if (placeholder === PRETTY_PLACEHOLDER)
return interpolatePrettyPlaceholder(formattedTitle, normalisedValue);
return _util().default.format(formattedTitle, normalisedValue);
}, interpolateTitleIndex(title, rowIndex))
.replace(new RegExp(JEST_EACH_PLACEHOLDER_ESCAPE, 'g'), PLACEHOLDER_PREFIX);
const normalisePlaceholderValue = value =>
typeof value === 'string' && SUPPORTED_PLACEHOLDERS.test(value)
? value.replace(PLACEHOLDER_PREFIX, JEST_EACH_PLACEHOLDER_ESCAPE)
: value;
const getMatchingPlaceholders = title =>
title.match(SUPPORTED_PLACEHOLDERS) || [];
const interpolateTitleIndex = (title, index) =>
title.replace(INDEX_PLACEHOLDER, index.toString());
const interpolatePrettyPlaceholder = (title, value) =>
title.replace(
PRETTY_PLACEHOLDER,
(0, _prettyFormat().default)(value, {
maxDepth: 1,
min: true
})
);