blob: b5e0e6cdd27cc55b42c6a4ec11dc9f494aefa169 [file] [log] [blame]
/**
* @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
}