UNPKG

@nx/js

Version:

The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects.

39 lines (38 loc) 1.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidVariable = isValidVariable; /** * Determines if a given string is a valid JavaScript variable name. * @param name name of the variable to be checked * @returns result object with a boolean indicating if the name is valid and a message explaining why it is not valid */ function isValidVariable(name) { const validRegex = /^[a-zA-Z_$][0-9a-zA-Z_$]*$/; if (validRegex.test(name)) { return { isValid: true, message: 'The name is a valid identifier.' }; } else { if (name === '') { return { isValid: false, message: 'The name cannot be empty.' }; } else if (/^[0-9]/.test(name)) { return { isValid: false, message: 'The name cannot start with a digit.' }; } else if (/[^a-zA-Z0-9_$]/.test(name)) { return { isValid: false, message: 'The name can only contain letters, digits, underscores, and dollar signs.', }; } else if (/^[^a-zA-Z_$]/.test(name)) { return { isValid: false, message: 'The name must start with a letter, underscore, or dollar sign.', }; } return { isValid: false, message: 'The name is not a valid JavaScript identifier.', }; } }