Skip to content

Commit 5298f9b

Browse files
authored
Merge pull request #309 from brenoprata10/master
Add compiler option to Typescript
2 parents 49f5fac + 81c5266 commit 5298f9b

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed
Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
## TypeScript original
22

3-
Requires `ts-node`, usually installed from npm
3+
Prior to NodeJS v22.6.0:
4+
Install `ts-node`, usually installed from npm
45

56
`sudo npm install -g ts-node typescript`
7+
8+
---
9+
10+
If you have NodeJS v22.6.0+:
11+
12+
```lua
13+
require'sniprun'.setup({
14+
interpreter_options = {
15+
TypeScript_original = {
16+
interpreter = 'node'
17+
}
18+
}
19+
}
20+
})
21+
```
22+
23+
[^1]: `ts-node` and `typescript` packages are no longer needed for newer NodeJS versions

src/interpreters/TypeScript_original.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ pub struct TypeScript_original {
77
data: DataHolder,
88
code: String,
99
main_file_path: String,
10+
11+
//specific to Typescript
12+
interpreter: String,
1013
}
1114

1215
impl ReplLikeInterpreter for TypeScript_original {}
@@ -23,11 +26,17 @@ impl Interpreter for TypeScript_original {
2326

2427
//pre-create string pointing to main file's and binary's path
2528
let mfp = lwd + "/main.ts";
29+
30+
let interpreter = match TypeScript_original::get_interpreter_option(&data, "interpreter") {
31+
Some(user_interpreter) => user_interpreter.to_string().replace("\"", ""),
32+
None => "ts-node".to_string()
33+
};
2634
Box::new(TypeScript_original {
2735
data,
2836
support_level,
2937
code: String::new(),
3038
main_file_path: mfp,
39+
interpreter
3140
})
3241
}
3342

@@ -114,7 +123,7 @@ impl Interpreter for TypeScript_original {
114123

115124
fn execute(&mut self) -> Result<String, SniprunError> {
116125
//run th binary and get the std output (or stderr)
117-
let interpreter = TypeScript_original::get_interpreter_or(&self.data, "ts-node");
126+
let interpreter = TypeScript_original::get_interpreter_or(&self.data, &self.interpreter);
118127
let output = Command::new(interpreter.split_whitespace().next().unwrap())
119128
.args(interpreter.split_whitespace().skip(1))
120129
.arg(&self.main_file_path)

0 commit comments

Comments
 (0)