Buckets:
| import { | |
| getTypeScriptMakeTemplateObjectPath, | |
| isTaggedTemplateTranspiledByBabel | |
| } from './transpiled-output-utils' | |
| export const appendStringReturningExpressionToArguments = ( | |
| t, | |
| path, | |
| expression | |
| ) => { | |
| let lastIndex = path.node.arguments.length - 1 | |
| let last = path.node.arguments[lastIndex] | |
| if (t.isStringLiteral(last)) { | |
| if (typeof expression === 'string') { | |
| path.node.arguments[lastIndex].value += expression | |
| } else { | |
| path.node.arguments[lastIndex] = t.binaryExpression('+', last, expression) | |
| } | |
| } else { | |
| const makeTemplateObjectCallPath = getTypeScriptMakeTemplateObjectPath(path) | |
| if (makeTemplateObjectCallPath) { | |
| makeTemplateObjectCallPath.get('arguments').forEach(argPath => { | |
| const elements = argPath.get('elements') | |
| const lastElement = elements[elements.length - 1] | |
| if (typeof expression === 'string') { | |
| lastElement.replaceWith( | |
| t.stringLiteral(lastElement.node.value + expression) | |
| ) | |
| } else { | |
| lastElement.replaceWith( | |
| t.binaryExpression('+', lastElement.node, t.cloneNode(expression)) | |
| ) | |
| } | |
| }) | |
| } else if (!isTaggedTemplateTranspiledByBabel(path)) { | |
| if (typeof expression === 'string') { | |
| path.node.arguments.push(t.stringLiteral(expression)) | |
| } else { | |
| path.node.arguments.push(expression) | |
| } | |
| } | |
| } | |
| } | |
| export const joinStringLiterals = (expressions /*: Array<*> */, t) => { | |
| return expressions.reduce((finalExpressions, currentExpression, i) => { | |
| if (!t.isStringLiteral(currentExpression)) { | |
| finalExpressions.push(currentExpression) | |
| } else if ( | |
| t.isStringLiteral(finalExpressions[finalExpressions.length - 1]) | |
| ) { | |
| finalExpressions[finalExpressions.length - 1].value += | |
| currentExpression.value | |
| } else { | |
| finalExpressions.push(currentExpression) | |
| } | |
| return finalExpressions | |
| }, []) | |
| } | |
Xet Storage Details
- Size:
- 1.95 kB
- Xet hash:
- 36d2672af19ba010ce39aabd35ff1cca3443fa397f404d8f5ecec363c5a6a8e6
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.