js-routes 2.2.8 → 2.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -9
  3. data/Readme.md +60 -45
  4. data/lib/js_routes/configuration.rb +80 -34
  5. data/lib/js_routes/engine.rb +2 -0
  6. data/lib/js_routes/generators/base.rb +19 -0
  7. data/lib/js_routes/generators/middleware.rb +6 -8
  8. data/lib/js_routes/generators/webpacker.rb +1 -3
  9. data/lib/js_routes/instance.rb +50 -15
  10. data/lib/js_routes/middleware.rb +16 -3
  11. data/lib/js_routes/route.rb +60 -17
  12. data/lib/js_routes/types.rb +38 -0
  13. data/lib/js_routes/version.rb +2 -1
  14. data/lib/js_routes.rb +25 -7
  15. metadata +28 -45
  16. data/.document +0 -5
  17. data/.eslintrc.js +0 -15
  18. data/.github/workflows/ci.yml +0 -36
  19. data/.gitignore +0 -65
  20. data/.nvmrc +0 -1
  21. data/.rspec +0 -1
  22. data/Appraisals +0 -17
  23. data/Gemfile +0 -4
  24. data/Rakefile +0 -37
  25. data/VERSION_2_UPGRADE.md +0 -66
  26. data/gemfiles/rails50_sprockets_3.gemfile +0 -8
  27. data/gemfiles/rails51_sprockets_3.gemfile +0 -8
  28. data/gemfiles/rails52_sprockets_3.gemfile +0 -8
  29. data/gemfiles/rails70_sprockets_4.gemfile +0 -8
  30. data/js-routes.gemspec +0 -39
  31. data/package.json +0 -38
  32. data/spec/dummy/app/assets/config/manifest.js +0 -2
  33. data/spec/dummy/app/assets/javascripts/.gitkeep +0 -0
  34. data/spec/dummy/config/routes.rb +0 -55
  35. data/spec/js_routes/default_serializer_spec.rb +0 -31
  36. data/spec/js_routes/module_types/amd_spec.rb +0 -35
  37. data/spec/js_routes/module_types/cjs_spec.rb +0 -15
  38. data/spec/js_routes/module_types/dts/routes.spec.d.ts +0 -115
  39. data/spec/js_routes/module_types/dts/test.spec.ts +0 -56
  40. data/spec/js_routes/module_types/dts_spec.rb +0 -111
  41. data/spec/js_routes/module_types/esm_spec.rb +0 -45
  42. data/spec/js_routes/module_types/nil_spec.rb +0 -87
  43. data/spec/js_routes/module_types/umd_spec.rb +0 -85
  44. data/spec/js_routes/options_spec.rb +0 -508
  45. data/spec/js_routes/rails_routes_compatibility_spec.rb +0 -473
  46. data/spec/js_routes/route_specification_spec.rb +0 -37
  47. data/spec/js_routes/zzz_sprockets_spec.rb +0 -152
  48. data/spec/spec_helper.rb +0 -135
  49. data/spec/support/routes.rb +0 -81
  50. data/spec/tsconfig.json +0 -4
  51. data/tsconfig.json +0 -28
  52. data/yarn.lock +0 -2457
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6dfe30c594c24cf044d0f19342e17cd6b23857da7ec68a0bf68d8f8be9f33def
4
- data.tar.gz: 3aefa8fc04221f07996ada7c57f35b22d2ae519575a6df0e20c6d860fe6203ed
3
+ metadata.gz: f69479723e452f1b4ed09bf940b3150ad45430b5c601f966f05a082bce0a9494
4
+ data.tar.gz: bd47ceb7b1cba241262b8308e913f7d87aef6304d93d9185026e70dd4980487f
5
5
  SHA512:
6
- metadata.gz: 652fa60215a5c812e3a0cb0284870bfa63c6eeb1d249940388ade48a3f90a7209559d7cf66750e697ffc317bfcd1bec87e57fed44cad375795ead64fb1bcd254
7
- data.tar.gz: a68bdb295fb704a5ed753d0576e700668aecfe30d5ec6d425ed458d029eb084de66ff26e0789c808e655574146973db02226a1a48f2cd81fa6ebda3379b7bc8c
6
+ metadata.gz: 4f67b2ccc88195647ea7c694f935848aad52ddd9e46ac1a766df0c29b7e123a147169deb5b8207c8d3a598fcf0c0ba01f98b0d24ee30b326737200f02f2f8235
7
+ data.tar.gz: 9aad6d181099b3fdd7ada0facf1269e08669cd1181f94d3039f0e13f8bf2bc5a44172e13843fec5a8317b4c99e1eee6a2de2343e34fe6c3cddebb7a63f9608fb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
+ # Changelog
2
+
1
3
  ## master
