class Rake::Pipeline::Typescript::TypeScriptFilter
A filter that compiles TypeScript to JavaScript.
Attributes
options[R]
@return [Hash] a hash of options to pass to CoffeeScript when
rendering.
Public Class Methods
new(options = {}, &block)
click to toggle source
By default, the CoffeeScriptFilter converts inputs with the extension .coffee
to .js
.
@param [Hash] options options to pass to the CoffeeScript
compiler.
@param [Proc] block the output name generator block
Calls superclass method
Rake::Pipeline::Typescript::FilterWithDependencies::new
# File lib/rake-pipeline-typescript/type_script_filter.rb, line 18 def initialize(options = {}, &block) block ||= proc { |input| input.sub(/\.ts$/, '.js') } super(&block) @options = options end
Public Instance Methods
external_dependencies()
click to toggle source
# File lib/rake-pipeline-typescript/type_script_filter.rb, line 52 def external_dependencies [ "typescript-node" ] end
generate_output(inputs, output)
click to toggle source
The body of the filter. Compile each input file into a CoffeeScript compiled output file.
@param [Array] inputs an Array of FileWrapper objects. @param [FileWrapper] output a FileWrapper object
# File lib/rake-pipeline-typescript/type_script_filter.rb, line 29 def generate_output(inputs, output) inputs.each do |input| begin if (input.respond_to?(:read)) script = input.read else script = input end #script = input.read if input.respond_to?(:read) result = TypeScript::Node::compile(script) output.write(result) # if result.success? # output.write(result.js) # else # raise result.stderr #end rescue ExecJS::Error => error raise error, "Error compiling #{input.path}. #{error.message}" end end end