mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-25 10:01:30 -04:00
41 lines
1004 B
JavaScript
41 lines
1004 B
JavaScript
/**
|
|
* @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
|
|
}
|