silphius/app/swcx/types.js
2024-06-18 22:29:40 -05:00

152 lines
2.9 KiB
JavaScript

export function isArrayPattern(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'ArrayPattern') {
return false;
}
return true;
}
export function isBlockStatement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'BlockStatement') {
return false;
}
return true;
}
export function isComputed(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'Computed') {
return false;
}
return true;
}
export function isDoWhileStatement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'DoWhileStatement') {
return false;
}
return true;
}
export function isExpressionStatement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'ExpressionStatement') {
return false;
}
return true;
}
export function isForStatement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'ForStatement') {
return false;
}
return true;
}
export function isIdentifier(node) {
if (!node || node.type !== 'Identifier') {
return false;
}
return true;
}
export function isIfStatement(node) {
if (!node || node.type !== 'IfStatement') {
return false;
}
return true;
}
export function isKeyValueProperty(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'KeyValueProperty') {
return false;
}
return true;
}
export function isMemberExpression(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'MemberExpression') {
return false;
}
return true;
}
export function isNumericLiteral(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'NumericLiteral') {
return false;
}
return true;
}
export function isObjectPattern(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'ObjectPattern') {
return false;
}
return true;
}
export function isReturnStatement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'ReturnStatement') {
return false;
}
return true;
}
export function isSpreadElement(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'SpreadElement') {
return false;
}
return true;
}
export function isStringLiteral(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'StringLiteral') {
return false;
}
return true;
}
export function isVariableDeclarator(node) {
/* v8 ignore next 3 */
if (!node || node.type !== 'VariableDeclarator') {
return false;
}
return true;
}
export function isWhileStatement(node) {
if (!node || node.type !== 'WhileStatement') {
return false;
}
return true;
}
export function unwrap(node) {
let wrapped = node;
switch (node.type) {
case 'Computed':
wrapped = unwrap(node.expression);
break;
case 'OptionalChainingExpression':
wrapped = unwrap(node.base);
break;
case 'ParenthesisExpression':
wrapped = unwrap(node.expression);
break;
}
if (node !== wrapped) {
wrapped.wrapper = node;
}
return wrapped;
}