|
- 'use strict'
-
- /**
- * Check whether the given token is a wildcard.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is a wildcard.
- */
- function isWildcard(token) {
- return token != null && token.type === 'Punctuator' && token.value === '*'
- }
-
- /**
- * Check whether the given token is a question.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is a question.
- */
- function isQuestion(token) {
- return token != null && token.type === 'Punctuator' && token.value === '?'
- }
-
- /**
- * Check whether the given token is an extends keyword.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is an extends keywordn.
- */
- function isExtendsKeyword(token) {
- return token != null && token.type === 'Keyword' && token.value === 'extends'
- }
-
- /**
- * Check whether the given token is a whitespace.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is a whitespace.
- */
- function isNotWhitespace(token) {
- return (
- token != null &&
- token.type !== 'HTMLWhitespace' &&
- (token.type !== 'JSXText' || !!token.value.trim())
- )
- }
-
- /**
- * Check whether the given token is a comment.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is a comment.
- */
- function isComment(token) {
- return (
- token != null &&
- (token.type === 'Block' ||
- token.type === 'Line' ||
- token.type === 'Shebang' ||
- (typeof token.type ===
- 'string' /* Although acorn supports new tokens, espree may not yet support new tokens.*/ &&
- token.type.endsWith('Comment')))
- )
- }
-
- /**
- * Check whether the given token is a comment.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `false` if the token is a comment.
- */
- function isNotComment(token) {
- return (
- token != null &&
- token.type !== 'Block' &&
- token.type !== 'Line' &&
- token.type !== 'Shebang' &&
- !(
- typeof token.type ===
- 'string' /* Although acorn supports new tokens, espree may not yet support new tokens.*/ &&
- token.type.endsWith('Comment')
- )
- )
- }
-
- /**
- * Check whether the given node is not an empty text node.
- * @param {ASTNode} node The node to check.
- * @returns {boolean} `false` if the token is empty text node.
- */
- function isNotEmptyTextNode(node) {
- return !(node.type === 'VText' && node.value.trim() === '')
- }
-
- /**
- * Check whether the given token is a pipe operator.
- * @param {Token|undefined|null} token The token to check.
- * @returns {boolean} `true` if the token is a pipe operator.
- */
- function isPipeOperator(token) {
- return token != null && token.type === 'Punctuator' && token.value === '|'
- }
-
- /**
- * Get the last element.
- * @template T
- * @param {T[]} xs The array to get the last element.
- * @returns {T | undefined} The last element or undefined.
- */
- function last(xs) {
- return xs.length === 0 ? undefined : xs[xs.length - 1]
- }
-
- module.exports = {
- isWildcard,
- isQuestion,
- isExtendsKeyword,
- isNotWhitespace,
- isComment,
- isNotComment,
- isNotEmptyTextNode,
- isPipeOperator,
- last
- }
|