throw errors from KTxt2 kiss interpolation

This commit is contained in:
2021-10-29 17:47:30 -04:00
parent 22964c1c9f
commit 7d4dc3a6ad
2 changed files with 5 additions and 5 deletions

View File

@@ -61,7 +61,7 @@
elements)) elements))
// Return [sourceFile outputFile] // Return [sourceFile outputFile]
(function :Array<String> extractFileContents [:Stream fileStream] (function :Array<String> extractFileContents [:Stream fileStream :String->Dynamic reportError]
(let [&mut sourceText "" (let [&mut sourceText ""
&mut outputText "" &mut outputText ""
interp (new KissInterp)] interp (new KissInterp)]
@@ -70,13 +70,13 @@
((Block (objectWith source output)) ((Block (objectWith source output))
(+= sourceText source) (+= sourceText source)
(dictSet interp.variables "source" source) (dictSet interp.variables "source" source)
(dictSet interp.variables "R" re_flex.R)
(+= outputText (+= outputText
// Don't run the expensive "evalKiss" if there is no interpolation in the block! // Don't run the expensive "evalKiss" if there is no interpolation in the block!
(if (= -1 (output.indexOf "\$")) (if (= -1 (output.indexOf "\$"))
output output
(let [escapedOutput (try (interp.evalKiss "\"${output}\"")
(output.replace "\"" "\\\"")] (catch [error] (reportError "Export templating error $error") (throw error))))))
(interp.evalKiss "\"${escapedOutput}\"")))))
(otherwise))) (otherwise)))
[sourceText outputText])) [sourceText outputText]))

View File

@@ -104,7 +104,7 @@
(function exportSourceAndOutputFiles [document] (function exportSourceAndOutputFiles [document]
(let [:String ktxt2FullFilename document.fileName (let [:String ktxt2FullFilename document.fileName
[sourceText outputText] (KTxt2.extractFileContents (Stream.fromFile ktxt2FullFilename)) [sourceText outputText] (KTxt2.extractFileContents (Stream.fromFile ktxt2FullFilename) ->message (errorMessage message))
ktxt2Directory (ktxt2FullFilename.directory) ktxt2Directory (ktxt2FullFilename.directory)
ktxt2Filename (ktxt2FullFilename.withoutDirectory) ktxt2Filename (ktxt2FullFilename.withoutDirectory)
[baseFilename sourceExt outputExt ktxt2Ext] (ktxt2Filename.split ".") [baseFilename sourceExt outputExt ktxt2Ext] (ktxt2Filename.split ".")