js-routes 1.4.1 → 2.1.0

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 (50) hide show
  1. checksums.yaml +5 -5
  2. data/.eslintrc.js +15 -0
  3. data/.gitignore +5 -0
  4. data/.nvmrc +1 -0
  5. data/.travis.yml +37 -30
  6. data/Appraisals +16 -13
  7. data/CHANGELOG.md +95 -0
  8. data/Rakefile +6 -2
  9. data/Readme.md +220 -88
  10. data/VERSION_2_UPGRADE.md +66 -0
  11. data/app/assets/javascripts/js-routes.js.erb +1 -1
  12. data/gemfiles/{rails40.gemfile → rails40_sprockets_2.gemfile} +1 -1
  13. data/gemfiles/{rails40_sprockets3.gemfile → rails40_sprockets_3.gemfile} +0 -0
  14. data/gemfiles/{rails41.gemfile → rails41_sprockets_2.gemfile} +1 -1
  15. data/gemfiles/{rails41_sprockets3.gemfile → rails41_sprockets_3.gemfile} +0 -0
  16. data/gemfiles/{rails32.gemfile → rails42_sprockets_2.gemfile} +2 -2
  17. data/gemfiles/{rails42_sprockets3.gemfile → rails42_sprockets_3.gemfile} +1 -1
  18. data/gemfiles/{rails50_sprockets3.gemfile → rails50_sprockets_3.gemfile} +1 -1
  19. data/gemfiles/rails51_sprockets_3.gemfile +8 -0
  20. data/gemfiles/rails52_sprockets_3.gemfile +8 -0
  21. data/js-routes.gemspec +9 -6
  22. data/lib/js_routes/engine.rb +6 -18
  23. data/lib/js_routes/version.rb +1 -1
  24. data/lib/js_routes.rb +329 -171
  25. data/lib/routes.d.ts +79 -0
  26. data/lib/routes.js +499 -485
  27. data/lib/routes.ts +732 -0
  28. data/lib/tasks/js_routes.rake +8 -2
  29. data/package.json +37 -0
  30. data/spec/dummy/app/assets/config/manifest.js +2 -0
  31. data/spec/js_routes/default_serializer_spec.rb +19 -3
  32. data/spec/js_routes/{amd_compatibility_spec.rb → module_types/amd_spec.rb} +1 -9
  33. data/spec/js_routes/module_types/cjs_spec.rb +15 -0
  34. data/spec/js_routes/module_types/dts/routes.spec.d.ts +114 -0
  35. data/spec/js_routes/module_types/dts/test.spec.ts +56 -0
  36. data/spec/js_routes/module_types/dts_spec.rb +111 -0
  37. data/spec/js_routes/module_types/esm_spec.rb +45 -0
  38. data/spec/js_routes/{generated_javascript_spec.rb → module_types/umd_spec.rb} +33 -27
  39. data/spec/js_routes/options_spec.rb +92 -50
  40. data/spec/js_routes/rails_routes_compatibility_spec.rb +107 -45
  41. data/spec/js_routes/zzz_last_post_rails_init_spec.rb +19 -8
  42. data/spec/spec_helper.rb +45 -42
  43. data/spec/support/routes.rb +19 -14
  44. data/spec/tsconfig.json +4 -0
  45. data/tsconfig.json +28 -0
  46. data/yarn.lock +2145 -0
  47. metadata +47 -34
  48. data/gemfiles/rails42.gemfile +0 -8
  49. data/gemfiles/rails50.gemfile +0 -8
  50. data/lib/routes.js.coffee +0 -386
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 50875d687cd46f55c34450970c84faddd4ff970c
4
- data.tar.gz: cb98a4d6b4feb6a3cb60631c22dc8ac4e7638c10
2
+ SHA256:
3
+ metadata.gz: 242f329ab92abe8be4a2fa3790f72a3f161a6c2355b2392eae484a36a91d3a24
4
+ data.tar.gz: 120e5191eccfe3a8978c89ecb690a4f93a62279b249c58bc84b9273fe3e900c7
5
5
  SHA512:
