Module: JsRoutes

Extended by:
Types, T::Sig
Defined in:
lib/js_routes/utils.rb,
lib/js_routes.rb,
lib/js_routes/route.rb,
lib/js_routes/types.rb,
lib/js_routes/engine.rb,
lib/js_routes/version.rb,
lib/js_routes/instance.rb,
lib/js_routes/middleware.rb,
lib/js_routes/configuration.rb

Overview

typed: strict

Defined Under Namespace

Modules: Generators, Types, Utils Classes: Configuration, Engine, Instance, Middleware, Route, SprocketsExtension

Constant Summary collapse

VERSION =
"2.3.5"

Constants included from Types

Types::Application, Types::ApplicationCaller, Types::BannerCaller, Types::Clusivity, Types::ConfigurationBlock, Types::FileName, Types::JourneyRoute, Types::Literal, Types::Options, Types::Prefix, Types::RouteSpec, Types::SpecNode, Types::StringArray, Types::StringHash, Types::SymbolArray, Types::UntypedArray

Class Method Summary collapse

Class Method Details

.configurationObject



29
30
31
# File 'lib/js_routes.rb', line 29

def configuration
  @configuration ||= T.let(Configuration.new, T.nilable(JsRoutes::Configuration))
end

.definitions(**opts) ⇒ Object



53
54
55
# File 'lib/js_routes.rb', line 53

def definitions(**opts)
  generate(**opts, module_type: 'DTS')
end

.definitions!(file_name = nil, **opts) ⇒ Object



58
59
60
61
62
63
# File 'lib/js_routes.rb', line 58

def definitions!(file_name = nil, **opts)
  file_name ||= configuration.file

  file_name = file_name&.sub(%r{(\.d)?\.(j|t)s\Z}, ".d.ts")
  generate!(file_name, **opts, module_type: 'DTS')
end

.digestObject



71
72
73
74
75
# File 'lib/js_routes.rb', line 71

def digest
  Digest::SHA256.file(
    Rails.root.join("config/routes.rb")
  ).hexdigest
end

.generate(**opts) ⇒ Object



34
35
36
# File 'lib/js_routes.rb', line 34

def generate(**opts)
  Instance.new(**opts).generate
end

.generate!(file_name = configuration.file, typed: false, **opts) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/js_routes.rb', line 39

def generate!(file_name = configuration.file, typed: false, **opts)
  instance = Instance.new(file: file_name, **opts)
  instance.generate!
  if typed && instance.configuration.modern?
    definitions!(file_name, **opts)
  end
end

.json(value) ⇒ Object



66
67
68
# File 'lib/js_routes.rb', line 66

def json(value)
  ActiveSupport::JSON.encode(value)
end

.remove!(file_name = configuration.file, **opts) ⇒ Object



48
49
50
# File 'lib/js_routes.rb', line 48

def remove!(file_name = configuration.file, **opts)
  Instance.new(file: file_name, **opts).remove!
end

.setup(&block) ⇒ Object



24
25
26
# File 'lib/js_routes.rb', line 24

def setup(&block)
  configuration.setup(&block)
end