js_dependency 0.3.14 → 0.3.15

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 249f9142ce332c3874696fb62d0478365ed719caea8088c75b4059ade79931cb
4
- data.tar.gz: cf44ea94425033c0905d29f496c65d0bbf32c45d7fc8d3681ad1d5a66e9762d0
3
+ metadata.gz: c40c515c695755869134ea2cda376981c48e4202648fc4946d66219b93d5917b
4
+ data.tar.gz: c185eaf95efb2f6a8c11abd91380b2f736c8ddee5dc410f7ea0dab44641eb0aa
5
5
  SHA512:
6
- metadata.gz: a4427662cc2db7567b4bb041416aea5b7b5d60f16a7c112e215670de211c20b4457265f95d087647bc934d96a3f5fa1052e7078c610f056fb0dbf0525c6cc0d9
7
- data.tar.gz: 2ee5a1db44106a777b7b583204db51fcc37315635101a995bf79110cc99a3e05c0fb1434c2e9a6c4becbd7615237facd0e9ed9b53ca1522d98a85c07bd490302
6
+ metadata.gz: af9562638595533ae8cda360e0a5575909a3d36f376e47d863988b0e2ced296853cafda54468530c8484c63516d304ce8e7180e7491491461748778df340eb06
7
+ data.tar.gz: f2f0046905e4906585b47b89b50d37e767b96498d49680202346105ac78f07322cb4eb69471611e326031d654c37e6bb3ef4d37c72d7b1e29c8f4a45220d106b
@@ -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,10 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.3.14] - 2022-08-14
3
+ ## [0.3.15] - 2022-08-21
4
+
5
+ - Add exclude_output_names option for export_markdown_report.
6
+
7
+ ## [0.3.14] - 2022-08-21
4
8
 
5
9
  - Add export_markdown_report cli. This will export the markdown report to a file for GitHub comment.
6
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- js_dependency (0.3.14)
4
+ js_dependency (0.3.15)
5
5
  pathname
6
6
  thor
7
7
  yaml
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
@@ -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
@@ -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,7 +10,7 @@ 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
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsDependency
4
- VERSION = "0.3.14"
4
+ VERSION = "0.3.15"
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,7 +1,7 @@
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.3.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - junara