js_dependency 0.3.14 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 249f9142ce332c3874696fb62d0478365ed719caea8088c75b4059ade79931cb
4
- data.tar.gz: cf44ea94425033c0905d29f496c65d0bbf32c45d7fc8d3681ad1d5a66e9762d0
3
+ metadata.gz: 16849080f31654121c34449373ebff1848e5529586ce48f0ceb42169efb91652
4
+ data.tar.gz: 4430ca0ea3d689f829bb9dd5ebda28d43b1594979acbe977fe67a1fb8dd2f35e
5
5
  SHA512:
6
- metadata.gz: a4427662cc2db7567b4bb041416aea5b7b5d60f16a7c112e215670de211c20b4457265f95d087647bc934d96a3f5fa1052e7078c610f056fb0dbf0525c6cc0d9
7
- data.tar.gz: 2ee5a1db44106a777b7b583204db51fcc37315635101a995bf79110cc99a3e05c0fb1434c2e9a6c4becbd7615237facd0e9ed9b53ca1522d98a85c07bd490302
6
+ metadata.gz: a68498b0b19fc9210d3e5b9a5b1bf311b4953c4dc11514af91ebb4c3e1b235e11c68468db643021b1bbbe2189417e5e4fe1d442561ca5f34873d456bd924cc7b
7
+ data.tar.gz: 2a0b1b81acd03a8acf0153219f622887ff262a806c636eb5e73db489744c686a227791bdbae01b4a9a9dbea74a66d469d0e5bc852427d733da42d463d7a0b9b0
@@ -12,3 +12,5 @@ alias_paths:
12
12
  excludes:
13
13
  - excludedWord1
14
14
  - excludedWord2
15
+ exclude_output_names:
16
+ - pages
data/.rubocop_todo.yml CHANGED
@@ -1,20 +1,20 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2022-08-21 04:15:24 UTC using RuboCop version 1.35.0.
3
+ # on 2022-08-21 08:22:13 UTC using RuboCop version 1.35.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 2
9
+ # Offense count: 3
10
10
  # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
11
11
  Metrics/AbcSize:
12
- Max: 31
12
+ Max: 32
13
13
 
14
14
  # Offense count: 1
15
15
  # Configuration parameters: CountComments, CountAsOne.
16
16
  Metrics/ClassLength:
17
- Max: 118
17
+ Max: 120
18
18
 
19
19
  # Offense count: 2
20
20
  # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
@@ -24,12 +24,12 @@ Metrics/CyclomaticComplexity:
24
24
  # Offense count: 10
25
25
  # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
26
26
  Metrics/MethodLength:
27
- Max: 19
27
+ Max: 22
28
28
 
29
29
  # Offense count: 4
30
30
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
31
31
  Metrics/ParameterLists:
32
- Max: 9
32
+ Max: 10
33
33
 
34
34
  # Offense count: 2
35
35
  # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
@@ -37,6 +37,11 @@ Metrics/PerceivedComplexity:
37
37
  Max: 15
38
38
 
39
39
  # Offense count: 1
40
+ # Configuration parameters: CountAsOne.
41
+ RSpec/ExampleLength:
42
+ Max: 6
43
+
44
+ # Offense count: 2
40
45
  # This cop supports safe autocorrection (--autocorrect).
