js-routes 2.2.9 → 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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -1
  3. data/lib/js_routes/generators/base.rb +6 -1
  4. data/lib/js_routes/generators/middleware.rb +3 -2
  5. data/lib/js_routes/instance.rb +8 -0
  6. data/lib/js_routes/middleware.rb +4 -2
  7. data/lib/js_routes/route.rb +4 -2
  8. data/lib/js_routes/types.rb +10 -0
  9. data/lib/js_routes/version.rb +1 -1
  10. data/lib/js_routes.rb +5 -0
  11. metadata +8 -100
  12. data/.document +0 -5
  13. data/.eslintrc.js +0 -15
  14. data/.github/workflows/ci.yml +0 -36
  15. data/.gitignore +0 -65
  16. data/.nvmrc +0 -1
  17. data/.rspec +0 -1
  18. data/Appraisals +0 -17
  19. data/Gemfile +0 -9
  20. data/Rakefile +0 -37
  21. data/VERSION_2_UPGRADE.md +0 -66
  22. data/bin/tapioca +0 -27
  23. data/gemfiles/rails50_sprockets_3.gemfile +0 -8
  24. data/gemfiles/rails51_sprockets_3.gemfile +0 -8
  25. data/gemfiles/rails52_sprockets_3.gemfile +0 -8
  26. data/gemfiles/rails70_sprockets_4.gemfile +0 -8
  27. data/js-routes.gemspec +0 -42
  28. data/package.json +0 -38
  29. data/sorbet/config +0 -4
  30. data/sorbet/rbi/annotations/.gitattributes +0 -1
  31. data/sorbet/rbi/annotations/actionpack.rbi +0 -428
  32. data/sorbet/rbi/annotations/actionview.rbi +0 -75
  33. data/sorbet/rbi/annotations/activesupport.rbi +0 -421
  34. data/sorbet/rbi/annotations/railties.rbi +0 -61
  35. data/sorbet/rbi/gems/.gitattributes +0 -1
  36. data/sorbet/rbi/gems/actionpack@7.0.4.1.rbi +0 -303
  37. data/sorbet/rbi/gems/actionview@7.0.4.1.rbi +0 -8
  38. data/sorbet/rbi/gems/activesupport@7.0.4.1.rbi +0 -16424
  39. data/sorbet/rbi/gems/appraisal@2.4.1.rbi +0 -584
  40. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -8
  41. data/sorbet/rbi/gems/bump@0.10.0.rbi +0 -168
  42. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -3606
  43. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3426
  44. data/sorbet/rbi/gems/concurrent-ruby@1.2.0.rbi +0 -11570
  45. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -8
  46. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  47. data/sorbet/rbi/gems/erubi@1.12.0.rbi +0 -145
  48. data/sorbet/rbi/gems/i18n@1.12.0.rbi +0 -2296
  49. data/sorbet/rbi/gems/libv8-node@16.10.0.0.rbi +0 -8
  50. data/sorbet/rbi/gems/loofah@2.19.1.rbi +0 -8
  51. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  52. data/sorbet/rbi/gems/mini_racer@0.6.3.rbi +0 -224
  53. data/sorbet/rbi/gems/minitest@5.17.0.rbi +0 -1457
  54. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -158
  55. data/sorbet/rbi/gems/nokogiri@1.14.0.rbi +0 -8
  56. data/sorbet/rbi/gems/parallel@1.24.0.rbi +0 -280
  57. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +0 -951
  58. data/sorbet/rbi/gems/prism@0.24.0.rbi +0 -29744
  59. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +0 -1150
  60. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10075
  61. data/sorbet/rbi/gems/racc@1.6.2.rbi +0 -150
  62. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +0 -8
  63. data/sorbet/rbi/gems/rack@2.2.6.2.rbi +0 -5585
  64. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +0 -8
  65. data/sorbet/rbi/gems/rails-html-sanitizer@1.5.0.rbi +0 -8
  66. data/sorbet/rbi/gems/railties@7.0.4.1.rbi +0 -1959
  67. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -3072
  68. data/sorbet/rbi/gems/rbi@0.1.9.rbi +0 -3006
  69. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +0 -10868
  70. data/sorbet/rbi/gems/rspec-expectations@3.12.2.rbi +0 -8100
  71. data/sorbet/rbi/gems/rspec-mocks@3.12.3.rbi +0 -5299
  72. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +0 -1611
  73. data/sorbet/rbi/gems/rspec@3.12.0.rbi +0 -82
  74. data/sorbet/rbi/gems/spoom@1.2.4.rbi +0 -3777
  75. data/sorbet/rbi/gems/sprockets-rails@3.4.2.rbi +0 -14
  76. data/sorbet/rbi/gems/sprockets@4.2.0.rbi +0 -8
  77. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +0 -23136
  78. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +0 -3510
  79. data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -3956
  80. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +0 -5914
  81. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +0 -428
  82. data/sorbet/rbi/gems/yard@0.9.34.rbi +0 -18332
  83. data/sorbet/rbi/gems/zeitwerk@2.6.8.rbi +0 -8
  84. data/sorbet/rbi/todo.rbi +0 -31
  85. data/sorbet/tapioca/config.yml +0 -13
  86. data/sorbet/tapioca/require.rb +0 -4
  87. data/spec/dummy/app/assets/config/manifest.js +0 -2
  88. data/spec/dummy/app/assets/javascripts/.gitkeep +0 -0
  89. data/spec/dummy/config/routes.rb +0 -55
  90. data/spec/js_routes/default_serializer_spec.rb +0 -31
  91. data/spec/js_routes/module_types/amd_spec.rb +0 -35
  92. data/spec/js_routes/module_types/cjs_spec.rb +0 -15
  93. data/spec/js_routes/module_types/dts/routes.spec.d.ts +0 -115
  94. data/spec/js_routes/module_types/dts/test.spec.ts +0 -56
  95. data/spec/js_routes/module_types/dts_spec.rb +0 -126
  96. data/spec/js_routes/module_types/esm_spec.rb +0 -45
  97. data/spec/js_routes/module_types/nil_spec.rb +0 -87
  98. data/spec/js_routes/module_types/umd_spec.rb +0 -85
  99. data/spec/js_routes/options_spec.rb +0 -508
  100. data/spec/js_routes/rails_routes_compatibility_spec.rb +0 -473
  101. data/spec/js_routes/route_specification_spec.rb +0 -37
  102. data/spec/js_routes/zzz_sprockets_spec.rb +0 -152
  103. data/spec/spec_helper.rb +0 -135
  104. data/spec/support/routes.rb +0 -81
  105. data/spec/tsconfig.json +0 -4
  106. data/tsconfig.json +0 -28
  107. data/yarn.lock +0 -2457
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d890e17e32f816311de89a16506fca4b8ff905ea773c7a8d198343e0270eb50a
4
- data.tar.gz: 934c79a8b93e7129778e07789f93ac90d4183bd39ea578551f4ea9ca6cab22d2
3
+ metadata.gz: f69479723e452f1b4ed09bf940b3150ad45430b5c601f966f05a082bce0a9494
4
+ data.tar.gz: bd47ceb7b1cba241262b8308e913f7d87aef6304d93d9185026e70dd4980487f
5
5
  SHA512:
