/** * @author Toru Nagashima * @copyright 2016 Toru Nagashima. All rights reserved. * See LICENSE file in root directory for full license. */ "use strict" //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ /** * Gets the value of a given node if it's a literal or a template literal. * * @param {ASTNode} node - A node to get. * @returns {string|null} The value of the node, or `null`. */ module.exports = function getValueIfString(node) { if (!node) { return null } switch (node.type) { case "Literal": if (typeof node.value === "string") { return node.value } break case "TemplateLiteral": if (node.expressions.length === 0) { return node.quasis[0].value.cooked } break // no default } return null }