Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
112 lines
3.5 KiB
JavaScript
112 lines
3.5 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.needsWhitespace = needsWhitespace;
|
|
exports.needsWhitespaceBefore = needsWhitespaceBefore;
|
|
exports.needsWhitespaceAfter = needsWhitespaceAfter;
|
|
exports.needsParens = needsParens;
|
|
|
|
var whitespace = _interopRequireWildcard(require("./whitespace"));
|
|
|
|
var parens = _interopRequireWildcard(require("./parentheses"));
|
|
|
|
var t = _interopRequireWildcard(require("@babel/types"));
|
|
|
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
|
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
|
|
function expandAliases(obj) {
|
|
const newObj = {};
|
|
|
|
function add(type, func) {
|
|
const fn = newObj[type];
|
|
newObj[type] = fn ? function (node, parent, stack) {
|
|
const result = fn(node, parent, stack);
|
|
return result == null ? func(node, parent, stack) : result;
|
|
} : func;
|
|
}
|
|
|
|
for (const type of Object.keys(obj)) {
|
|
const aliases = t.FLIPPED_ALIAS_KEYS[type];
|
|
|
|
if (aliases) {
|
|
for (const alias of aliases) {
|
|
add(alias, obj[type]);
|
|
}
|
|
} else {
|
|
add(type, obj[type]);
|
|
}
|
|
}
|
|
|
|
return newObj;
|
|
}
|
|
|
|
const expandedParens = expandAliases(parens);
|
|
const expandedWhitespaceNodes = expandAliases(whitespace.nodes);
|
|
const expandedWhitespaceList = expandAliases(whitespace.list);
|
|
|
|
function find(obj, node, parent, printStack) {
|
|
const fn = obj[node.type];
|
|
return fn ? fn(node, parent, printStack) : null;
|
|
}
|
|
|
|
function isOrHasCallExpression(node) {
|
|
if (t.isCallExpression(node)) {
|
|
return true;
|
|
}
|
|
|
|
if (t.isMemberExpression(node)) {
|
|
return isOrHasCallExpression(node.object) || !node.computed && isOrHasCallExpression(node.property);
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function needsWhitespace(node, parent, type) {
|
|
if (!node) return 0;
|
|
|
|
if (t.isExpressionStatement(node)) {
|
|
node = node.expression;
|
|
}
|
|
|
|
let linesInfo = find(expandedWhitespaceNodes, node, parent);
|
|
|
|
if (!linesInfo) {
|
|
const items = find(expandedWhitespaceList, node, parent);
|
|
|
|
if (items) {
|
|
for (let i = 0; i < items.length; i++) {
|
|
linesInfo = needsWhitespace(items[i], node, type);
|
|
if (linesInfo) break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (typeof linesInfo === "object" && linesInfo !== null) {
|
|
return linesInfo[type] || 0;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
function needsWhitespaceBefore(node, parent) {
|
|
return needsWhitespace(node, parent, "before");
|
|
}
|
|
|
|
function needsWhitespaceAfter(node, parent) {
|
|
return needsWhitespace(node, parent, "after");
|
|
}
|
|
|
|
function needsParens(node, parent, printStack) {
|
|
if (!parent) return false;
|
|
|
|
if (t.isNewExpression(parent) && parent.callee === node) {
|
|
if (isOrHasCallExpression(node)) return true;
|
|
}
|
|
|
|
if (t.isLogicalExpression(node) && parent.operator === "??") return true;
|
|
return find(expandedParens, node, parent, printStack);
|
|
} |