diff --git a/runtimes/default.nix b/runtimes/default.nix index 8730bff..6aa3355 100644 --- a/runtimes/default.nix +++ b/runtimes/default.nix @@ -18,4 +18,5 @@ args: { "zig" = import ./zig.nix args; "vlang" = import ./vlang.nix args; "swift" = import ./swift.nix args; + "node-typescript" = import ./node-typescript.nix args; } diff --git a/runtimes/node-typescript.nix b/runtimes/node-typescript.nix new file mode 100644 index 0000000..5d75f88 --- /dev/null +++ b/runtimes/node-typescript.nix @@ -0,0 +1,40 @@ +{pkgs, piston, ...}: +let + node = pkgs.nodejs; + pkg = pkgs.nodePackages.typescript; +in piston.mkRuntime { + language = "typescript"; + version = pkg.version; + runtime = "node"; + + aliases = [ + "ts" + "node-ts" + "tsc" + ]; + + compile = '' + rename 's/$/.ts/' "$@" # Add .ts extension + ${pkg}/bin/tsc *.ts + ''; + + run = '' + code="$1.js" + shift + ${node}/bin/node "$code" "$@" + ''; + + tests = [ + (piston.mkTest { + files = { + "test.js" = '' + console.log("OK"); + ''; + }; + args = []; + stdin = ""; + packages = []; + main = "test.js"; + }) + ]; +} \ No newline at end of file