41
46
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
42
47
  # URISchemes: http, https
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.3.14] - 2022-08-14
3
+ ## [0.4.0] - 2024-03-31
4
+
5
+ - Breaking change: Support only Ruby 3.0 or later. [#34](https://github.com/junara/js_dependency/pull/34)
6
+
7
+ - Add support Vue script setup and lang. [#35](https://github.com/junara/js_dependency/pull/35) [#36](https://github.com/junara/js_dependency/pull/36)
8
+ - `<script setup>` and `<script lang="ts">` are supported.
9
+
10
+ - Fix some typos. [#33](https://github.com/junara/js_dependency/pull/33)
11
+
12
+ ## [0.3.15] - 2022-08-21
13
+
14
+ - Add exclude_output_names option for export_markdown_report.
15
+
16
+ ## [0.3.14] - 2022-08-21
4
17
 
5
18
  - Add export_markdown_report cli. This will export the markdown report to a file for GitHub comment.
6
19
 
@@ -27,7 +40,7 @@
27
40
 
28
41
  ## [0.3.8] - 2022-08-11
29
42
 
30
- - `.js_dependecy.yaml` is arrowed for configuration file name.
43
+ - `.js_dependency.yaml` is arrowed for configuration file name.
31
44
  - Refactor codes.
32
45
  - Add test codes.
33
46
 
data/Gemfile CHANGED
@@ -11,6 +11,15 @@ gem "rspec", "~> 3.0"
11
11
 
12
12
  gem "codecov", require: false, group: "test"
13
13
  gem "debug", ">= 1.0.0"
14
+ gem "guard-rspec", require: false
14
15
  gem "rubocop", "~> 1.21"
15
16
  gem "simplecov", require: false, group: :test
16
17
  gem "yarn"
18
+
19
+ gem "rspec-parameterized", "~> 1.0"
20
+
21
+ gem "rubocop-performance", "~> 1.21"
22
+
23
+ gem "rubocop-rake", "~> 0.6.0"
24
+
25
+ gem "rubocop-rspec", "~> 2.28"
data/Gemfile.lock CHANGED
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- js_dependency (0.3.14)
5
- pathname
4
+ js_dependency (0.4.0)
6
5
  thor
7
6
  yaml
8
7
 
@@ -10,87 +9,144 @@ GEM
10
9
  remote: https://rubygems.org/
11
10
  specs:
12
11
  ast (2.4.2)
13
- binding_ninja (0.2.3)
12
+ binding_of_caller (1.0.1)
13
+ debug_inspector (>= 1.2.0)
14
14
  codecov (0.6.0)
15
15
  simplecov (>= 0.15, < 0.22)
16
16
  coderay (1.1.3)
17
- debug (1.6.2)
18
- irb (>= 1.3.6)
19
- reline (>= 0.3.1)
20
- diff-lcs (1.5.0)
17
+ debug (1.9.2)
18
+ irb (~> 1.10)
19
+ reline (>= 0.3.8)
20
+ debug_inspector (1.2.0)
21
+ diff-lcs (1.5.1)
21
22
  docile (1.4.0)
22
- io-console (0.5.11)
23
- irb (1.4.1)
24
- reline (>= 0.3.0)
25
- json (2.6.2)
26
- parallel (1.22.1)
27
- parser (3.1.2.1)
23
+ ffi (1.16.3)
24
+ formatador (1.1.0)
25
+ guard (2.18.1)
26
+ formatador (>= 0.2.4)
27
+ listen (>= 2.7, < 4.0)
28
+ lumberjack (>= 1.0.12, < 2.0)
29
+ nenv (~> 0.1)
30
+ notiffany (~> 0.0)
31
+ pry (>= 0.13.0)
32
+ shellany (~> 0.0)
33
+ thor (>= 0.18.1)
34
+ guard-compat (1.2.1)
35
+ guard-rspec (4.7.3)
36
+ guard (~> 2.1)
37
+ guard-compat (~> 1.1)
38
+ rspec (>= 2.99.0, < 4.0)
39
+ io-console (0.7.2)
40
+ irb (1.12.0)
41
+ rdoc
42
+ reline (>= 0.4.2)
43
+ json (2.7.1)
44
+ language_server-protocol (3.17.0.3)
45
+ listen (3.9.0)
46
+ rb-fsevent (~> 0.10, >= 0.10.3)
47
+ rb-inotify (~> 0.9, >= 0.9.10)
48
+ lumberjack (1.2.10)
49
+ method_source (1.0.0)
50
+ nenv (0.3.0)
51
+ notiffany (0.1.3)
52
+ nenv (~> 0.1)
53
+ shellany (~> 0.0)
54
+ parallel (1.24.0)
55
+ parser (3.3.0.5)
28
56
  ast (~> 2.4.1)
57
+ racc
29
58
  parslet (2.0.0)
30
- pathname (0.2.0)
31
59
  proc_to_ast (0.1.0)
32
60
  coderay
33
61
  parser
34
62
  unparser
35
- rack (2.2.4)
63
+ pry (0.14.2)
64
+ coderay (~> 1.1)
65
+ method_source (~> 1.0)
66
+ psych (5.1.2)
67
+ stringio
68
+ racc (1.7.3)
69
+ rack (3.0.10)
36
70
  rainbow (3.1.1)
37
- rake (13.0.6)
38
- regexp_parser (2.5.0)
39
- reline (0.3.1)
71
+ rake (13.1.0)
72
+ rb-fsevent (0.11.2)
73
+ rb-inotify (0.10.1)
74
+ ffi (~> 1.0)
75
+ rdoc (6.6.3.1)
76
+ psych (>= 4.0.0)
77
+ regexp_parser (2.9.0)
78
+ reline (0.5.0)
40
79
  io-console (~> 0.5)
41
- rexml (3.2.5)
42
- rspec (3.11.0)
43
- rspec-core (~> 3.11.0)
44
- rspec-expectations (~> 3.11.0)
45
- rspec-mocks (~> 3.11.0)
46
- rspec-core (3.11.0)
47
- rspec-support (~> 3.11.0)
48
- rspec-expectations (3.11.0)
80
+ rexml (3.2.6)
81
+ rspec (3.13.0)
82
+ rspec-core (~> 3.13.0)
83
+ rspec-expectations (~> 3.13.0)
84
+ rspec-mocks (~> 3.13.0)
85
+ rspec-core (3.13.0)
86
+ rspec-support (~> 3.13.0)
87
+ rspec-expectations (3.13.0)
49
88
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.11.0)
51
- rspec-mocks (3.11.1)
89
+ rspec-support (~> 3.13.0)
90
+ rspec-mocks (3.13.0)
52
91
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.11.0)
54
- rspec-parameterized (0.5.2)
55
- binding_ninja (>= 0.2.3)
92
+ rspec-support (~> 3.13.0)
93
+ rspec-parameterized (1.0.0)
94
+ rspec-parameterized-core (< 2)
95
+ rspec-parameterized-table_syntax (< 2)
96
+ rspec-parameterized-core (1.0.0)
56
97
  parser
57
98
  proc_to_ast
58
99
  rspec (>= 2.13, < 4)
59
100
  unparser
60
- rspec-support (3.11.0)
61
- rubocop (1.35.0)
101
+ rspec-parameterized-table_syntax (1.0.1)
102
+ binding_of_caller
103
+ rspec-parameterized-core (< 2)
104
+ rspec-support (3.13.1)
105
+ rubocop (1.62.1)
62
106
  json (~> 2.3)
107
+ language_server-protocol (>= 3.17.0)
63
108
  parallel (~> 1.10)
64
- parser (>= 3.1.2.1)
109
+ parser (>= 3.3.0.2)
65
110
  rainbow (>= 2.2.2, < 4.0)
66
111
  regexp_parser (>= 1.8, < 3.0)
67
112
  rexml (>= 3.2.5, < 4.0)
68
- rubocop-ast (>= 1.20.1, < 2.0)
113
+ rubocop-ast (>= 1.31.1, < 2.0)
69
114
  ruby-progressbar (~> 1.7)
70
- unicode-display_width (>= 1.4.0, < 3.0)
71
- rubocop-ast (1.21.0)
72
- parser (>= 3.1.1.0)
73
- rubocop-performance (1.14.3)
74
- rubocop (>= 1.7.0, < 2.0)
75
- rubocop-ast (>= 0.4.0)
115
+ unicode-display_width (>= 2.4.0, < 3.0)
116
+ rubocop-ast (1.31.2)
117
+ parser (>= 3.3.0.4)
118
+ rubocop-capybara (2.20.0)
119
+ rubocop (~> 1.41)
120
+ rubocop-factory_bot (2.25.1)
121
+ rubocop (~> 1.41)
122
+ rubocop-performance (1.21.0)
123
+ rubocop (>= 1.48.1, < 2.0)
124
+ rubocop-ast (>= 1.31.1, < 2.0)
76
125
  rubocop-rake (0.6.0)
77
126
  rubocop (~> 1.0)
78
- rubocop-rspec (2.12.1)
79
- rubocop (~> 1.31)
80
- ruby-progressbar (1.11.0)
127
+ rubocop-rspec (2.28.0)
128
+ rubocop (~> 1.40)
129
+ rubocop-capybara (~> 2.17)
130
+ rubocop-factory_bot (~> 2.22)
131
+ rubocop-rspec_rails (~> 2.28)
132
+ rubocop-rspec_rails (2.28.1)
133
+ rubocop (~> 1.40)
134
+ ruby-progressbar (1.13.0)
135
+ shellany (0.0.1)
81
136
  simplecov (0.21.2)
82
137
  docile (~> 1.1)
83
138
  simplecov-html (~> 0.11)
84
139
  simplecov_json_formatter (~> 0.1)
85
140
  simplecov-html (0.12.3)
86
141
  simplecov_json_formatter (0.1.4)
87
- thor (1.2.1)
142
+ stringio (3.1.0)
143
+ thor (1.3.1)
88
144
  trollop (2.9.10)
89
- unicode-display_width (2.2.0)
90
- unparser (0.6.5)
145
+ unicode-display_width (2.5.0)
146
+ unparser (0.6.13)
91
147
  diff-lcs (~> 1.3)
92
- parser (>= 3.1.0)
93
- yaml (0.2.0)
148
+ parser (>= 3.3.0)
149
+ yaml (0.3.0)
94
150
  yarn (0.1.1)
95
151
  parslet (>= 1.2)
96
152
  rack (>= 1.3)
@@ -98,21 +154,23 @@ GEM
98
154
 
99
155
  PLATFORMS
100
156
  arm64-darwin-21
157
+ arm64-darwin-23
101
158
  x86_64-linux
102
159
 
103
160
  DEPENDENCIES
104
161
  codecov
105
162
  debug (>= 1.0.0)
163
+ guard-rspec
106
164
  js_dependency!
107
165
  rake (~> 13.0)
108
166
  rspec (~> 3.0)
109
- rspec-parameterized
167
+ rspec-parameterized (~> 1.0)
110
168
  rubocop (~> 1.21)
111
- rubocop-performance
112
- rubocop-rake
113
- rubocop-rspec
169
+ rubocop-performance (~> 1.21)
170
+ rubocop-rake (~> 0.6.0)
171
+ rubocop-rspec (~> 2.28)
114
172
  simplecov
115
173
  yarn
116
174
 
117
175
  BUNDLED WITH
118
- 2.3.16
176
+ 2.5.3
data/Guardfile ADDED
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ guard :rspec, cmd: "bundle exec rspec" do
4
+ require "guard/rspec/dsl"
5
+ dsl = Guard::RSpec::Dsl.new(self)
6
+
7
+ # Feel free to open issues for suggestions and improvements
8
+
9
+ # RSpec files
10
+ rspec = dsl.rspec
11
+ watch(rspec.spec_helper) { rspec.spec_dir }
12
+ watch(rspec.spec_support) { rspec.spec_dir }
13
+ watch(rspec.spec_files)
14
+
15
+ # Ruby files
16
+ ruby = dsl.ruby
17
+ dsl.watch_spec_files_for(ruby.lib_files)
18
+ end
data/README.md CHANGED
@@ -91,9 +91,11 @@ js_dependency -s ./src -t ./src/App.vue -o ./mermaid.txt -c 2 -p 2 -n 1 -e exclu
91
91
  #### Export Markdown report
92
92
 
93
93
  ```shell
94
- js_dependency export_markdown_report -s ./src -t ./src/App.vue -c 2 -p 2 -n 1 -a @:./pages --identifier your_uniq_identifier_for_upsert_report
94
+ js_dependency export_markdown_report -s ./src -t ./src/App.vue -c 2 -p 2 -n 1 -a @:./pages --identifier your_uniq_identifier_for_upsert_report --exclude_output_names pages
95
95
  ```
96
96
 
97
+ ``--exclude_output_names`` option is used to exclude outputs from orphan list by name matching. In following results, include pages file is excluded from orphan.
98
+
97
99
  Like this:
98
100
 
99
101
  ```
@@ -101,10 +103,9 @@ Like this:
101
103
 
102
104
  ### Orphan modules
103
105
 
104
- 3 orphaned modules.
106
+ 2 orphaned modules.
105
107
 
106
108
  * ``components/sub/Exclude.vue``
107
- * ``pages/app.js``
108
109
  * ``utils/calculation.js``
109
110
 
110
111
  ### Module dependency
@@ -129,10 +130,9 @@ style utils_calculation.js stroke:#f9f,stroke-width:4px
129
130
 
130
131
  ### Orphan modules
131
132
 
132
- 3 orphaned modules.
133
+ 2 orphaned modules.
133
134
 
134
135
  * ``components/sub/Exclude.vue``
135
- * ``pages/app.js``
136
136
  * ``utils/calculation.js``
137
137
 
138
138
  ### Module dependency
@@ -212,6 +212,13 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
212
212
 
213
213
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
214
214
 
215
+
216
+ ### Using guard-rspec
217
+
218
+ ```shell
219
+ bundle exec guard
220
+ ```
221
+
215
222
  ## Contributing
216
223
 
217
224
  Bug reports and pull requests are welcome on GitHub at https://github.com/junara/js_dependency. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/js_dependency/blob/main/CODE_OF_CONDUCT.md).
@@ -30,15 +30,8 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "pathname"
34
33
  spec.add_dependency "thor"
35
34
  spec.add_dependency "yaml"
36
- spec.add_development_dependency "rspec"
37
- spec.add_development_dependency "rspec-parameterized"
38
- spec.add_development_dependency "rubocop"
39
- spec.add_development_dependency "rubocop-performance"
40
- spec.add_development_dependency "rubocop-rake"
41
- spec.add_development_dependency "rubocop-rspec"
42
35
 
43
36
  # For more information and examples about making a new gem, check out our
44
37
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -121,7 +121,7 @@ module JsDependency
121
121
  method_option :alias_paths, type: :hash, aliases: "-a", desc: "Alias paths by hash format."
122
122
  method_option :file_config, type: :string, aliases: "-f", desc: "Configuration file path."
123
123
  method_option :identifier, type: :string, desc: "Embed id in markdown."
124
-
124
+ method_option :exclude_output_names, type: :array, desc: "Exclude output names"
125
125
  def export_markdown_report
126
126
  args = JsDependency::CliUtils::Yaml.new(path: options[:file_config]).args
127
127
  config = JsDependency::CliUtils::Config.new(options, args)
@@ -133,7 +133,8 @@ module JsDependency
133
133
  alias_paths: config.alias_paths,
134
134
  name_level: config.name_level,
135
135
  excludes: config.excludes,
136
- identifier: config.identifier
136
+ identifier: config.identifier,
137
+ exclude_output_names: config.exclude_output_names
137
138
  )
138
139
  end
139
140
  end
@@ -4,7 +4,7 @@ module JsDependency
4
4
  module CliUtils
5
5
  class Config
6
6
  attr_reader :src_path, :target_paths, :target_path, :child_analyze_level, :parent_analyze_level, :output_path,
7
- :alias_paths, :name_level, :excludes, :identifier
7
+ :alias_paths, :name_level, :excludes, :identifier, :exclude_output_names
8
8
 
9
9
  # @param [Hash] options
10
10
  # @param [Hash] args
@@ -21,6 +21,7 @@ module JsDependency
21
21
  @name_level = options[:name_level] || args[:name_level] || 1
22
22
  @excludes = calc_excludes(options[:excludes], args[:excludes])
23
23
  @identifier = options[:identifier] || nil
24
+ @exclude_output_names = options[:exclude_output_names] || []
24
25
  end
25
26
 
26
27
  private
@@ -86,7 +87,7 @@ module JsDependency
86
87
  return nil if obj.nil?
87
88
  return obj if obj.is_a?(String)
88
89
 
89
- return obj.first if obj.is_a?(Array)
90
+ obj.first if obj.is_a?(Array)
90
91
  end
91
92
  end
92
93
  end
@@ -15,7 +15,15 @@ module JsDependency
15
15
  list << Regexp.last_match(1)
16
16
  end
17
17
 
18
- scripts += str.gsub(%r{<script.+src=".+">(.+)</script>}m).with_object([]) do |_, list|
18
+ scripts += str.gsub(%r{<script.+src=["'].+["']>(.+)</script>}m).with_object([]) do |_, list|
19
+ list << Regexp.last_match(1)
20
+ end
21
+
22
+ scripts += str.gsub(%r{<script.+setup>(.+)</script>}m).with_object([]) do |_, list|
23
+ list << Regexp.last_match(1)
24
+ end
25
+
26
+ scripts += str.gsub(%r{<script.+lang=["'][tj]s["']>(.+)</script>}m).with_object([]) do |_, list|
19
27
  list << Regexp.last_match(1)
20
28
  end
21
29
 
@@ -46,5 +46,14 @@ module JsDependency
46
46
  pathname.to_s
47
47
  end
48
48
  end
49
+
50
+ # @param [Array<String>] paths
51
+ # @return [Array<String>]
52
+ def self.filter_js_files(paths)
53
+ return paths if paths.nil? || paths.empty?
54
+
55
+ permitted_extnames = %w[.js .vue .jsx]
56
+ paths.filter { |path| permitted_extnames.include?(Pathname.new(path).extname) }
57
+ end
49
58
  end
50
59
  end
@@ -10,13 +10,13 @@ module JsDependency
10
10
  # @param [nil, String] identifier
11
11
  def initialize(orphan_list, mermaid_markdown, identifier: nil)
12
12
  @orphan_list = orphan_list || []
13
- @mermaid_markdown = mermaid_markdown || ""
13
+ @mermaid_markdown = mermaid_markdown
14
14
  @identifier = identifier || "js_dependency_report_identifier"
15
15
  end
16
16
 
17
17
  # @return [String]
18
18
  def export
19
- markdown = <<~"MAKRDOWNTEXT"
19
+ markdown = <<~MAKRDOWNTEXT
20
20
  ## JsDependency Reports
21
21
 
22
22
  ### Orphan modules
@@ -30,17 +30,22 @@ module JsDependency
30
30
  markdown += "#{@orphan_list.map { |str| "* ``#{str}``" }.join("\n")}\n\n"
31
31
  end
32
32
 
33
- markdown += <<~"MAKRDOWNTEXT"
34
- ### Module dependency
33
+ markdown += "### Module dependency\n\n"
35
34
 
36
- ```mermaid
37
- MAKRDOWNTEXT
38
- markdown += @mermaid_markdown.to_s
35
+ if @mermaid_markdown.nil? || @mermaid_markdown.empty?
36
+ markdown += ".vue or .js or .jsx files are not changed.\n\n"
37
+ else
38
+ markdown += <<~MAKRDOWNTEXT
39
+ ```mermaid
40
+ MAKRDOWNTEXT
39
41
 
40
- markdown += <<~"MAKRDOWNTEXT"
41
- ```
42
+ markdown += @mermaid_markdown.to_s
42
43
 
43
- MAKRDOWNTEXT
44
+ markdown += <<~MAKRDOWNTEXT
45
+ ```
46
+
47
+ MAKRDOWNTEXT
48
+ end
44
49
 
45
50
  markdown += "<!-- #{@identifier} -->"
46
51
  markdown
@@ -33,7 +33,7 @@ module JsDependency
33
33
  paths = parent_paths(target_path)
34
34
  paths += dir_parent_paths(target_path) if target_path.include?("index.js")
35
35
 
36
- paths.size.zero?
36
+ paths.empty?
37
37
  end
38
38
 
39
39
  # @param [String] path
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsDependency
4
- VERSION = "0.3.14"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/js_dependency.rb CHANGED
@@ -36,9 +36,13 @@ module JsDependency
36
36
  # @param [String] src_path
37
37
  # @param [Hash, nil] alias_paths
38
38
  # @return [Array<String>]
39
- def self.orphan(src_path, alias_paths: nil)
39
+ def self.orphan(src_path, alias_paths: nil, exclude_output_names: [])
40
40
  index = JsDependency::IndexCreator.call(src_path, alias_paths: alias_paths)
41
- JsDependency::SourceAnalysis::Orphan.new(index, src_path).call
41
+ JsDependency::SourceAnalysis::Orphan.new(index, src_path).call.filter do |path|
42
+ exclude_output_names.none? do |name|
43
+ path.include?(name)
44
+ end
45
+ end
42
46
  end
43
47
 
44
48
  # @param [String] src_path
@@ -137,19 +141,23 @@ module JsDependency
137
141
  # @param [String, nil] identifier
138
142
  # @return [String]
139
143
  def self.export_markdown_report(src_path, target_paths, orientation: "LR", alias_paths: nil, child_analyze_level: 1,
140
- parent_analyze_level: 1, name_level: 1, excludes: nil, identifier: nil)
141
- mermaid_markdown = JsDependency.export_mermaid(
142
- src_path,
143
- target_paths,
144
- orientation: orientation,
145
- alias_paths: alias_paths,
146
- child_analyze_level: child_analyze_level,
147
- parent_analyze_level: parent_analyze_level,
148
- name_level: name_level,
149
- excludes: excludes
150
- )
151
-
152
- orphan_list = JsDependency.orphan(src_path, alias_paths: alias_paths)
144
+ parent_analyze_level: 1, name_level: 1, excludes: nil, identifier: nil, exclude_output_names: [])
145
+ permitted_target_paths = JsDependency::PathnameUtility.filter_js_files(target_paths)
146
+ mermaid_markdown = if target_paths.nil? || target_paths.empty?
147
+ nil
148
+ else
149
+ JsDependency.export_mermaid(
150
+ src_path,
151
+ permitted_target_paths,
152
+ orientation: orientation,
153
+ alias_paths: alias_paths,
154
+ child_analyze_level: child_analyze_level,
155
+ parent_analyze_level: parent_analyze_level,
156
+ name_level: name_level,
157
+ excludes: excludes
158
+ )
159
+ end
160
+ orphan_list = JsDependency.orphan(src_path, alias_paths: alias_paths, exclude_output_names: exclude_output_names)
153
161
 
154
162
  JsDependency::Report::Markdown.new(orphan_list, mermaid_markdown, identifier: identifier).export
155
163
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js_dependency
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.14
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - junara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-21 00:00:00.000000000 Z
11
+ date: 2024-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: pathname
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: thor
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -52,90 +38,6 @@ dependencies:
52
38
  - - ">="
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec-parameterized
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-performance
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop-rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
41
  description: Analyze dependency using import for JavaScript.
140
42
  email:
141
43
  - jun5araki@gmail.com
@@ -152,6 +54,7 @@ files:
152
54
  - CODE_OF_CONDUCT.md
153
55
  - Gemfile
154
56
  - Gemfile.lock
57
+ - Guardfile
155
58
  - LICENSE.txt
156
59
  - README.md
157
60
  - Rakefile
@@ -200,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
103
  - !ruby/object:Gem::Version
201
104
  version: '0'
202
105
  requirements: []
203
- rubygems_version: 3.3.7
106
+ rubygems_version: 3.5.3
204
107
  signing_key:
205
108
  specification_version: 4
206
109
  summary: Analyze dependency using import for JavaScript.