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

View File

@@ -104,7 +104,7 @@
(function exportSourceAndOutputFiles [document]
(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)
ktxt2Filename (ktxt2FullFilename.withoutDirectory)
[baseFilename sourceExt outputExt ktxt2Ext] (ktxt2Filename.split ".")