2
4
 
5
+ ## v2.2.10
6
+
7
+ * Remove sorbet files from repo
8
+ * Clearly define files included in gem
9
+ * Fix Middleware and Middleware generator bugs [#316](https://github.com/railsware/js-routes/issue/316)
10
+ * Remove empty object linter warning on DTS module
11
+ * Generators: Add `.ts` extension when searching for main JS file of the project
12
+
13
+ ## v2.2.9
14
+
15
+ * Fix middleware error for non-modern setup.
16
+ * Added [Sorbet](https://sorbet.org/) method signatures.
17
+ * Always use DTS module type when calling JsRoutes.definitions or .definitions!. [#313](https://github.com/railsware/js-routes/issues/313)
18
+
3
19
  ## v2.2.8
4
20
 
5
21
  * Leave emoji symbols intact when encoding URI fragment [#312](https://github.com/railsware/js-routes/issues/312)
@@ -28,10 +44,10 @@
28
44
  ## v2.2.3
29
45
 
30
46
  * Fixed NIL module type namespace defintion [#297](https://github.com/railsware/js-routes/issues/297).
31
- * The patch may cause a problem with nested `namespace` option
47
+ * The patch may cause a problem with nested `namespace` option.
32
48
  * Ex. Value like `MyProject.Routes` requires to define `window.MyProject` before importing the routes file
33
49
 
34
- ## v2.2.2.
50
+ ## v2.2.2
35
51
 
36
52
  * Fix custom file path [#295](https://github.com/railsware/js-routes/issues/295)
37
53
 
@@ -156,10 +172,9 @@ See [UPGRADE TO 2.0](./VERSION_2_UPGRADE.md) for guidance.
156
172
 
157
173
  * Fixed bug when js-routes is used in envs without window.location #224
158
174
 
159
-
160
175
  ## v1.4.0
161
176
 
162
- * __breaking change!__ Implemented Routes.config() and Routes.configure instead of Routes.defaults
177
+ * Implemented Routes.config() and Routes.configure instead of Routes.defaults
163
178
 
164
179
  New methods support 4 options at the moment:
165
180
 
@@ -245,7 +260,7 @@ Routes.configure({
245
260
 
246
261
  * Support host, port and protocol inline parameters
247
262
  * Support host, port and protocol parameters given to a route explicitly
248
- * Remove all incompatibilities between actiondispatch and js-routes in handling route URLs
263
+ * Remove all incompatibilities between Actiondispatch and js-routes
249
264
 
250
265
  ## v1.1.2
251
266
 
@@ -271,10 +286,10 @@ Routes.configure({
271
286
 
272
287
  ## v1.0.0
273
288
 
274
- * Add the compact mode [#125](https://github.com/railsware/js-routes/pull/125)
275
- * Add support for host, protocol, and port configuration [#137](https://github.com/railsware/js-routes/pull/137)
276
- * Routes path specs [#135](https://github.com/railsware/js-routes/pull/135)
277
- * Support Rails 4.2 and Ruby 2.2 [#140](https://github.com/railsware/js-routes/pull/140)
289
+ * Add the compact mode [#125](https://github.com/railsware/js-routes/pull/125)
290
+ * Add support for host, protocol, and port configuration [#137](https://github.com/railsware/js-routes/pull/137)
291
+ * Routes path specs [#135](https://github.com/railsware/js-routes/pull/135)
292
+ * Support Rails 4.2 and Ruby 2.2 [#140](https://github.com/railsware/js-routes/pull/140)
278
293
 
279
294
  ## v0.9.9
280
295
 
data/Readme.md CHANGED
@@ -16,22 +16,22 @@ gem "js-routes"
16
16
 
17
17
  There are several possible ways to setup JsRoutes:
18
18
 
19
- * [Quick and easy](#quick-start) - Recommended
19
+ 1. [Quick and easy](#quick-start) - Recommended
20
20
  * Uses Rack Middleware to automatically update routes locally
21
21
  * Automatically generates routes files on javascript build
22
22
  * Works great for a simple Rails application
23
- * [Advanced Setup](#advanced-setup)
23
+ 2. [Advanced Setup](#advanced-setup)
24
24
  * Allows very custom setups
25
25
  * Automatic updates need to be customized
26
- * [Webpacker ERB Loader](#webpacker) - Legacy
26
+ 3. [Webpacker ERB Loader](#webpacker) - Legacy
27
27
  * Requires ESM module system (the default)
28
28
  * Doesn't support typescript definitions
29
- * [Sprockets](#sprockets) - Legacy
29
+ 4. [Sprockets](#sprockets) - Legacy
30
30
  * Deprecated and not recommended for modern apps
31
31
 
32
- <div id='quick-start'></div>
32
+ <div id="quick-start"></div>
33
33
 
34
- ### Quick Start
34
+ ### Quick Start
35
35
 
36
36
  Setup [Rack Middleware](https://guides.rubyonrails.org/rails_on_rack.html#action-dispatcher-middleware-stack)
37
37
  to automatically generate and maintain `routes.js` file and corresponding
@@ -77,13 +77,12 @@ Add js-routes files to `.gitignore`:
77
77
  /app/javascript/routes.d.ts
78
78
  ```
79
79
 
80
- <div id='webpacker'></div>
80
+ <div id="webpack"></div>
81
81
 
82
82
  ### Webpacker ERB loader
83
83
 
84
84
  **IMPORTANT**: the setup doesn't support IDE autocompletion with [Typescript](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html)
85
85
 
86
-
87
86
  #### Use a Generator
88
87
 
89
88
  Run a command:
@@ -133,7 +132,7 @@ Create routes file `app/javascript/routes.js.erb`:
133
132
  <%= JsRoutes.generate() %>
134
133
  ```
135
134
 
136
- Use routes wherever you need them:
135
+ Use routes wherever you need them:
137
136
 
138
137
  ``` javascript
139
138
  import {post_path} from 'routes.js.erb';
@@ -141,62 +140,78 @@ import {post_path} from 'routes.js.erb';
141
140
  alert(post_path(2));
142
141
  ```
143
142
 
144
- <div id='advanced-setup'></div>
143
+ <div id="advanced-setup"></div>
145
144
 
146
145
  ### Advanced Setup
147
146
 
148
- **IMPORTANT**: that this setup requires the JS routes file to be updates manually
149
-
150
- Routes file can be generated with a `rake` task:
147
+ In case you need multiple route files for different parts of your application, there are low level methods:
151
148
 
152
- ``` sh
153
- rake js:routes
154
- # OR for typescript support
155
- rake js:routes:typescript
149
+ ``` ruby
150
+ # Returns a routes file as a string
151
+ JsRoutes.generate(options)
152
+ # Writes routes to specific file location
153
+ JsRoutes.generate!(file_name, options)
154
+ # Writes Typescript definitions file for routes
155
+ JsRoutes.definitions!(file_name, options)
156
156
  ```
157
157
 
158
- In case you need multiple route files for different parts of your application, you have to create the files manually.
159
- If your application has an `admin` and an `application` namespace for example:
160
-
161
- **IMPORTANT**: Requires [Webpacker ERB Loader](#webpacker) setup.
158
+ They can also be used in ERB context
162
159
 
163
160
  ``` erb
164
- // app/javascript/admin/routes.js.erb
165
- <%= JsRoutes.generate(include: /admin/) %>
161
+ <script>
162
+ var AdminRoutes = <%= JsRoutes.generate(
163
+ include: /admin/, module_type: nil, namespace: nil
164
+ ) %>;
165
+ </script>
166
166
  ```
167
167
 
168
- ``` erb
169
- // app/javascript/customer/routes.js.erb
170
- <%= JsRoutes.generate(exclude: /admin/) %>
171
- ```
168
+ Routes can be returns via API:
172
169
 
173
- You can manipulate the generated helper manually by injecting ruby into javascript:
170
+ ``` ruby
171
+ class Api::RoutesController < Api::BaseController
172
+ def index
173
+ options = {
174
+ include: /\Aapi_/,
175
+ default_url_options: { format: 'json' },
176
+ }
177
+ render json: {
178
+ routes: {
179
+ source: JsRoutes.generate(options),
180
+ definitions: JsRoutes.definitions(options),
181
+ }
182
+ }
183
+ end
184
+ end
174
185
 
175
- ``` erb
176
- export const routes = <%= JsRoutes.generate(module_type: nil, namespace: nil) %>
177
186
  ```
178
187
 
179
- If you want to generate the routes files manually with custom options, you can use `JsRoutes.generate!`:
188
+ Default auto-update middleware for development
189
+ doesn't support configuration out of the box,
190
+ but it can be extended through inheritence:
180
191
 
181
192
  ``` ruby
182
- path = Rails.root.join("app/javascript")
183
-
184
- JsRoutes.generate!(
185
- "#{path}/app_routes.js", exclude: [/^admin_/, /^api_/]
186
- )
187
- JsRoutes.generate!(
188
- "#{path}/adm_routes.js", include: /^admin_/
189
- )
190
- JsRoutes.generate!(
191
- "#{path}/api_routes.js", include: /^api_/, default_url_options: {format: "json"}
192
- )
193
+ class AdvancedJsRoutesMiddleware < JsRoutes::Middleware
194
+ def regenerate
195
+ path = Rails.root.join("app/javascript")
196
+
197
+ JsRoutes.generate!(
198
+ "#{path}/app_routes.js", exclude: [/^admin_/, /^api_/]
199
+ )
200
+ JsRoutes.generate!(
201
+ "#{path}/adm_routes.js", include: /^admin_/
202
+ )
203
+ JsRoutes.generate!(
204
+ "#{path}/api_routes.js", include: /^api_/, default_url_options: {format: "json"}
205
+ )
206
+ end
207
+ end
193
208
  ```
194
209
 
195
- <div id='definitions'></div>
210
+ <div id="definitions"></div>
196
211
 
197
212
  #### Typescript Definitions
198
213
 
199
- JsRoutes has typescript support out of the box.
214
+ JsRoutes has typescript support out of the box.
200
215
 
201
216
  Restrictions:
202
217
 
@@ -208,7 +223,7 @@ More advanced setup would involve calling manually:
208
223
 
209
224
  ``` ruby
210
225
  JsRoutes.definitions! # to output to file
211
- # or
226
+ # or
212
227
  JsRoutes.definitions # to output to string
213
228
  ```
214
229
 
@@ -1,81 +1,122 @@
1
+ # typed: strict
1
2
  require "pathname"
3
+ require "js_routes/types"
2
4
 
3
5
  module JsRoutes
4
6
  class Configuration
5
- DEFAULTS = {
6
- namespace: nil,
7
- exclude: [],
8
- include: //,
9
- file: nil,
10
- prefix: -> { Rails.application.config.relative_url_root || "" },
11
- url_links: false,
12
- camel_case: false,
13
- default_url_options: {},
14
- compact: false,
15
- serializer: nil,
16
- special_options_key: "_options",
17
- application: -> { Rails.application },
18
- module_type: 'ESM',
19
- documentation: true,
20
- } #:nodoc:
21
-
22
- attr_accessor(*DEFAULTS.keys)
23
-
7
+ include JsRoutes::Types
8
+ extend T::Sig
9
+
10
+ sig { returns(T.nilable(String)) }
11
+ attr_accessor :namespace
12
+ sig { returns(Clusivity) }
13
+ attr_accessor :exclude
14
+ sig { returns(Clusivity) }
15
+ attr_accessor :include
16
+ sig { returns(FileName) }
17
+ attr_accessor :file
18
+ sig { returns(Prefix) }
19
+ attr_accessor :prefix
20
+ sig { returns(T::Boolean) }
21
+ attr_accessor :url_links
22
+ sig { returns(T::Boolean) }
23
+ attr_accessor :camel_case
24
+ sig { returns(Options) }
25
+ attr_accessor :default_url_options
26
+ sig { returns(T::Boolean) }
27
+ attr_accessor :compact
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :serializer
30
+ sig { returns(Literal) }
31
+ attr_accessor :special_options_key
32
+ sig { returns(ApplicationCaller) }
33
+ attr_accessor :application
34
+ sig { returns(T::Boolean) }
35
+ attr_accessor :documentation
36
+ sig { returns(T.nilable(String)) }
37
+ attr_accessor :module_type
38
+
39
+ sig {params(attributes: T.nilable(Options)).void }
24
40
  def initialize(attributes = nil)
25
- assign(DEFAULTS)
41
+ @namespace = nil
42
+ @exclude = T.let([], Clusivity)
43
+ @include = T.let([//], Clusivity)
44
+ @file = T.let(nil, FileName)
45
+ @prefix = T.let(-> { Rails.application.config.relative_url_root || "" }, T.untyped)
46
+ @url_links = T.let(false, T::Boolean)
47
+ @camel_case = T.let(false, T::Boolean)
48
+ @default_url_options = T.let(T.unsafe({}), Options)
49
+ @compact = T.let(false, T::Boolean)
50
+ @serializer = T.let(nil, T.nilable(String))
51
+ @special_options_key = T.let("_options", Literal)
52
+ @application = T.let(-> { Rails.application }, ApplicationCaller)
53
+ @module_type = T.let('ESM', T.nilable(String))
54
+ @documentation = T.let(true, T::Boolean)
55
+
26
56
  return unless attributes
27
57
  assign(attributes)
28
58
  end
29
59
 
30
- def assign(attributes = nil, &block)
31
- if !attributes && !block
32
- raise "Provide attributes or block"
33
- end
34
- tap(&block) if block
60
+ sig do
61
+ params(
62
+ attributes: Options,
63
+ ).returns(JsRoutes::Configuration)
64
+ end
65
+ def assign(attributes)
35
66
  if attributes
36
67
  attributes.each do |attribute, value|
37
- value = value.call if value.is_a?(Proc)
38
- send(:"#{attribute}=", value)
68
+ public_send(:"#{attribute}=", value)
39
69
  end
40
70
  end
41
71
  normalize_and_verify
42
72
  self
43
73
  end
44
74
 
75
+ sig { params(block: ConfigurationBlock).returns(T.self_type) }
76
+ def setup(&block)
77
+ tap(&block)
78
+ end
79
+
80
+ sig { params(attribute: Literal).returns(T.untyped) }
45
81
  def [](attribute)
46
- send(attribute)
82
+ public_send(attribute)
47
83
  end
48
84
 
85
+ sig { params(attributes: Options).returns(JsRoutes::Configuration) }
49
86
  def merge(attributes)
50
87
  clone.assign(attributes)
51
88
  end
52
89
 
53
- def to_hash
54
- Hash[*members.zip(values).flatten(1)].symbolize_keys
55
- end
56
-
90
+ sig {returns(T::Boolean)}
57
91
  def esm?
58
92
  module_type === 'ESM'
59
93
  end
60
94
 
95
+ sig {returns(T::Boolean)}
61
96
  def dts?
62
97
  self.module_type === 'DTS'
63
98
  end
64
99
 
100
+ sig {returns(T::Boolean)}
65
101
  def modern?
66
102
  esm? || dts?
67
103
  end
68
104
 
105
+ sig { void }
69
106
  def require_esm
70
107
  raise "ESM module type is required" unless modern?
71
108
  end
72
109
 
110
+ sig { returns(String) }
73
111
  def source_file
74
112
  File.dirname(__FILE__) + "/../" + default_file_name
75
113
  end
76
114
 
115
+ sig { returns(Pathname) }
77
116
  def output_file
78
- webpacker_dir = defined?(Webpacker) ? Webpacker.config.source_path : pathname('app', 'javascript')
117
+ webpacker_dir = defined?(::Webpacker) ?
118
+ T.unsafe(::Webpacker).config.source_path :
119
+ pathname('app', 'javascript')
79
120
  sprockets_dir = pathname('app','assets','javascripts')
80
121
  file_name = file || default_file_name
81
122
  sprockets_file = sprockets_dir.join(file_name)
@@ -85,23 +126,28 @@ module JsRoutes
85
126
 
86
127
  protected
87
128
 
129
+ sig { void }
88
130
  def normalize_and_verify
89
131
  normalize
90
132
  verify
91
133
  end
92
134
 
135
+ sig { params(parts: String).returns(Pathname) }
93
136
  def pathname(*parts)
94
- Pathname.new(File.join(*parts))
137
+ Pathname.new(File.join(*T.unsafe(parts)))
95
138
  end
96
139
 
140
+ sig { returns(String) }
97
141
  def default_file_name
98
142
  dts? ? "routes.d.ts" : "routes.js"
99
143
  end
100
144
 
145
+ sig {void}
101
146
  def normalize
102
147
  self.module_type = module_type&.upcase || 'NIL'
103
148
  end
104
149
 
150
+ sig { void }
105
151
  def verify
106
152
  if module_type != 'NIL' && namespace
107
153
  raise "JsRoutes namespace option can only be used if module_type is nil"
@@ -1,3 +1,5 @@
1
+ require "rails/engine"
2
+
1
3
  module JsRoutes
2
4
  class SprocketsExtension
3
5
  def initialize(filename, &block)
@@ -3,14 +3,33 @@ require "rails/generators"
3
3
 
4
4
  class JsRoutes::Generators::Base < Rails::Generators::Base
5
5
 
6
+ def self.inherited(subclass)
7
+ super
8
+ subclass.source_root(File.expand_path(__FILE__ + "/../../../templates"))
9
+ end
10
+
6
11
  protected
7
12
 
8
13
  def application_js_path
9
14
  [
15
+ "app/javascript/packs/application.ts",
10
16
  "app/javascript/packs/application.js",
17
+ "app/javascript/controllers/application.ts",
11
18
  "app/javascript/controllers/application.js",
12
19
  ].find do |path|
13
20
  File.exist?(Rails.root.join(path))
14
21
  end
15
22
  end
23
+
24
+ def depends_on?(gem_name)
25
+ !!Bundler.load.gems.find {|g| g.name == gem_name}
26
+ end
27
+
28
+ def depends_on_js_bundling?
29
+ depends_on?('jsbundling-rails')
30
+ end
31
+
32
+ def depends_on_webpacker?
33
+ depends_on?('webpacker')
34
+ end
16
35
  end
@@ -2,8 +2,6 @@ require "js_routes/generators/base"
2
2
 
3
3
  class JsRoutes::Generators::Middleware < JsRoutes::Generators::Base
4
4
 
5
- source_root File.expand_path(__FILE__ + "/../../../templates")
6
-
7
5
  def create_middleware
8
6
  copy_file "initializer.rb", "config/initializers/js_routes.rb"
9
7
  inject_into_file "config/environments/development.rb", middleware_content, before: /^end\n\z/
@@ -13,15 +11,15 @@ class JsRoutes::Generators::Middleware < JsRoutes::Generators::Base
13
11
  inject_into_file path, pack_content
14
12
  end
15
13
  JsRoutes.generate!
16
- JsRoutes.definitions!
14
+ JsRoutes.definitions! if JsRoutes.configuration.modern?
17
15
  end
18
16
 
19
17
  protected
20
18
 
21
19
  def pack_content
22
20
  <<-JS
23
- import * as Routes from '../routes';
24
- window.Routes = Routes;
21
+ import {root_path} from '../routes';
22
+ alert(`JsRoutes installed.\\nYour root path is ${root_path()}`)
25
23
  JS
26
24
  end
27
25
 
@@ -35,11 +33,11 @@ window.Routes = Routes;
35
33
  end
36
34
 
37
35
  def rakefile_content
38
- enhanced_task = Bundler.load.gems.find {|g| g.name = 'jsbundling-rails'} ?
39
- "javascript:build" : "assets:precompile"
36
+ enhanced_task = depends_on_js_bundling? ? "javascript:build" : "assets:precompile"
37
+ dependency_task = JsRoutes.configuration.modern? ? "js:routes:typescript" : 'js:routes'
40
38
  <<-RB
41
39
  # Update js-routes file before javascript build
42
- task "#{enhanced_task}" => "js:routes:typescript"
40
+ task "#{enhanced_task}" => "#{dependency_task}"
43
41
  RB
44
42
  end
45
43
 
@@ -2,8 +2,6 @@ require "rails/generators"
2
2
 
3
3
  class JsRoutes::Generators::Webpacker < Rails::Generators::Base
4
4
 
5
- source_root File.expand_path(__FILE__ + "/../../../templates")
6
-
7
5
  def create_webpack
8
6
  copy_file "initializer.rb", "config/initializers/js_routes.rb"
9
7
  copy_file "erb.js", "config/webpack/loaders/erb.js"
@@ -21,7 +19,7 @@ class JsRoutes::Generators::Webpacker < Rails::Generators::Base
21
19
  def pack_content
22
20
  <<-JS
23
21
  import * as Routes from 'routes.js.erb';
24
- window.Routes = Routes;
22
+ alert(Routes.root_path())
25
23
  JS
26
24
  end
27
25