Module: TypeScript::Ruby

Defined in:
lib/tsc-ruby.rb,
lib/tsc-ruby/version.rb,
lib/tsc-ruby/compile_result.rb

Defined Under Namespace

Classes: CompileResult, NodeNotFound

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.compile(script, *tsc_options) ⇒ String

Compile TypeScript string to JavaScript string

Parameters:

  • script (String)

    TypeScript to be compiled

Returns:

  • (String)

    compiled JavaScript



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/tsc-ruby.rb', line 30

def compile(script, *tsc_options)
  script = script.read if script.respond_to?(:read)
  js_file = Tempfile.new(%w(tsc-ruby .ts))
  begin
    js_file.write(source)
    js_file.close
    result = compile_file(js_file.path, *tsc_options)
    if result.success?
      result.js
    else
      raise result.stderr + result.stdout
    end
  ensure
    js_file.unlink
  end
end

.tsc(*args) ⇒ Object



19
20
21
22
23
24
# File 'lib/tsc-ruby.rb', line 19

def tsc(*args)
  cmd = ['node', TypeScript::Src.tsc_path.to_s, *args]
  Open3.capture3(*cmd)
rescue Errno::ENOENT => e
  raise '`node` executable not found in PATH' if e.message == 'No such file or directory - node'
end

.tsc_versionObject



15
16
17
# File 'lib/tsc-ruby.rb', line 15

def tsc_version
  TypeScript::Src.version
end