6
- metadata.gz: 6adcfbfefbbf13c8f46198f9bf2ca47efdac35aa8d28a8b17be7b8af65d321a3ba0da30dd26e40c4a329c359f1a02b865adb74a1d5e3d024b61bae7fd6f8d9e0
7
- data.tar.gz: 9cc86f32f79975aace5a264ef94d7bbe1afb41a7a141c738969c762479789fa74b1fb752139320f8ddd7c25b2eb164fe14cbcc3c6eb1a40046549538c3a6eb33
6
+ metadata.gz: 4f67b2ccc88195647ea7c694f935848aad52ddd9e46ac1a766df0c29b7e123a147169deb5b8207c8d3a598fcf0c0ba01f98b0d24ee30b326737200f02f2f8235
7
+ data.tar.gz: 9aad6d181099b3fdd7ada0facf1269e08669cd1181f94d3039f0e13f8bf2bc5a44172e13843fec5a8317b4c99e1eee6a2de2343e34fe6c3cddebb7a63f9608fb
data/CHANGELOG.md CHANGED
@@ -4,10 +4,15 @@
4
4
 
5
5
  ## v2.2.10
6
6
 
7
- * Fix middleware error for non-modern setup.
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
8
12
 
9
13
  ## v2.2.9
10
14
 
