Skip to content

Commit

Permalink
Add command line option for generating TS support files in generator
Browse files Browse the repository at this point in the history
  • Loading branch information
mutagene committed Nov 25, 2023
1 parent 2046247 commit d78420d
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 34 deletions.
4 changes: 2 additions & 2 deletions src/it/resources/expected/all_datatypes/generated-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ src/it/resources/result/all_datatypes/wasm/enum_data.hpp
src/it/resources/result/all_datatypes/wasm/enum_data.cpp
src/it/resources/result/all_datatypes/wasm/all_datatypes.hpp
src/it/resources/result/all_datatypes/wasm/all_datatypes.cpp
src/it/resources/result/all_datatypes/ts/DjinniModule.ts
src/it/resources/result/all_datatypes/ts/DjinniModule.js
src/it/resources/result/all_datatypes/ts/support-lib/DjinniModule.ts
src/it/resources/result/all_datatypes/ts/support-lib/DjinniModule.js
src/it/resources/result/all_datatypes/ts/module.ts

4 changes: 2 additions & 2 deletions src/it/resources/expected/deprecation/generated-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ src/it/resources/result/deprecation/cpp-headers/my_flags.hpp
src/it/resources/result/deprecation/cpp-headers/my_record.hpp
src/it/resources/result/deprecation/cpp-headers/my_interface.hpp
src/it/resources/result/deprecation/cpp/my_interface.cpp
src/it/resources/result/deprecation/ts/DjinniModule.ts
src/it/resources/result/deprecation/ts/DjinniModule.js
src/it/resources/result/deprecation/ts/support-lib/DjinniModule.ts
src/it/resources/result/deprecation/ts/support-lib/DjinniModule.js
src/it/resources/result/deprecation/ts/module.ts

Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ src/it/resources/result/my_client_interface/cwrapper/cw__my_client_interface.cpp
src/it/resources/result/my_client_interface/cffi/pycffi_lib_build.py
src/it/resources/result/my_client_interface/wasm/my_client_interface.hpp
src/it/resources/result/my_client_interface/wasm/my_client_interface.cpp
src/it/resources/result/my_client_interface/ts/DjinniModule.ts
src/it/resources/result/my_client_interface/ts/DjinniModule.js
src/it/resources/result/my_client_interface/ts/support-lib/DjinniModule.ts
src/it/resources/result/my_client_interface/ts/support-lib/DjinniModule.js
src/it/resources/result/my_client_interface/ts/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ src/it/resources/result/my_cpp_interface/cwrapper/cw__my_cpp_interface.cpp
src/it/resources/result/my_cpp_interface/cffi/pycffi_lib_build.py
src/it/resources/result/my_cpp_interface/wasm/my_cpp_interface.hpp
src/it/resources/result/my_cpp_interface/wasm/my_cpp_interface.cpp
src/it/resources/result/my_cpp_interface/ts/DjinniModule.ts
src/it/resources/result/my_cpp_interface/ts/DjinniModule.js
src/it/resources/result/my_cpp_interface/ts/support-lib/DjinniModule.ts
src/it/resources/result/my_cpp_interface/ts/support-lib/DjinniModule.js
src/it/resources/result/my_cpp_interface/ts/module.ts

4 changes: 2 additions & 2 deletions src/it/resources/expected/my_enum/generated-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ src/it/resources/result/my_enum/cwrapper/dh__my_enum.hpp
src/it/resources/result/my_enum/cwrapper/dh__my_enum.cpp
src/it/resources/result/my_enum/wasm/my_enum.hpp
src/it/resources/result/my_enum/wasm/my_enum.cpp
src/it/resources/result/my_enum/ts/DjinniModule.ts
src/it/resources/result/my_enum/ts/DjinniModule.js
src/it/resources/result/my_enum/ts/support-lib/DjinniModule.ts
src/it/resources/result/my_enum/ts/support-lib/DjinniModule.js
src/it/resources/result/my_enum/ts/module.ts

4 changes: 2 additions & 2 deletions src/it/resources/expected/my_flags/generated-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ src/it/resources/result/my_flags/cwrapper/dh__my_flags.hpp
src/it/resources/result/my_flags/cwrapper/dh__my_flags.cpp
src/it/resources/result/my_flags/wasm/my_flags.hpp
src/it/resources/result/my_flags/wasm/my_flags.cpp
src/it/resources/result/my_flags/ts/DjinniModule.ts
src/it/resources/result/my_flags/ts/DjinniModule.js
src/it/resources/result/my_flags/ts/support-lib/DjinniModule.ts
src/it/resources/result/my_flags/ts/support-lib/DjinniModule.js
src/it/resources/result/my_flags/ts/module.ts

