class Piperun::Filters::TypeScriptFilter
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
Piperun::Filters::Filter::new
# File lib/piperun/filters/typescript_filter.rb, line 3 def initialize(options = {}) super() @options = { output: nil, noImplicitAny: false }.merge(options) end
Public Instance Methods
run(src, dst, files)
click to toggle source
# File lib/piperun/filters/typescript_filter.rb, line 11 def run(src, dst, files) argv = ["tsc"] argv << "--noImplicitAny" if @options[:noImplicitAny] unless @options[:output].nil? files.map! { |f| File.join(src, f) } dstpath = File.join(dst, @options[:output]) FileUtils::mkdir_p File.dirname(dstpath) tsc *argv, "--out", dstpath, *files [@options[:output]] else outfiles = [] files.each do |name| outname = "#{File.join(File.dirname(name), File.basename(name, '.*'))}.js" srcpath = File.join(src, name) dstpath = File.join(dst, outname) FileUtils::mkdir_p File.dirname(dstpath) tsc *argv, "--outDir", File.dirname(dstpath), srcpath outfiles << outname end outfiles end end
Private Instance Methods
tsc(*argv)
click to toggle source
# File lib/piperun/filters/typescript_filter.rb, line 43 def tsc(*argv) pid = Process.spawn(*argv) Process.wait(pid) unless $?.exitstatus == 0 raise StandardError, "Typescript Compiler failed" end end