6
- metadata.gz: c49eefb28fc5ad6edb1378b4718397c7996b6f9f7b356a53336c8becfa4d162af71a3dc4606a2fc2a04f958e4b2eec70adbdbcad642e130f662842422edd1357
7
- data.tar.gz: 49f4bb3f3988f61e7853d7a392b902212715bd3f537cd9bbf3c51b72f8781ee3c9a9d5d9ded33989be35e2269c948f9274caf0f59bc54bb21f207fce33814a7a
6
+ metadata.gz: e1998fd3c98dff227905bfcd8a09be8bb6901d3da7293b60d1a6f11c3a2627c623372324a13010cbe425eb7b93781fa64db042c08e7b4123d4a50ec8bd8814b2
7
+ data.tar.gz: 5395c808f148bd39a99de0ce748cbb3a57c27620f048764bfcf6a455ac6ce2bbc43e282f4c660ba019f8d4b5df39a316728bb673d56b2667aecb667dde82d91b
data/.eslintrc.js ADDED
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ root: true,
3
+ extends: [
4
+ 'eslint:recommended',
5
+ 'plugin:@typescript-eslint/eslint-recommended',
6
+ 'plugin:@typescript-eslint/recommended',
7
+ 'prettier/@typescript-eslint',
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
+ };
data/.gitignore CHANGED
@@ -14,6 +14,9 @@ log
14
14
 
15
15
  # jeweler generated
16
16
  pkg
17
+ tmp
18
+
19
+ node_modules
17
20
 
18
21
  # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
19
22
  #
