How do you insert a arbitrary string into the output that sweet.js generates?
This is very useful for programatically doing things where the string is different based on various conditions.
For example, on line 25 in the code below, I would like to insert a string as the result.
sweet.js code:
import { produceNormalParams } from './abc/produceNormalParams'
import { produceParamChecks } from './abc/produceParamChecks'
import { produceInnerChecks } from './abc/produceInnerChecks'
syntax function = function(ctx) {
let funcName = ctx.next().value;
let funcParams = ctx.next().value;
let funcBody = ctx.next().value;
//produce the normal params array
var normalParams = produceNormalParams(funcParams)
//produce the checks
var paramChecks = produceParamChecks(funcParams)
//produce the original funcBody code
var inner = produceInnerChecks(funcParams)
var someArbitraryString = "console.log('hey')"
//put them together as the final result
var result = #`function ${funcName} ${normalParams} {
${someArbitraryString}
${paramChecks}
${inner}
}`
return result
}
Example Input:
module.exports = multiply
function multiply(a:array,b,c:array) {
return a * c
}
Example Output:
// Example Output
module.exports = multiply;
function multiply(a_31, b_32, c_33) {
console.log('hey')
if (Object.prototype.toString.call(a_31) !== "[object Array]") throw new Error("Must be array:" + a_31);
if (Object.prototype.toString.call(c_33) !== "[object Array]") throw new Error("Must be array:" + c_33);
return a_31 * c_33;
}