Class: Guard::TypeScript

Inherits:
Guard
  • Object
show all
Defined in:
lib/guard/typescript.rb,
lib/guard/typescript/runner.rb,
lib/guard/typescript/formatter.rb,
lib/guard/typescript/inspector.rb

Overview

The TypeScript guard that gets notifications about the following Guard events: ‘start`, `stop`, `reload`, `run_all` and `run_on_change`.

Defined Under Namespace

Modules: Formatter, Inspector, Runner

Constant Summary collapse

DEFAULT_OPTIONS =
{
    :shallow      => false,
    :hide_success => false,
    :error_to_js  => false,
    :all_on_start => false,
    :source_map   => false
}

Instance Method Summary collapse

Constructor Details

#initialize(watchers = [], options = {}) ⇒ TypeScript

Initialize Guard::TypeScript.

Parameters:

  • watchers (Array<Guard::Watcher>) (defaults to: [])

    the watchers in the Guard block

  • options (Hash) (defaults to: {})

    the options for the Guard

Options Hash (options):

  • :input (String)

    the input directory

  • :output (String)

    the output directory

  • :concatenate (Boolean)

    combine dependencies into files

  • :shallow (Boolean)

    do not create nested directories

  • :hide_success (Boolean)

    hide success message notification

  • :all_on_start (Boolean)

    generate all JavaScripts files on start

  • :source_map (Boolean)

    generate the source map files



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/guard/typescript.rb', line 34

def initialize(watchers = [], options = {})
  watchers = [] if !watchers
  defaults = DEFAULT_OPTIONS.clone

  if options[:input]
    defaults.merge!({ :output => options[:input] })
    watchers << ::Guard::Watcher.new(%r{^#{ options[:input] }/(.+\.(?:ts))$})
  end

  super(watchers, defaults.merge(options))
end

Instance Method Details

#run_allObject

Gets called when all files should be regenerated.

Raises:

  • (:task_has_failed)

    when stop has failed



58
59
60
# File 'lib/guard/typescript.rb', line 58

def run_all
  run_on_modifications(Watcher.match_files(self, Dir.glob('**{,/*/**}/*.ts')))
end

#run_on_modifications(paths) ⇒ Object

Gets called when watched paths and files have changes.

Parameters:

  • paths (Array<String>)

    the changed paths and files

Raises:

  • (:task_has_failed)

    when stop has failed



67
68
69
70
71
# File 'lib/guard/typescript.rb', line 67

def run_on_modifications(paths)
  changed_files, success = Runner.run(Inspector.clean(paths), watchers, options)

  throw :task_has_failed unless success
end

#run_on_removals(paths) ⇒ Object

Called on file(s) deletions that the Guard watches.

Parameters:

  • paths (Array<String>)

    the deleted files or paths

Raises:

  • (:task_has_failed)

    when run_on_change has failed



78
79
80
# File 'lib/guard/typescript.rb', line 78

def run_on_removals(paths)
  Runner.remove(Inspector.clean(paths, :missing_ok => true), watchers, options)
end

#startObject

Gets called once when Guard starts.

Raises:

  • (:task_has_failed)

    when stop has failed



50
51
52
# File 'lib/guard/typescript.rb', line 50

def start
  run_all if options[:all_on_start]
end