mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
Change endpoint from persons to people
This commit is contained in:
81
backend/apis/nodejs/node_modules/jest-each/build/bind.js
generated
vendored
Normal file
81
backend/apis/nodejs/node_modules/jest-each/build/bind.js
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = bind;
|
||||
function _jestUtil() {
|
||||
const data = require('jest-util');
|
||||
_jestUtil = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
var _array = _interopRequireDefault(require('./table/array'));
|
||||
var _template = _interopRequireDefault(require('./table/template'));
|
||||
var _validation = require('./validation');
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
// type TestFn = (done?: Global.DoneFn) => Promise<any> | void | undefined;
|
||||
|
||||
function bind(cb, supportsDone = true, needsEachError = false) {
|
||||
const bindWrap = (table, ...taggedTemplateData) => {
|
||||
const error = new (_jestUtil().ErrorWithStack)(undefined, bindWrap);
|
||||
return function eachBind(title, test, timeout) {
|
||||
title = (0, _jestUtil().convertDescriptorToString)(title);
|
||||
try {
|
||||
const tests = isArrayTable(taggedTemplateData)
|
||||
? buildArrayTests(title, table)
|
||||
: buildTemplateTests(title, table, taggedTemplateData);
|
||||
return tests.forEach(row =>
|
||||
needsEachError
|
||||
? cb(
|
||||
row.title,
|
||||
applyArguments(supportsDone, row.arguments, test),
|
||||
timeout,
|
||||
error
|
||||
)
|
||||
: cb(
|
||||
row.title,
|
||||
applyArguments(supportsDone, row.arguments, test),
|
||||
timeout
|
||||
)
|
||||
);
|
||||
} catch (e) {
|
||||
const err = new Error(e.message);
|
||||
err.stack = error.stack?.replace(/^Error: /s, `Error: ${e.message}`);
|
||||
return cb(title, () => {
|
||||
throw err;
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
return bindWrap;
|
||||
}
|
||||
const isArrayTable = data => data.length === 0;
|
||||
const buildArrayTests = (title, table) => {
|
||||
(0, _validation.validateArrayTable)(table);
|
||||
return (0, _array.default)(title, table);
|
||||
};
|
||||
const buildTemplateTests = (title, table, taggedTemplateData) => {
|
||||
const headings = getHeadingKeys(table[0]);
|
||||
(0, _validation.validateTemplateTableArguments)(headings, taggedTemplateData);
|
||||
return (0, _template.default)(title, headings, taggedTemplateData);
|
||||
};
|
||||
const getHeadingKeys = headings =>
|
||||
(0, _validation.extractValidTemplateHeadings)(headings)
|
||||
.replace(/\s/g, '')
|
||||
.split('|');
|
||||
const applyArguments = (supportsDone, params, test) =>
|
||||
supportsDone && params.length < test.length
|
||||
? done => test(...params, done)
|
||||
: () => test(...params);
|
141
backend/apis/nodejs/node_modules/jest-each/build/index.d.ts
generated
vendored
Normal file
141
backend/apis/nodejs/node_modules/jest-each/build/index.d.ts
generated
vendored
Normal file
@ -0,0 +1,141 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
import type {Global} from '@jest/types';
|
||||
|
||||
export declare function bind<EachCallback extends Global.TestCallback>(
|
||||
cb: GlobalCallback,
|
||||
supportsDone?: boolean,
|
||||
needsEachError?: boolean,
|
||||
): Global.EachTestFn<any>;
|
||||
|
||||
declare const each: {
|
||||
(table: Global.EachTable, ...data: Global.TemplateData): ReturnType<
|
||||
typeof install
|
||||
>;
|
||||
withGlobal(g: Global): (
|
||||
table: Global.EachTable,
|
||||
...data: Global.TemplateData
|
||||
) => {
|
||||
describe: {
|
||||
(
|
||||
title: string,
|
||||
suite: Global.EachTestFn<Global.BlockFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
};
|
||||
fdescribe: any;
|
||||
fit: any;
|
||||
it: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
test: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
xdescribe: any;
|
||||
xit: any;
|
||||
xtest: any;
|
||||
};
|
||||
};
|
||||
export default each;
|
||||
|
||||
declare type GlobalCallback = (
|
||||
testName: string,
|
||||
fn: Global.ConcurrentTestFn,
|
||||
timeout?: number,
|
||||
eachError?: Error,
|
||||
) => void;
|
||||
|
||||
declare const install: (
|
||||
g: Global,
|
||||
table: Global.EachTable,
|
||||
...data: Global.TemplateData
|
||||
) => {
|
||||
describe: {
|
||||
(
|
||||
title: string,
|
||||
suite: Global.EachTestFn<Global.BlockFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
};
|
||||
fdescribe: any;
|
||||
fit: any;
|
||||
it: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
test: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
skip: any;
|
||||
only: any;
|
||||
concurrent: {
|
||||
(
|
||||
title: string,
|
||||
test: Global.EachTestFn<Global.TestFn>,
|
||||
timeout?: number,
|
||||
): any;
|
||||
only: any;
|
||||
skip: any;
|
||||
};
|
||||
};
|
||||
xdescribe: any;
|
||||
xit: any;
|
||||
xtest: any;
|
||||
};
|
||||
|
||||
export {};
|
83
backend/apis/nodejs/node_modules/jest-each/build/index.js
generated
vendored
Normal file
83
backend/apis/nodejs/node_modules/jest-each/build/index.js
generated
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, 'bind', {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _bind.default;
|
||||
}
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _bind = _interopRequireDefault(require('./bind'));
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const install = (g, table, ...data) => {
|
||||
const bindingWithArray = data.length === 0;
|
||||
const bindingWithTemplate = Array.isArray(table) && !!table.raw;
|
||||
if (!bindingWithArray && !bindingWithTemplate) {
|
||||
throw new Error(
|
||||
'`.each` must only be called with an Array or Tagged Template Literal.'
|
||||
);
|
||||
}
|
||||
const test = (title, test, timeout) =>
|
||||
(0, _bind.default)(g.test)(table, ...data)(title, test, timeout);
|
||||
test.skip = (0, _bind.default)(g.test.skip)(table, ...data);
|
||||
test.only = (0, _bind.default)(g.test.only)(table, ...data);
|
||||
const testConcurrent = (title, test, timeout) =>
|
||||
(0, _bind.default)(g.test.concurrent)(table, ...data)(title, test, timeout);
|
||||
test.concurrent = testConcurrent;
|
||||
testConcurrent.only = (0, _bind.default)(g.test.concurrent.only)(
|
||||
table,
|
||||
...data
|
||||
);
|
||||
testConcurrent.skip = (0, _bind.default)(g.test.concurrent.skip)(
|
||||
table,
|
||||
...data
|
||||
);
|
||||
const it = (title, test, timeout) =>
|
||||
(0, _bind.default)(g.it)(table, ...data)(title, test, timeout);
|
||||
it.skip = (0, _bind.default)(g.it.skip)(table, ...data);
|
||||
it.only = (0, _bind.default)(g.it.only)(table, ...data);
|
||||
it.concurrent = testConcurrent;
|
||||
const xit = (0, _bind.default)(g.xit)(table, ...data);
|
||||
const fit = (0, _bind.default)(g.fit)(table, ...data);
|
||||
const xtest = (0, _bind.default)(g.xtest)(table, ...data);
|
||||
const describe = (title, suite, timeout) =>
|
||||
(0, _bind.default)(g.describe, false)(table, ...data)(
|
||||
title,
|
||||
suite,
|
||||
timeout
|
||||
);
|
||||
describe.skip = (0, _bind.default)(g.describe.skip, false)(table, ...data);
|
||||
describe.only = (0, _bind.default)(g.describe.only, false)(table, ...data);
|
||||
const fdescribe = (0, _bind.default)(g.fdescribe, false)(table, ...data);
|
||||
const xdescribe = (0, _bind.default)(g.xdescribe, false)(table, ...data);
|
||||
return {
|
||||
describe,
|
||||
fdescribe,
|
||||
fit,
|
||||
it,
|
||||
test,
|
||||
xdescribe,
|
||||
xit,
|
||||
xtest
|
||||
};
|
||||
};
|
||||
const each = (table, ...data) => install(globalThis, table, ...data);
|
||||
each.withGlobal =
|
||||
g =>
|
||||
(table, ...data) =>
|
||||
install(g, table, ...data);
|
||||
var _default = each;
|
||||
exports.default = _default;
|
130
backend/apis/nodejs/node_modules/jest-each/build/table/array.js
generated
vendored
Normal file
130
backend/apis/nodejs/node_modules/jest-each/build/table/array.js
generated
vendored
Normal file
@ -0,0 +1,130 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = array;
|
||||
function util() {
|
||||
const data = _interopRequireWildcard(require('util'));
|
||||
util = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require('pretty-format');
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
var _interpolation = require('./interpolation');
|
||||
function _getRequireWildcardCache(nodeInterop) {
|
||||
if (typeof WeakMap !== 'function') return null;
|
||||
var cacheBabelInterop = new WeakMap();
|
||||
var cacheNodeInterop = new WeakMap();
|
||||
return (_getRequireWildcardCache = function (nodeInterop) {
|
||||
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
||||
})(nodeInterop);
|
||||
}
|
||||
function _interopRequireWildcard(obj, nodeInterop) {
|
||||
if (!nodeInterop && obj && obj.__esModule) {
|
||||
return obj;
|
||||
}
|
||||
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
|
||||
return {default: obj};
|
||||
}
|
||||
var cache = _getRequireWildcardCache(nodeInterop);
|
||||
if (cache && cache.has(obj)) {
|
||||
return cache.get(obj);
|
||||
}
|
||||
var newObj = {};
|
||||
var hasPropertyDescriptor =
|
||||
Object.defineProperty && Object.getOwnPropertyDescriptor;
|
||||
for (var key in obj) {
|
||||
if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) {
|
||||
var desc = hasPropertyDescriptor
|
||||
? Object.getOwnPropertyDescriptor(obj, key)
|
||||
: null;
|
||||
if (desc && (desc.get || desc.set)) {
|
||||
Object.defineProperty(newObj, key, desc);
|
||||
} else {
|
||||
newObj[key] = obj[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
newObj.default = obj;
|
||||
if (cache) {
|
||||
cache.set(obj, newObj);
|
||||
}
|
||||
return newObj;
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const SUPPORTED_PLACEHOLDERS = /%[sdifjoOp#]/g;
|
||||
const PRETTY_PLACEHOLDER = '%p';
|
||||
const INDEX_PLACEHOLDER = '%#';
|
||||
const PLACEHOLDER_PREFIX = '%';
|
||||
const ESCAPED_PLACEHOLDER_PREFIX = /%%/g;
|
||||
const JEST_EACH_PLACEHOLDER_ESCAPE = '@@__JEST_EACH_PLACEHOLDER_ESCAPE__@@';
|
||||
function array(title, arrayTable) {
|
||||
if (isTemplates(title, arrayTable)) {
|
||||
return arrayTable.map((template, index) => ({
|
||||
arguments: [template],
|
||||
title: (0, _interpolation.interpolateVariables)(
|
||||
title,
|
||||
template,
|
||||
index
|
||||
).replace(ESCAPED_PLACEHOLDER_PREFIX, PLACEHOLDER_PREFIX)
|
||||
}));
|
||||
}
|
||||
return normaliseTable(arrayTable).map((row, index) => ({
|
||||
arguments: row,
|
||||
title: formatTitle(title, row, index)
|
||||
}));
|
||||
}
|
||||
const isTemplates = (title, arrayTable) =>
|
||||
!SUPPORTED_PLACEHOLDERS.test(interpolateEscapedPlaceholders(title)) &&
|
||||
!isTable(arrayTable) &&
|
||||
arrayTable.every(col => col != null && typeof col === 'object');
|
||||
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 [placeholder] = getMatchingPlaceholders(formattedTitle);
|
||||
const normalisedValue = normalisePlaceholderValue(value);
|
||||
if (!placeholder) return formattedTitle;
|
||||
if (placeholder === PRETTY_PLACEHOLDER)
|
||||
return interpolatePrettyPlaceholder(formattedTitle, normalisedValue);
|
||||
return util().format(formattedTitle, normalisedValue);
|
||||
}, interpolateTitleIndex(interpolateEscapedPlaceholders(title), rowIndex))
|
||||
.replace(new RegExp(JEST_EACH_PLACEHOLDER_ESCAPE, 'g'), PLACEHOLDER_PREFIX);
|
||||
const normalisePlaceholderValue = value =>
|
||||
typeof value === 'string'
|
||||
? value.replace(
|
||||
new RegExp(PLACEHOLDER_PREFIX, 'g'),
|
||||
JEST_EACH_PLACEHOLDER_ESCAPE
|
||||
)
|
||||
: value;
|
||||
const getMatchingPlaceholders = title =>
|
||||
title.match(SUPPORTED_PLACEHOLDERS) || [];
|
||||
const interpolateEscapedPlaceholders = title =>
|
||||
title.replace(ESCAPED_PLACEHOLDER_PREFIX, JEST_EACH_PLACEHOLDER_ESCAPE);
|
||||
const interpolateTitleIndex = (title, index) =>
|
||||
title.replace(INDEX_PLACEHOLDER, index.toString());
|
||||
const interpolatePrettyPlaceholder = (title, value) =>
|
||||
title.replace(
|
||||
PRETTY_PLACEHOLDER,
|
||||
(0, _prettyFormat().format)(value, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
})
|
||||
);
|
53
backend/apis/nodejs/node_modules/jest-each/build/table/interpolation.js
generated
vendored
Normal file
53
backend/apis/nodejs/node_modules/jest-each/build/table/interpolation.js
generated
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.getPath = getPath;
|
||||
exports.interpolateVariables = void 0;
|
||||
function _jestGetType() {
|
||||
const data = require('jest-get-type');
|
||||
_jestGetType = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require('pretty-format');
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const interpolateVariables = (title, template, index) =>
|
||||
title
|
||||
.replace(
|
||||
new RegExp(`\\$(${Object.keys(template).join('|')})[.\\w]*`, 'g'),
|
||||
match => {
|
||||
const keyPath = match.slice(1).split('.');
|
||||
const value = getPath(template, keyPath);
|
||||
return (0, _jestGetType().isPrimitive)(value)
|
||||
? String(value)
|
||||
: (0, _prettyFormat().format)(value, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
});
|
||||
}
|
||||
)
|
||||
.replace('$#', `${index}`);
|
||||
|
||||
/* eslint import/export: 0*/
|
||||
exports.interpolateVariables = interpolateVariables;
|
||||
function getPath(template, [head, ...tail]) {
|
||||
if (!head || !Object.prototype.hasOwnProperty.call(template, head))
|
||||
return template;
|
||||
return getPath(template[head], tail);
|
||||
}
|
44
backend/apis/nodejs/node_modules/jest-each/build/table/template.js
generated
vendored
Normal file
44
backend/apis/nodejs/node_modules/jest-each/build/table/template.js
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.default = template;
|
||||
var _interpolation = require('./interpolation');
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
function template(title, headings, row) {
|
||||
const table = convertRowToTable(row, headings);
|
||||
const templates = convertTableToTemplates(table, headings);
|
||||
return templates.map((template, index) => ({
|
||||
arguments: [template],
|
||||
title: (0, _interpolation.interpolateVariables)(title, template, index)
|
||||
}));
|
||||
}
|
||||
const convertRowToTable = (row, headings) =>
|
||||
Array.from(
|
||||
{
|
||||
length: row.length / headings.length
|
||||
},
|
||||
(_, index) =>
|
||||
row.slice(
|
||||
index * headings.length,
|
||||
index * headings.length + headings.length
|
||||
)
|
||||
);
|
||||
const convertTableToTemplates = (table, headings) =>
|
||||
table.map(row =>
|
||||
row.reduce(
|
||||
(acc, value, index) =>
|
||||
Object.assign(acc, {
|
||||
[headings[index]]: value
|
||||
}),
|
||||
{}
|
||||
)
|
||||
);
|
107
backend/apis/nodejs/node_modules/jest-each/build/validation.js
generated
vendored
Normal file
107
backend/apis/nodejs/node_modules/jest-each/build/validation.js
generated
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', {
|
||||
value: true
|
||||
});
|
||||
exports.validateTemplateTableArguments =
|
||||
exports.validateArrayTable =
|
||||
exports.extractValidTemplateHeadings =
|
||||
void 0;
|
||||
function _chalk() {
|
||||
const data = _interopRequireDefault(require('chalk'));
|
||||
_chalk = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _prettyFormat() {
|
||||
const data = require('pretty-format');
|
||||
_prettyFormat = function () {
|
||||
return data;
|
||||
};
|
||||
return data;
|
||||
}
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
}
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const EXPECTED_COLOR = _chalk().default.green;
|
||||
const RECEIVED_COLOR = _chalk().default.red;
|
||||
const validateArrayTable = table => {
|
||||
if (!Array.isArray(table)) {
|
||||
throw new Error(
|
||||
'`.each` must be called with an Array or Tagged Template Literal.\n\n' +
|
||||
`Instead was called with: ${(0, _prettyFormat().format)(table, {
|
||||
maxDepth: 1,
|
||||
min: true
|
||||
})}\n`
|
||||
);
|
||||
}
|
||||
if (isTaggedTemplateLiteral(table)) {
|
||||
if (isEmptyString(table[0])) {
|
||||
throw new Error(
|
||||
'Error: `.each` called with an empty Tagged Template Literal of table data.\n'
|
||||
);
|
||||
}
|
||||
throw new Error(
|
||||
'Error: `.each` called with a Tagged Template Literal with no data, remember to interpolate with ${expression} syntax.\n'
|
||||
);
|
||||
}
|
||||
if (isEmptyTable(table)) {
|
||||
throw new Error(
|
||||
'Error: `.each` called with an empty Array of table data.\n'
|
||||
);
|
||||
}
|
||||
};
|
||||
exports.validateArrayTable = validateArrayTable;
|
||||
const isTaggedTemplateLiteral = array => array.raw !== undefined;
|
||||
const isEmptyTable = table => table.length === 0;
|
||||
const isEmptyString = str => typeof str === 'string' && str.trim() === '';
|
||||
const validateTemplateTableArguments = (headings, data) => {
|
||||
const incompleteData = data.length % headings.length;
|
||||
const missingData = headings.length - incompleteData;
|
||||
if (incompleteData > 0) {
|
||||
throw new Error(
|
||||
`Not enough arguments supplied for given headings:\n${EXPECTED_COLOR(
|
||||
headings.join(' | ')
|
||||
)}\n\n` +
|
||||
`Received:\n${RECEIVED_COLOR((0, _prettyFormat().format)(data))}\n\n` +
|
||||
`Missing ${RECEIVED_COLOR(missingData.toString())} ${pluralize(
|
||||
'argument',
|
||||
missingData
|
||||
)}`
|
||||
);
|
||||
}
|
||||
};
|
||||
exports.validateTemplateTableArguments = validateTemplateTableArguments;
|
||||
const pluralize = (word, count) => word + (count === 1 ? '' : 's');
|
||||
const START_OF_LINE = '^';
|
||||
const NEWLINE = '\\n';
|
||||
const HEADING = '\\s*[^\\s]+\\s*';
|
||||
const PIPE = '\\|';
|
||||
const REPEATABLE_HEADING = `(${PIPE}${HEADING})*`;
|
||||
const HEADINGS_FORMAT = new RegExp(
|
||||
START_OF_LINE + NEWLINE + HEADING + REPEATABLE_HEADING + NEWLINE,
|
||||
'g'
|
||||
);
|
||||
const extractValidTemplateHeadings = headings => {
|
||||
const matches = headings.match(HEADINGS_FORMAT);
|
||||
if (matches === null) {
|
||||
throw new Error(
|
||||
`Table headings do not conform to expected format:\n\n${EXPECTED_COLOR(
|
||||
'heading1 | headingN'
|
||||
)}\n\nReceived:\n\n${RECEIVED_COLOR(
|
||||
(0, _prettyFormat().format)(headings)
|
||||
)}`
|
||||
);
|
||||
}
|
||||
return matches[0];
|
||||
};
|
||||
exports.extractValidTemplateHeadings = extractValidTemplateHeadings;
|
Reference in New Issue
Block a user