@@ -58,3 +61,5 @@ gemfiles/*.lock
58
61
  /spec/dummy/app/assets/javascripts/routes.js
59
62
  /spec/dummy/logs
60
63
  /spec/dummy/tmp
64
+ node_modules
65
+
data/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 14
data/.travis.yml CHANGED
@@ -5,27 +5,27 @@ before_install:
5
5
  - gem install bundler # need for jruby and ruby-head
6
6
 
7
7
  rvm:
8
- - 2.0
9
- - 2.1
10
- - 2.2.5
11
- - 2.3.1
12
8
  - 2.4.1
13
- - jruby-19mode
9
+ - 2.5.3
10
+ - 2.6.0
14
11
  - ruby-head
15
- - jruby-head
12
+ - jruby
16
13
 
17
14
  gemfile:
18
- - gemfiles/rails32.gemfile
19
- - gemfiles/rails40.gemfile
20
- - gemfiles/rails40_sprockets3.gemfile
21
- - gemfiles/rails41.gemfile
22
- - gemfiles/rails41_sprockets3.gemfile
23
- - gemfiles/rails42.gemfile
24
- - gemfiles/rails42_sprockets3.gemfile
25
- - gemfiles/rails50.gemfile
26
- - gemfiles/rails50_sprockets3.gemfile
15
+ - gemfiles/rails40_sprockets_2.gemfile
16
+ - gemfiles/rails40_sprockets_3.gemfile
17
+ - gemfiles/rails41_sprockets_2.gemfile
18
+ - gemfiles/rails41_sprockets_3.gemfile
19
+ - gemfiles/rails42_sprockets_2.gemfile
20
+ - gemfiles/rails42_sprockets_3.gemfile
21
+ - gemfiles/rails50_sprockets_3.gemfile
22
+ - gemfiles/rails51_sprockets_3.gemfile
23
+ - gemfiles/rails52_sprockets_3.gemfile
24
+ env:
25
+ TRAVIS_CI: true
27
26
 
28
27
  sudo: false
28
+ dist: xenial
29
29
 
30
30
  notifications:
31
31
  email:
@@ -36,25 +36,32 @@ branches:
36
36
  - master
37
37
 
38
38
  matrix:
39
+ fast_finish: true
39
40
  allow_failures:
40
- - rvm: jruby-19mode
41
41
  - rvm: ruby-head
42
- - rvm: jruby-head
43
- - gemfile: gemfiles/rails50.gemfile
42
+ - rvm: jruby
44
43
  exclude:
45
- - rvm: 2.0
46
- gemfile: gemfiles/rails50.gemfile
47
- - rvm: 2.0
48
- gemfile: gemfiles/rails50_sprockets3.gemfile
49
- - rvm: 2.1
50
- gemfile: gemfiles/rails50.gemfile
51
- - rvm: 2.1
52
- gemfile: gemfiles/rails50_sprockets3.gemfile
44
+ - rvm: 2.6.0
45
+ gemfile: gemfiles/rails40_sprockets_2.gemfile # Segmentation fault
46
+ - rvm: 2.6.0
47
+ gemfile: gemfiles/rails40_sprockets_3.gemfile # Segmentation fault
48
+ - rvm: 2.6.0
49
+ gemfile: gemfiles/rails41_sprockets_2.gemfile # Segmentation fault
50
+ - rvm: 2.6.0
51
+ gemfile: gemfiles/rails41_sprockets_3.gemfile # Segmentation fault
52
+ - rvm: 2.5.3
53
+ gemfile: gemfiles/rails40_sprockets_2.gemfile # Segmentation fault
54
+ - rvm: 2.5.3
55
+ gemfile: gemfiles/rails40_sprockets_3.gemfile # Segmentation fault
56
+ - rvm: 2.5.3
57
+ gemfile: gemfiles/rails41_sprockets_2.gemfile # Segmentation fault
58
+ - rvm: 2.5.3
59
+ gemfile: gemfiles/rails41_sprockets_3.gemfile # Segmentation fault
53
60
  - rvm: 2.4.1
54
- gemfile: gemfiles/rails40.gemfile # Segmentation fault (core dumped) for 2.4
61
+ gemfile: gemfiles/rails40_sprockets_2.gemfile # Segmentation fault
55
62
  - rvm: 2.4.1
56
- gemfile: gemfiles/rails40_sprockets3.gemfile # Segmentation fault (core dumped) for 2.4
63
+ gemfile: gemfiles/rails40_sprockets_3.gemfile # Segmentation fault
57
64
  - rvm: 2.4.1
58
- gemfile: gemfiles/rails41.gemfile # Segmentation fault (core dumped) for 2.4
65
+ gemfile: gemfiles/rails41_sprockets_2.gemfile # Segmentation fault
59
66
  - rvm: 2.4.1
60
- gemfile: gemfiles/rails41_sprockets3.gemfile # Segmentation fault (core dumped) for 2.4
67
+ gemfile: gemfiles/rails41_sprockets_3.gemfile # Segmentation fault
data/Appraisals CHANGED
@@ -1,16 +1,19 @@
1
- appraise "rails32" do
2
- gem "railties", "~> 3.2.22.5"
3
- gem 'tzinfo'
4
- end
5
-
6
- {rails40: '4.0.13', rails41: '4.1.16', rails42: '4.2.8', rails50: '5.0.2'}.each do |rails, version|
7
- appraise "#{rails}" do
8
- gem "railties", "~> #{version}"
9
- gem "sprockets", "< 3"
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
10
7
  end
8
+ end
11
9
 
12
- appraise "#{rails}-sprockets3" do
13
- gem "railties", "~> #{version}"
14
- gem "sprockets", "~> 3.0"
15
- end
10
+ [
11
+ [:rails40, '4.0.13', [2, 3]],
12
+ [:rails41, '4.1.16', [2, 3]],
13
+ [:rails42, '4.2.9', [2, 3]],
14
+ [:rails50, '5.0.5', [3]],
15
+ [:rails51, '5.1.3', [3]],
16
+ [:rails52, '5.2.3', [3]]
17
+ ].each do |name, version, sprockets|
18
+ define_appraisal(name, version, sprockets)
16
19
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,100 @@
1
1
  ## master
2
2
 
3
+ ## v2.1.0
4
+
5
+ * Support typescript defintions file aka `routes.d.ts`. See [Readme.md](./Readme.md#definitions) for more information.
6
+
7
+ ## v2.0.8
8
+
9
+ * Forbid usage of `namespace` option if `module_type` is not `nil`. [#281](https://github.com/railsware/js-routes/issues/281).
10
+
11
+ ## v2.0.7
12
+
13
+ * Remove source map annotation from JS file. Fixes [#277](https://github.com/railsware/js-routes/issues/277)
14
+ * Generated file is not minified, so it is better to use app side bundler/compressor for source maps
15
+
16
+
17
+ ## v2.0.6
18
+
19
+ * Disable `namespace` option default for all envs [#278](https://github.com/railsware/js-routes/issues/278)
20
+
21
+ ## v2.0.5
22
+
23
+ * Fixed backward compatibility issue [#276](https://github.com/railsware/js-routes/issues/276)
24
+
25
+ ## v2.0.4
26
+
27
+ * Fixed backward compatibility issue [#275](https://github.com/railsware/js-routes/issues/275)
28
+
29
+ ## v2.0.3
30
+
31
+ * Fixed backward compatibility issue [#275](https://github.com/railsware/js-routes/issues/275)
32
+
33
+ ## v2.0.2
34
+
35
+ * Fixed backward compatibility issue [#274](https://github.com/railsware/js-routes/issues/274)
36
+
37
+ ## v2.0.1
38
+
39
+ * Fixed backward compatibility issue [#272](https://github.com/railsware/js-routes/issues/272)
40
+
41
+ ## v2.0.0
42
+
43
+ Version 2.0 has some breaking changes.
44
+ See [UPGRADE TO 2.0](./VERSION_2_UPGRADE.md) for guidance.
45
+
46
+ * `module_type` option support
47
+ * `documentation` option spport
48
+ * Migrated implementation to typescript
49
+ * ESM tree shaking support
50
+ * Support camel case `toParam` version of `to_param` property
51
+
52
+ ## v1.4.14
53
+
54
+ * Fix compatibility with UMD modules #237 [Comment](https://github.com/railsware/js-routes/issues/237#issuecomment-752754679)
55
+
56
+ ## v1.4.13
57
+
58
+ * Improve compatibility with node environment #269.
59
+ * Change default file location configuration to Webpacker if both Webpacker and Sprockets are loaded
60
+
61
+ ## v1.4.11
62
+
63
+ * Use app/javascript/routes.js as a default file location if app/javascript directory exists
64
+ * Add `default` export for better experience when used as es6 module
65
+
66
+ ## v1.4.10
67
+
68
+ * Require engine only when sprockets is loaded #257.
69
+
70
+ ## v1.4.9
71
+
72
+ * Allow to specify null namespace and receive routes as an object without assigning it anywhere #247
73
+
74
+ ## v1.4.7
75
+
76
+ * Fix a LocalJumpError on secondary initialization of the app #248
77
+
78
+ ## v1.4.6
79
+
80
+ * Fix regression of #244 in #243
81
+
82
+ ## v1.4.5
83
+
84
+ * Fix escaping inside route parameters and globbing #244
85
+
86
+ ## v1.4.4
87
+
88
+ * More informative stack trace for ParameterMissing error #235
89
+
90
+ ## v1.4.3
91
+
92
+ * Proper implementation of the :subdomain option in routes generation
93
+
94
+ ## v1.4.2
95
+
96
+ * Added JsRoutes namespace to Engine #230
97
+
3
98
  ## v1.4.1
4
99
 
5
100
  * Fixed bug when js-routes is used in envs without window.location #224
data/Rakefile CHANGED
@@ -12,7 +12,10 @@ require 'bundler/gem_tasks'
12
12
  require 'rspec/core'
13
13
  require 'rspec/core/rake_task'
14
14
  require 'appraisal'
15
- load "rails/tasks/routes.rake"
15
+ require 'rails/version'
16
+ if Rails.version < "6.1"
17
+ load "rails/tasks/routes.rake"
18
+ end
16
19
 
17
20
  RSpec::Core::RakeTask.new(:spec)
18
21
 
@@ -22,12 +25,13 @@ task :default => :spec
22
25
 
23
26
 
24
27
  namespace :spec do
28
+ desc "Print all routes defined in test env"
25
29
  task :routes do
26
30
  require './spec/spec_helper'
27
31
  require 'action_dispatch/routing/inspector'
28
32
  draw_routes
29
33
  all_routes = Rails.application.routes.routes
30
34
  inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
31
- puts inspector.format(ActionDispatch::Routing::ConsoleFormatter.new, ENV['CONTROLLER'])
35
+ puts inspector.format(ActionDispatch::Routing::ConsoleFormatter::Sheet.new)
32
36
  end
33
37
  end