15
+ * Fix middleware error for non-modern setup.
11
16
  * Added [Sorbet](https://sorbet.org/) method signatures.
12
17
  * Always use DTS module type when calling JsRoutes.definitions or .definitions!. [#313](https://github.com/railsware/js-routes/issues/313)
13
18
 
@@ -3,13 +3,18 @@ require "rails/generators"
3
3
 
4
4
  class JsRoutes::Generators::Base < Rails::Generators::Base
5
5
 
6
- source_root File.expand_path(__FILE__ + "/../../../templates")
6
+ def self.inherited(subclass)
7
+ super
8
+ subclass.source_root(File.expand_path(__FILE__ + "/../../../templates"))
9
+ end
7
10
 
8
11
  protected
9
12
 
10
13
  def application_js_path
11
14
  [
15
+ "app/javascript/packs/application.ts",
12
16
  "app/javascript/packs/application.js",
17
+ "app/javascript/controllers/application.ts",
13
18
  "app/javascript/controllers/application.js",
14
19
  ].find do |path|
15
20
  File.exist?(Rails.root.join(path))
@@ -11,7 +11,7 @@ class JsRoutes::Generators::Middleware < JsRoutes::Generators::Base
11
11
  inject_into_file path, pack_content
12
12
  end
13
13
  JsRoutes.generate!
14
- JsRoutes.definitions!
14
+ JsRoutes.definitions! if JsRoutes.configuration.modern?
15
15
  end
16
16
 
17
17
  protected
@@ -34,9 +34,10 @@ alert(`JsRoutes installed.\\nYour root path is ${root_path()}`)
34
34
 
35
35
  def rakefile_content
36
36
  enhanced_task = depends_on_js_bundling? ? "javascript:build" : "assets:precompile"
37
+ dependency_task = JsRoutes.configuration.modern? ? "js:routes:typescript" : 'js:routes'
37
38
  <<-RB
38
39
  # Update js-routes file before javascript build
39
- task "#{enhanced_task}" => "js:routes:typescript"
40
+ task "#{enhanced_task}" => "#{dependency_task}"
40
41
  RB
41
42
  end
42
43
 
@@ -2,6 +2,7 @@
2
2
  require "js_routes/configuration"
3
3
  require "js_routes/route"
4
4
  require "js_routes/types"
5
+ require 'fileutils'
5
6
 
6
7
  module JsRoutes
7
8
  class Instance # :nodoc:
@@ -57,6 +58,13 @@ module JsRoutes
57
58
  end
58
59
  end
59
60
 
61
+ sig { void }
62
+ def remove!
63
+ path = Rails.root.join(@configuration.output_file)
64
+ FileUtils.rm_rf(path)
65
+ FileUtils.rm_rf(path.sub(%r{\.js\z}, '.d.ts'))
66
+ end
67
+
60
68
  protected
61
69
 
62
70
  sig { returns(T::Hash[String, String]) }
@@ -9,16 +9,18 @@ module JsRoutes
9
9
  # https://github.com/fnando/i18n-js/blob/main/lib/i18n/js/middleware.rb
10
10
  class Middleware
11
11
  include JsRoutes::Types
12
+ include RackApp
13
+
12
14
  extend T::Sig
13
15
 
14
- sig { params(app: T.proc.params(a0: StringHash).returns(UntypedArray)).void }
16
+ sig { params(app: T.untyped).void }
15
17
  def initialize(app)
16
18
  @app = app
17
19
  @routes_file = T.let(Rails.root.join("config/routes.rb"), Pathname)
18
20
  @mtime = T.let(nil, T.nilable(Time))
19
21
  end
20
22
 
21
- sig { params(env: StringHash).returns(UntypedArray) }
23
+ sig { override.params(env: StringHash).returns(UntypedArray) }
22
24
  def call(env)
23
25
  update_js_routes
24
26
  @app.call(env)
@@ -65,13 +65,15 @@ module JsRoutes
65
65
 
66
66
  sig { returns(String) }
67
67
  def definition_body
68
+ options_type = optional_parts_type ? "#{optional_parts_type} & RouteOptions" : "RouteOptions"
68
69
  args = required_parts.map{|p| "#{apply_case(p)}: RequiredRouteParameter"}
69
- args << "options?: #{optional_parts_type} & RouteOptions"
70
+ args << "options?: #{options_type}"
70
71
  "((\n#{args.join(",\n").indent(2)}\n) => string) & RouteHelperExtras"
71
72
  end
72
73
 
73
- sig { returns(String) }
74
+ sig { returns(T.nilable(String)) }
74
75
  def optional_parts_type
76
+ return nil if optional_parts.empty?
75
77
  @optional_parts_type ||= T.let(
76
78
  "{" + optional_parts.map {|p| "#{p}?: OptionalRouteParameter"}.join(', ') + "}",
77
79
  T.nilable(String)
@@ -24,5 +24,15 @@ module JsRoutes
24
24
  Prefix = T.type_alias do
25
25
  T.any(T.proc.returns(String), String, NilClass)
26
26
  end
27
+
28
+ module RackApp
29
+ extend T::Sig
30
+ extend T::Helpers
31
+
32
+ interface!
33
+
34
+ sig { abstract.params(input: StringHash).returns(UntypedArray) }
35
+ def call(input); end
36
+ end
27
37
  end
28
38
  end
@@ -1,4 +1,4 @@
1
1
  # typed: strict
2
2
  module JsRoutes
3
- VERSION = "2.2.9"
3
+ VERSION = "2.2.10"
4
4
  end
data/lib/js_routes.rb CHANGED
@@ -39,6 +39,11 @@ module JsRoutes
39
39
  Instance.new(file: file_name, **opts).generate!
40
40
  end
41
41
 
42
+ sig { params(file_name: FileName, opts: T.untyped).void }
43
+ def remove!(file_name = configuration.file, **opts)
44
+ Instance.new(file: file_name, **opts).remove!
45
+ end
46
+
42
47
  sig { params(opts: T.untyped).returns(String) }
43
48
  def definitions(**opts)
44
49
  generate(**opts, module_type: 'DTS',)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.9
4
+ version: 2.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-02 00:00:00.000000000 Z
11
+ date: 2024-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -150,34 +150,17 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.4.0
153
- description: Generates javascript file that defines all Rails named routes as javascript
154
- helpers
153
+ description: Exposes all Rails Routes URL helpers as javascript module
155
154
  email: agresso@gmail.com
156
155
  executables: []
157
156
  extensions: []
158
157
  extra_rdoc_files:
159
158
  - LICENSE.txt
160
159
  files:
161
- - ".document"
162
- - ".eslintrc.js"
163
- - ".github/workflows/ci.yml"
164
- - ".gitignore"
165
- - ".nvmrc"
166
- - ".rspec"
167
- - Appraisals
168
160
  - CHANGELOG.md
169
- - Gemfile
170
161
  - LICENSE.txt
171
- - Rakefile
172
162
  - Readme.md
173
- - VERSION_2_UPGRADE.md
174
163
  - app/assets/javascripts/js-routes.js.erb
175
- - bin/tapioca
176
- - gemfiles/rails50_sprockets_3.gemfile
177
- - gemfiles/rails51_sprockets_3.gemfile
178
- - gemfiles/rails52_sprockets_3.gemfile
179
- - gemfiles/rails70_sprockets_4.gemfile
180
- - js-routes.gemspec
181
164
  - lib/js-routes.rb
182
165
  - lib/js_routes.rb
183
166
  - lib/js_routes/configuration.rb
@@ -197,90 +180,15 @@ files:
197
180
  - lib/templates/erb.js
198
181
  - lib/templates/initializer.rb
199
182
  - lib/templates/routes.js.erb
200
- - package.json
201
- - sorbet/config
202
- - sorbet/rbi/annotations/.gitattributes
203
- - sorbet/rbi/annotations/actionpack.rbi
204
- - sorbet/rbi/annotations/actionview.rbi
205
- - sorbet/rbi/annotations/activesupport.rbi
206
- - sorbet/rbi/annotations/railties.rbi
207
- - sorbet/rbi/gems/.gitattributes
208
- - sorbet/rbi/gems/actionpack@7.0.4.1.rbi
209
- - sorbet/rbi/gems/actionview@7.0.4.1.rbi
210
- - sorbet/rbi/gems/activesupport@7.0.4.1.rbi
211
- - sorbet/rbi/gems/appraisal@2.4.1.rbi
212
- - sorbet/rbi/gems/builder@3.2.4.rbi
213
- - sorbet/rbi/gems/bump@0.10.0.rbi
214
- - sorbet/rbi/gems/byebug@11.1.3.rbi
215
- - sorbet/rbi/gems/coderay@1.1.3.rbi
216
- - sorbet/rbi/gems/concurrent-ruby@1.2.0.rbi
217
- - sorbet/rbi/gems/crass@1.0.6.rbi
218
- - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
219
- - sorbet/rbi/gems/erubi@1.12.0.rbi
220
- - sorbet/rbi/gems/i18n@1.12.0.rbi
221
- - sorbet/rbi/gems/libv8-node@16.10.0.0.rbi
222
- - sorbet/rbi/gems/loofah@2.19.1.rbi
223
- - sorbet/rbi/gems/method_source@1.0.0.rbi
224
- - sorbet/rbi/gems/mini_racer@0.6.3.rbi
225
- - sorbet/rbi/gems/minitest@5.17.0.rbi
226
- - sorbet/rbi/gems/netrc@0.11.0.rbi
227
- - sorbet/rbi/gems/nokogiri@1.14.0.rbi
228
- - sorbet/rbi/gems/parallel@1.24.0.rbi
229
- - sorbet/rbi/gems/prettier_print@1.2.1.rbi
230
- - sorbet/rbi/gems/prism@0.24.0.rbi
231
- - sorbet/rbi/gems/pry-byebug@3.10.1.rbi
232
- - sorbet/rbi/gems/pry@0.14.2.rbi
233
- - sorbet/rbi/gems/racc@1.6.2.rbi
234
- - sorbet/rbi/gems/rack-test@2.0.2.rbi
235
- - sorbet/rbi/gems/rack@2.2.6.2.rbi
236
- - sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi
237
- - sorbet/rbi/gems/rails-html-sanitizer@1.5.0.rbi
238
- - sorbet/rbi/gems/railties@7.0.4.1.rbi
239
- - sorbet/rbi/gems/rake@13.0.6.rbi
240
- - sorbet/rbi/gems/rbi@0.1.9.rbi
241
- - sorbet/rbi/gems/rspec-core@3.12.0.rbi
242
- - sorbet/rbi/gems/rspec-expectations@3.12.2.rbi
243
- - sorbet/rbi/gems/rspec-mocks@3.12.3.rbi
244
- - sorbet/rbi/gems/rspec-support@3.12.0.rbi
245
- - sorbet/rbi/gems/rspec@3.12.0.rbi
246
- - sorbet/rbi/gems/spoom@1.2.4.rbi
247
- - sorbet/rbi/gems/sprockets-rails@3.4.2.rbi
248
- - sorbet/rbi/gems/sprockets@4.2.0.rbi
249
- - sorbet/rbi/gems/syntax_tree@6.2.0.rbi
250
- - sorbet/rbi/gems/tapioca@0.12.0.rbi
251
- - sorbet/rbi/gems/thor@1.2.1.rbi
252
- - sorbet/rbi/gems/tzinfo@2.0.5.rbi
253
- - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
254
- - sorbet/rbi/gems/yard@0.9.34.rbi
255
- - sorbet/rbi/gems/zeitwerk@2.6.8.rbi
256
- - sorbet/rbi/todo.rbi
257
- - sorbet/tapioca/config.yml
258
- - sorbet/tapioca/require.rb
259
- - spec/dummy/app/assets/config/manifest.js
260
- - spec/dummy/app/assets/javascripts/.gitkeep
261
- - spec/dummy/config/routes.rb
262
- - spec/js_routes/default_serializer_spec.rb
263
- - spec/js_routes/module_types/amd_spec.rb
264
- - spec/js_routes/module_types/cjs_spec.rb
265
- - spec/js_routes/module_types/dts/routes.spec.d.ts
266
- - spec/js_routes/module_types/dts/test.spec.ts
267
- - spec/js_routes/module_types/dts_spec.rb
268
- - spec/js_routes/module_types/esm_spec.rb
269
- - spec/js_routes/module_types/nil_spec.rb
270
- - spec/js_routes/module_types/umd_spec.rb
271
- - spec/js_routes/options_spec.rb
272
- - spec/js_routes/rails_routes_compatibility_spec.rb
273
- - spec/js_routes/route_specification_spec.rb
274
- - spec/js_routes/zzz_sprockets_spec.rb
275
- - spec/spec_helper.rb
276
- - spec/support/routes.rb
277
- - spec/tsconfig.json
278
- - tsconfig.json
279
- - yarn.lock
280
183
  homepage: http://github.com/railsware/js-routes
281
184
  licenses:
282
185
  - MIT
283
186
  metadata:
187
+ bug_tracker_uri: https://github.com/railsware/js-routes/issues
188
+ changelog_uri: https://github.com/railsware/js-routes/blob/v2.2.10/CHANGELOG.md
189
+ documentation_uri: https://github.com/railsware/js-routes
190
+ source_code_uri: https://github.com/railsware/js-routes/tree/v2.2.10/activerecord
191
+ rubygems_mfa_required: 'true'
284
192
  github_repo: ssh://github.com/railsware/js-routes
285
193
  post_install_message:
286
194
  rdoc_options: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.eslintrc.js DELETED
@@ -1,15 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- extends: [
4
- 'eslint:recommended',
5
- 'plugin:@typescript-eslint/eslint-recommended',
6
- 'plugin:@typescript-eslint/recommended',
7
- 'prettier',
8
- ],
9
- parser: '@typescript-eslint/parser',
10
- plugins: ['@typescript-eslint'],
11
- rules: {
12
- '@typescript-eslint/ban-types': 'off',
13
- '@typescript-eslint/no-explicit-any': 'off'
14
- },
15
- };
@@ -1,36 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
- pull_request:
8
-
9
- jobs:
10
- build:
11
- runs-on: ubuntu-latest
12
- strategy:
13
- matrix:
14
- ruby: ["2.7"]
15
- gemfile:
16
- - gemfiles/rails50_sprockets_3.gemfile
17
- - gemfiles/rails51_sprockets_3.gemfile
18
- - gemfiles/rails52_sprockets_3.gemfile
19
- - gemfiles/rails70_sprockets_4.gemfile
20
-
21
- env:
22
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
23
- steps:
24
- - uses: actions/checkout@v2
25
- - uses: ruby/setup-ruby@v1
26
- with:
27
- ruby-version: ${{ matrix.ruby }}
28
- - uses: actions/setup-node@v3
29
- with:
30
- node-version: "16"
31
- - name: install dependencies
32
- run: |
33
- bundle install --jobs 3 --retry 3
34
- yarn install
35
- - name: test
36
- run: bundle exec rake spec
data/.gitignore DELETED
@@ -1,65 +0,0 @@
1
- # rcov generated
2
- coverage
3
-
4
- # rdoc generated
5
- rdoc
6
-
7
- # yard generated
8
- doc
9
- .yardoc
10
- log
11
-
12
- # bundler
13
- .bundle
14
-
15
- # jeweler generated
16
- pkg
17
- tmp
18
-
19
- node_modules
20
-
21
- # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
22
- #
23
- # * Create a file at ~/.gitignore
24
- # * Include files you want ignored
25
- # * Run: git config --global core.excludesfile ~/.gitignore
26
- #
27
- # After doing this, these files will be ignored in all your git projects,
28
- # saving you from having to 'pollute' every project you touch with them
29
- #
30
- # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
31
- #
32
- # For MacOS:
33
- #
34
- #.DS_Store
35
-
36
- # For TextMate
37
- #*.tmproj
38
- #tmtags
39
-
40
- # For emacs:
41
- #*~
42
- #\#*
43
- #.\#*
44
-
45
- # For vim:
46
- #*.swp
47
-
48
- # For redcar:
49
- #.redcar
50
-
51
- # For rubinius:
52
- #*.rbc
53
- .rvmrc
54
- .ruby-version
55
-
56
- Gemfile.lock
57
- gemfiles/*.lock
58
-
59
- .DS_Store
60
-
61
- /spec/dummy/app/assets/javascripts/routes.js
62
- /spec/dummy/logs
63
- /spec/dummy/tmp
64
- node_modules
65
-
data/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 14
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/Appraisals DELETED
@@ -1,17 +0,0 @@
1
- def define_appraisal(rails, version, sprockets)
2
- sprockets.each do |sprocket|
3
- appraise "#{rails}-sprockets-#{sprocket}" do
4
- gem "railties", "~> #{version}"
5
- gem "sprockets", "~> #{sprocket}.0"
6
- end
7
- end
8
- end
9
-
10
- [
11
- [:rails50, '5.0.5', [3]],
12
- [:rails51, '5.1.3', [3]],
13
- [:rails52, '5.2.3', [3]],
14
- [:rails70, '7.0.3.1', [4]]
15
- ].each do |name, version, sprockets|
16
- define_appraisal(name, version, sprockets)
17
- end
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in js-routes.gemspec
4
- gemspec
5
-
6
- group :development do
7
- gem 'sorbet', '>= 0.5.11518'
8
- gem 'tapioca'
9
- end
data/Rakefile DELETED
@@ -1,37 +0,0 @@
1
- # encoding: utf-8
2
- require 'rubygems'
3
- require 'bundler'
4
- begin
5
- Bundler.setup(:default, :development)
6
- rescue Bundler::BundlerError => e
7
- $stderr.puts e.message
8
- $stderr.puts "Run `bundle install` to install missing gems"
9
- exit e.status_code
10
- end
11
- require 'bundler/gem_tasks'
12
- require 'rspec/core'
13
- require 'rspec/core/rake_task'
14
- require 'appraisal'
15
- require 'rails/version'
16
- if Rails.version < "6.1"
17
- load "rails/tasks/routes.rake"
18
- end
19
-
20
- RSpec::Core::RakeTask.new(:spec)
21
-
22
- task :test_all => :appraisal # test all rails
23
-
24
- task :default => :spec
25
-
26
-
27
- namespace :spec do
28
- desc "Print all routes defined in test env"
29
- task :routes do
30
- require './spec/spec_helper'
31
- require 'action_dispatch/routing/inspector'
32
- draw_routes
33
- all_routes = Rails.application.routes.routes
34
- inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
35
- puts inspector.format(ActionDispatch::Routing::ConsoleFormatter::Sheet.new)
36
- end
37
- end
data/VERSION_2_UPGRADE.md DELETED
@@ -1,66 +0,0 @@
1
- ## Version 2.0 upgrade notes
2
-
3
- ### Using ESM module by default
4
-
5
- New version of JsRoutes doesn't try to guess your javascript environment module system because JS has generated a ton of legacy module systems in the past.
6
- [ESM+Webpacker](/Readme.md#webpacker) upgrade is recommended.
7
-
8
- However, if you don't want to follow that pass, specify `module_type` configuration option instead based on module system available in your JS environment.
9
- Here are supported values:
10
-
11
- * CJS
12
- * UMD
13
- * AMD
14
- * ESM
15
- * nil
16
-
17
- [Explaination Article](https://dev.to/iggredible/what-the-heck-are-cjs-amd-umd-and-esm-ikm)
18
-
19
- If you don't want to use any JS module system and make routes available via a **global variable**, specify `nil` as a `module_type` and use `namespace` option:
20
-
21
- ``` ruby
22
- JsRoutes.setup do |config|
23
- config.module_type = nil
24
- config.namespace = "Routes"
25
- end
26
- ```
27
-
28
- ### JSDoc comment
29
-
30
- New version of js-routes generates function comment in the [JSDoc](https://jsdoc.app) format.
31
- If you have any problems with that, you can disable it like this:
32
-
33
-
34
- ``` ruby
35
- JsRoutes.setup do |config|
36
- config.documentation = false
37
- end
38
- ```
39
-
40
- ### `required_params` renamed
41
-
42
- In case you are using `required_params` property, it is now renamed and converted to a method:
43
-
44
- ``` javascript
45
- // Old style
46
- Routes.post_path.required_params // => ['id']
47
- // New style
48
- Routes.post_path.requiredParams() // => ['id']
49
- ```
50
-
51
- ### ParameterMissing error rework
52
-
53
- `ParameterMissing` is renamed to `ParametersMissing` error and now list all missing parameters instead of just first encountered in its message. Missing parameters are now available via `ParametersMissing#keys` property.
54
-
55
- ``` javascript
56
- try {
57
- return Routes.inbox_path();
58
- } catch(error) {
59
- if (error.name === 'ParametersMissing') {
60
- console.warn(`Missing route keys ${error.keys.join(', ')}. Ignoring.`);
61
- return "#";
62
- } else {
63
- throw error;
64
- }
65
- }
66
- ```
data/bin/tapioca DELETED
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'tapioca' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
-
13
- bundle_binstub = File.expand_path("bundle", __dir__)
14
-
15
- if File.file?(bundle_binstub)
16
- if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
- load(bundle_binstub)
18
- else
19
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21
- end
22
- end
23
-
24
- require "rubygems"
25
- require "bundler/setup"
26
-
27
- load Gem.bin_path("tapioca", "tapioca")
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "railties", "~> 5.0.5"
6
- gem "sprockets", "~> 3.0"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "railties", "~> 5.1.3"
6
- gem "sprockets", "~> 3.0"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "railties", "~> 5.2.3"
6
- gem "sprockets", "~> 3.0"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "railties", "~> 7.0.3.1"
6
- gem "sprockets", "~> 4.0"
7
-
8
- gemspec path: "../"