4 changes: 2 additions & 2 deletions src/it/resources/expected/my_record/generated-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ src/it/resources/result/my_record/cwrapper/dh__my_record.hpp
src/it/resources/result/my_record/cwrapper/dh__my_record.cpp
src/it/resources/result/my_record/wasm/my_record.hpp
src/it/resources/result/my_record/wasm/my_record.cpp
src/it/resources/result/my_record/ts/DjinniModule.ts
src/it/resources/result/my_record/ts/DjinniModule.js
src/it/resources/result/my_record/ts/support-lib/DjinniModule.ts
src/it/resources/result/my_record/ts/support-lib/DjinniModule.js
src/it/resources/result/my_record/ts/module.ts

Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ src/it/resources/result/using_custom_datatypes/wasm/custom_datatype.hpp
src/it/resources/result/using_custom_datatypes/wasm/custom_datatype.cpp
src/it/resources/result/using_custom_datatypes/wasm/other_record.hpp
src/it/resources/result/using_custom_datatypes/wasm/other_record.cpp
src/it/resources/result/using_custom_datatypes/ts/DjinniModule.ts
src/it/resources/result/using_custom_datatypes/ts/DjinniModule.js
src/it/resources/result/using_custom_datatypes/ts/support-lib/DjinniModule.ts
src/it/resources/result/using_custom_datatypes/ts/support-lib/DjinniModule.js
src/it/resources/result/using_custom_datatypes/ts/module.ts
1 change: 1 addition & 0 deletions src/it/scala/djinni/IntegrationTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ class IntegrationTest extends AnyFunSpec {
cmd += s" --wasm-out $baseOutputPath/$idl/$WASM"
cmd += s" --wasm-namespace testsuite"
cmd += s" --ts-out $baseOutputPath/$idl/$TS"
cmd += s" --ts-support-files-out $baseOutputPath/$idl/$TS/support-lib"
}
if (useNNHeader) {
cmd += " --cpp-nn-header nn.hpp"
Expand Down
13 changes: 7 additions & 6 deletions src/main/scala/djinni/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ object Main {
var jsIdentStyle = IdentStyle.jsDefault
var tsOutFolder: Option[File] = None
var tsModule: String = "module"
var tsGenerateSupportFiles: Boolean = false
var tsSupportFilesOutFolder: Option[File] = None

val argParser: OptionParser[Unit] = new scopt.OptionParser[Unit]("djinni") {

Expand Down Expand Up @@ -605,11 +605,12 @@ object Main {
.valueName("<name>")
.foreach(tsModule = _)
.text("TypeScript declaration module name (default: \"module\").")
opt[Boolean]("ts-generate-support-files")
.valueName("<true/false>")
.foreach(x => tsGenerateSupportFiles = x)

opt[File]("ts-support-files-out")
.valueName("<out-folder>")
.foreach(x => tsSupportFilesOutFolder = Some(x))
.text(
"Whether to generate DjinniModule.[ts/js] or not. (default: true)"
"Folder in which to generate DjinniModule.[ts/js] files. (Not generated if not specified)"
)

note(
Expand Down Expand Up @@ -1036,7 +1037,7 @@ object Main {
jsIdentStyle,
tsOutFolder,
tsModule,
tsGenerateSupportFiles,
tsSupportFilesOutFolder,
idlFile.getName.stripSuffix(".djinni")
)

Expand Down
25 changes: 14 additions & 11 deletions src/main/scala/djinni/TsGenerator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ class TsGenerator(spec: Spec) extends Generator(spec) {
}
// --------------------------------------------------------------------------
override def generate(idl: Seq[TypeDecl]) {
if(spec.tsGenerateSupportFiles) {
if (!spec.tsSupportFilesOutFolder.isEmpty) {
writeDjinniModuleFilesFile()
}
createFile(
Expand Down Expand Up @@ -353,16 +353,19 @@ class TsGenerator(spec: Spec) extends Generator(spec) {
) {}

def writeDjinniModuleFile(f: IndentWriter => Unit, ext: String): Unit = {
createFileOnce(
spec.tsOutFolder.get,
s"DjinniModule.$ext",
(w: IndentWriter) => {
w.wl("// AUTOGENERATED FILE - DO NOT MODIFY!")
w.wl("// This file was generated by Djinni")
w.wl
f(w)
}
)
if (!spec.skipGeneration) {
createFolder("TS Support lib", spec.tsSupportFilesOutFolder.get)
createFileOnce(
spec.tsSupportFilesOutFolder.get,
s"DjinniModule.$ext",
(w: IndentWriter) => {
w.wl("// AUTOGENERATED FILE - DO NOT MODIFY!")
w.wl("// This file was generated by Djinni")
w.wl
f(w)
}
)
}
}

def writeDjinniModuleFilesFile(): Unit = {
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/djinni/generator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ package object generatorTools {
jsIdentStyle: JsIdentStyle,
tsOutFolder: Option[File],
tsModule: String,
tsGenerateSupportFiles: Boolean,
tsSupportFilesOutFolder: Option[File],
moduleName: String
)

Expand Down

0 comments on commit d78420d

Please sign in to comment.